< >
Home » Arduino电机及驱动 » Arduino步进电机驱动-双路步进电机驱动扩展板(A4988)

Arduino步进电机驱动-双路步进电机驱动扩展板(A4988)

外观

外观

简介

  • 步进电动机是一种将脉冲信号变换成相应的角位移(或线位移)的电磁装置,是一种特殊的电动机。
  • 一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入肘步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。
  • 现在步进电机应用的领域越来越多。你也想要用Arduino控制你的步进电机吗,那将会有许多有趣的应用,如绘画仪,3D打印机,自动窗帘..?然而,市面上很难找到能够驱动步进电机的Arduino扩展板。让很多Arduino爱好者无法使用这一功能强大,转动精确的电机。但是现在不同了!DFRobot容重推出步进电机扩展板,让你的Arduino主控轻松驱动步进电机。
  • 该步进电机驱动扩展板子上拥有两块A4988步进电机驱动模块(最大电流可达2A),可以接两路步进电机。
  • 与dreammaker 3D打印机用的一样的电机驱动。

技术规格

  • 适用于两相四线步进电机
  • 你可以仅仅通过四个数字I/O轻松驱动2个步进电机,占用端口少。
  • 兼容Arduino UNO R3、Leonardo、Mega等控制器,具备完整端口扩展功能。支持XBee,XBee Wi-Fi,蓝牙和射频模块,保证您无线通信的需要。
  • 具备6个模拟口,10个数字口和I2C。在连接方式上,按压式无螺丝接线柱能够轻松与电机连接。再也不用忙着拧一大堆接线柱螺丝了。具体接线,请参考我们的产品资料库。
  • 每个步进电机有一个拨码开关设置步进分辨率。5种不同的步进模式:全,半,1/4,1/8,1/16步模式,具体调试说明请参考产品资料库。
  • 板子Xbee接口角落上有一个wireless开关。PROG时停止无线模块工作,可用USB编程。RUN时能够用无线模块通信。

使用连接图及引脚说明

请输入图片描述
步进电机驱动扩展板引脚说明和连接图

细节说明

无线编程开关:

  • RUN:完成下载,运行无线模块
  • PROG:下载代码时不用拔掉Xbee或蓝牙
    3位编码开关:
    用来设置步进电机微步分辨率,板子背面有相应设置说明,如下表;
    请输入图片描述
    步进模式说明

步(微步)的大小:

  • 步进电机通常有一个步长规格,如1.8°(200步/转)。微步电机驱动,如A4988允许更高的分辨率。例如用1/4模式时,电机将通过使用四种不同的电流,得到200步/转电机每转800个微步,得到了更高的精度。通过设置MS1, MS2, 和MS3可以得到5种不同的分辨率。如下表所示:

请输入图片描述
步进模式说明

  • 通过调节驱动上的电位器可以调节步进电机最大输出电流。
  • 它可以让你使用你的电压步进电机的额定电压以上,以达到更高的步率。
  • 这里有一种方法可以用来限流,通过测量电压REF引脚,计算出相应的限电留(电流检测电阻0.05Ω)。
  • 电流限制= VREF×2.5。所以,如果参考电压是0.3V,电流限制是0.75 A.如上所述,在全步进模式中,电流通过线圈被限制在限流的70%。
  • 因此,全步模式下,线圈得到1A的电流,电流限制应为1 A/0.7 = 1.4 A,这相当于VERF=1.4 A/2.5 = 0.56 V。详见A4988数据手册。

注:驱动板长时间工作,芯片会发热,使用的时候请注意。有条件的话可以在上面加个散热片,帮助芯片散热。

样例代码

/*
This sample code is for testing the 2 stepper motors 
The rotation velocity can be adjusted by the code switch 
Microcontroller: Arduino UNO  
*/
int M1dirpin = 4;
int M1steppin = 5;
int M2dirpin = 7;
int M2steppin = 6;
void setup()
{
  pinMode(M1dirpin,OUTPUT);
  pinMode(M1steppin,OUTPUT);
  pinMode(M2dirpin,OUTPUT);
  pinMode(M2steppin,OUTPUT);
}
void loop()
{
  int j;
  delayMicroseconds(2);
  digitalWrite(M1dirpin,LOW);
  digitalWrite(M2dirpin,LOW);
  for(j=0;j<=5000;j++){
    digitalWrite(M1steppin,LOW);
    digitalWrite(M2steppin,LOW);
    delayMicroseconds(2);
    digitalWrite(M1steppin,HIGH);
    digitalWrite(M2steppin,HIGH);
    delay(1);
  }
}
 

本文整理于DFRobot wiki

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: none