菜鸟学物联网(1)arduino通过DRV8825驱动扩展板控制步进电机
首先声明我是个菜鸟,C二级还没过的一个“大三混混”,没事喜欢捣鼓点东西,总感觉可能写篇博客总结一下做的东西更能加深自己的理解学习。本着拉下脸皮“学习交流分享”的精神,我以后还会在简书上发表其他的简易教程。大神别喷我,我还小,嘤嘤嘤。。。
这回,咱们来捣鼓一个属于“强电”范畴的步进电机,图片就像
本文教程基于wiki百科:
SKU: DRI0023 双路步进电机驱动扩展板(DRV8825)
上面这个链接中的步进电机驱动扩展板是比较高端的,有蓝牙 ,可以无线编程,而我的扩展板(理论上是我们实验室赵大神的,拿来玩玩,顺便顺了个14.8V的电源)是没有的。
有商家给的手册,英文看不懂,直接来到中文,
已经说得很明白了:
电源接口:蓝色的最下方那两个螺丝卡住电源的正负极,板子背后面有正负标志,千万别接反了,你损失的不止金钱。电源至少8.5V往上。
驱动板上与控制器相连的引脚:
Vcc、GND什么的直接看图,EN使能端肯定是先在程序里默认置高,再拉低,将其“使能”,大白话就是我控制器能对驱动板进行操作了。STP直接用循环拉低拉高电平方式调PWN,对,上边链接里的是这样做的。主要简单。STP才是真正的功能脚,核心功能我们只通过这个脚实现。DIR 0正转1反转。OK,知道这么多就可以了。
我们可以用51单片机、stm32单片机等等进行C语言编程,不过我不会,因为我是菜鸟,所以直接用别人的arduino程序。
int M1dirpin = 4; //电机X方向引脚
int M1steppin = 5; //电机X驱动引脚
int M1en=12; //电机X使能引脚
void setup()
{
pinMode(M1dirpin,OUTPUT);
pinMode(M1steppin,OUTPUT);
pinMode(M1en,OUTPUT);
digitalWrite(M1en,LOW); //低电平使能
}
void loop()
{
int j;
delayMicroseconds(2);
digitalWrite(M1dirpin,LOW);
for(j=0;j<=5000;j++){
digitalWrite(M1steppin,LOW);
delayMicroseconds(2);
digitalWrite(M1steppin,HIGH); //上升沿步进
delay(1);
}
}
arduino先setup,设置自己的输出脚(pinMode()),初始化电平信号(digitalWrite()),然后在下面的Loop循环里重复执行半个周期为2us的电平拉低又拉高,重复执行5000次,中间会停顿1s.
效果图如下:
网友评论