求大神!如何通过ARDUINO给工业用的步进电机驱动器发送脉冲控制步进电机?
如何通过arduino给工业用的步进电机驱动器发送脉冲使步进电机以一定的速度走一定的步数? pul脉冲,dir方向,ena使能,按这个驱动就可以了,方向使能是高低电平控制的。最简单就是刷如GRBL固件,串口控制:lol
pul脉冲,dir方向,ena使能 有两种接法,共阴或共阳 本帖最后由 bacon6581 于 2015-7-7 16:15 编辑
接线如图,使能信号可以不接
输入电压理论上在24或36V,根据实际情况选择
void setup(){
pinMode(7,OUTPUT); //脉冲信号
pinMode(8,OUTPUT); //方向信号
}
void loop(){
//往一个方向转5000步(一般500步为一圈,可查阅说明书,或实际测试)
digitalWrite(8,LOW);
delay(10); //一般方向信号要比脉冲信号提前几个毫秒
for (int i=0; i <5000; i++){
analogWrite(7,LOW);
delay(10); //想要电机转的快点,缩小数值;反之,增加数值
analogWrite(7,HIGH);
delay(10);
}
往另一个方向转5000步
digitalWrite(8,HIGH);
delay(10); //一般方向信号要比脉冲信号提前几个毫秒
for (int i=0; i <5000; i++){
analogWrite(7,LOW);
delay(10); //想要电机转的快点,缩小数值;反之,增加数值
analogWrite(7,HIGH);
delay(10);
}
}
代码未经测试,仅供参考! 用tone()函数产生脉冲啊,
tone();可以让指定引脚产生一个占空比为50%的指定频率的方波。
tone(pin,frequency);
或者
tone(pin,frequency,duration);
参数:
pin:需要输出方波的引脚,要清楚做自己板子哪些引脚是可以输出脉冲的。
frequency:频率,为unsigned int型;
duration:频率持续时间,单位为毫秒,如果没有该参数,将持续输出脉冲,知道改变频率或者使用noTone(pin);函数停止脉冲输出。返回值无。
需要注意tone()analogWrite()函数的区别。tone()函数输出方波占空比固定(50%),所调节的是方波的频率;而annlogWrite()输出的频率固定(大约490Hz),所调节的是占空比。 bacon6581 发表于 2015-7-7 16:14
接线如图,使能信号可以不接
输入电压理论上在24或36V,根据实际情况选择
使能要拉低,不拉低不动的。 搞步进电机,来对地方了 还是有帮助的 是哦 还是好人多啊
页:
[1]