树莓派入门(八)之树莓派与A4988 驱动42步进电机
2019-06-30 21:03
在树莓派入门(三)里面我介绍了如何驱动步进电机,当时驱动的步进电机是那种比较简单精度不是那么高的电机,今天我们驱动的是比较复杂的步进电机。当然,这里我还是以arduino为例,但是会给出树莓派的代码
这个画图软件叫(fritzing)只能进行绘图,不能进行仿真。
其中MS1 , MS2 , MS3 跳线说明:(例子里是低电平,悬空或接地线,使用全步进模式)分别是全步进,1/2步进,1/4步进,1/8步进,1/16步进模式。
步进电机走一步是1.8度,一圈就是200步。例如使用1/16步进,则需要走3200步才等于一圈。
上图中的那三根悬空的就是MS1,MS2,MS3。
下图是A4988的图,有的可能是绿色的,但是都无所谓。
下面我给出arduino的代码,看起来还是挺简单的,感兴趣的同学可以再去网上查查更多的资料。
int x;void setup(){pinMode(6,OUTPUT); // EnablepinMode(5,OUTPUT); // SteppinMode(4,OUTPUT); // DirdigitalWrite(6,LOW); // Set Enable low}void loop(){digitalWrite(4,HIGH); // Set Dir highfor(x = 0; x < 200; x++) // Loop 200 times{digitalWrite(5,HIGH); // Output highdelayMicroseconds(800); // Wait 1/2 a msdigitalWrite(5,LOW); // Output lowdelayMicroseconds(800); // Wait 1/2 a ms}delay(1000); // pause one seconddigitalWrite(4,LOW); // Set Dir lowfor(x = 0; x < 200; x++) // Loop 2000 times{digitalWrite(5,HIGH); // Output highdelayMicroseconds(800); // Wait 1/2 a msdigitalWrite(5,LOW); // Output lowdelayMicroseconds(800); // Wait 1/2 a ms}delay(1000); // pause one second}接下来给出树莓派的代码
#include #includevoid init();void loop();int main(){init();loop();return 0;}void init(){wiringPiSetup();pinMode(6,OUTPUT); // EnablepinMode(5,OUTPUT); // SteppinMode(4,OUTPUT); // DirdigitalWrite(6,LOW); // Set Enable low}void loop(){digitalWrite(4,HIGH); // Set Dir highfor(x = 0; x < 200; x++) // Loop 200 times{digitalWrite(5,HIGH); // Output highdelayMicroseconds(800); // Wait 1/2 a msdigitalWrite(5,LOW); // Output lowdelayMicroseconds(800); // Wait 1/2 a ms }delay(1000); // pause one seconddigitalWrite(4,LOW); // Set Dir lowfor(x = 0; x < 200; x++) // Loop 2000 times{digitalWrite(5,HIGH); // Output highdelayMicroseconds(800); // Wait 1/2 a msdigitalWrite(5,LOW); // Output lowdelayMicroseconds(800); // Wait 1/2 a ms }delay(1000); // pause one second}
树莓派的代码和arduino的代码很像吧,确实如此,值得注意的就是,树莓派的那几个引脚是我随便写的,你们实验的时候要注意看看你们用的是几号引脚,不要一股脑跟着我写了。
欢迎关注我们的公众号,本人知识能力有限,如果文章中有错误的地方欢迎向我反馈或者留言,十分感谢!
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com