tom 发表于 2013-4-30 21:03:57

步进电机测试代码03 控制正转反圈圈数

步进电机型号28BYJ-48-5VDC


图1

图2



此步进电机有5根线,红色的是公共线。可以不接,但如果要接在外部电机电源电压(给步进电机的电压)也没有问题

28BYJ-48-5VDC 电压5伏 步距角度5.625/64减速比64


//步进电机测试代码 L293D驱动板 正转1圈 暂停6秒 反转1圈 暂停

/*
作者:tom
时间:2013年04月30日
IDE版本号:1.01
发表地址:www.geek-workshop.com
作用:

*/
/*操作系统环境winxp
Arduino IDE Ver 1.01
硬件:2012年的Mango控制器(Arduino兼容)
作者:tom
*/

//硬件:Mango控制器、自制的传感器扩展板、自制的L293D电机驱动板(光耦隔离)、5伏的步进电机型号28BYJ-48-5VDC

/*执行Stepper.step(0)子程序时,只有第一个和第三个指示灯亮。

*/
#include <Stepper.h>

// change this to the number of steps on your motor
//改变这个数字适应你的步进电机
#define STEPS 400

// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to
//创建步进电机类
//将Arduino控制器上数字端口8,9,10,11,定义为步进电机的端口
//Stepper stepper(STEPS, 8, 9, 10, 11);

//为了适应变化,定义变量stepPin1,stepPin2,stepPin3,stepPin4作为控制步进电机的端口变量

int stepPin1=8;
int stepPin2=9;
int stepPin3=10;
int stepPin4=11;

Stepper stepper(STEPS,stepPin1,stepPin2,stepPin3,stepPin4);







int intstep=2000;//设置步进电机的步数,请自行调整
//对于这个步进电机,这正好是1圈

void setup() {
stepper.setSpeed(30);
Serial.begin(9600);   
}

void loop()
{
stepper.step(intstep);//步进电机正转

//暂停6秒
stepper.step(0);
delay(3000);


//步进电机反转

stepper.step(-intstep);

//暂停6秒
stepper.step(0);
delay(3000);


}










554789575 发表于 2013-4-30 22:33:48

{:soso_e179:}

Roger_Gao 发表于 2013-8-14 16:33:58

请问下,程序中的setspeed(30)是个什么含义啊???   这个不是定义电机的转速吗,为什么还要定义instep啊

Roger_Gao 发表于 2013-8-14 16:42:43

请问下,那个暂停6秒是怎么实现的啊

李海东 发表于 2013-10-2 01:48:09

测试不反转呀?

tom 发表于 2013-10-2 09:31:09

李海东 发表于 2013-10-2 01:48 static/image/common/back.gif
测试不反转呀?

查一查接线

yyy_zc 发表于 2014-4-2 22:59:34

感觉是标准库不适合该步进电机
页: [1]
查看完整版本: 步进电机测试代码03 控制正转反圈圈数