树莓派入门(八)之树莓派与A4988 驱动42步进电机

网友投稿 2019-06-30 21:03

    在树莓派入门(三)里面我介绍了如何驱动步进电机,当时驱动的步进电机是那种比较简单精度不是那么高的电机,今天我们驱动的是比较复杂的步进电机。当然,这里我还是以arduino为例,但是会给出树莓派的代码

https://cdn.china-scratch.com/timg/190702/2103096460-0.jpg

    这个画图软件叫(fritzing)只能进行绘图,不能进行仿真。

其中MS1 , MS2 , MS3 跳线说明:(例子里是低电平,悬空或接地线,使用全步进模式)分别是全步进,1/2步进,1/4步进,1/8步进,1/16步进模式。

步进电机走一步是1.8度,一圈就是200步。例如使用1/16步进,则需要走3200步才等于一圈。

上图中的那三根悬空的就是MS1,MS2,MS3。

https://cdn.china-scratch.com/timg/190702/2103092107-1.jpg

下图是A4988的图,有的可能是绿色的,但是都无所谓。

https://cdn.china-scratch.com/timg/190702/21030a0K-2.jpg

下面我给出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 #include
void 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