Arduino 使用A4988驱动模块驱动步进电机

实验效果

凌顺实验室(lingshunlab.com)使用A4988步进电机驱动模块驱动步进电机,实现步进电机正转,反转。

元件说明

arduino-use-a4988-drive-stepper-review

A4988是一款完全的微步电动机驱动器, 带有内置转换器,易于操作。该产品可在全、半、1/4、1/8及1/16步进模式时操作双极步进电动机,输出驱动性能可达 35V及1A左右。

A4988包括一个固定关断时间电流稳压器,该稳压器可在慢或混合衰减模式下工作。转换器是A4988易于 实施的关键。只要在"步进"输入中输入一个脉冲,即可驱动电动机产生微步。 无须进行相位顺序表、高频率控制行或复杂的界面编程。

在微步运行时,A4988内的斩波控制可自动选择电流衰减模式(慢或混合)。在混合衰减模式下,该器件初始设置为在部分固定停机时间内快速衰減,然后在余下的停机时间慢速衰減。混合衰减 电流控制方案能減少可听到的电动机噪音、增加步进精确度并減少功耗。提供内部同步整流控制电路,以改善脉宽调制(PWM)操作时的功率消耗。

内部电路保护包括;带滞后的过热关机、欠压锁定(UVLO)及交叉电流保护。不需要特别的通电排序。

A4988采用表面安装QFN封装(ES)。尺寸为5mm*5mm,标称整体封装高度为0.90mm,并带有外露散热板以增强散热功能。该封装为无铅封装(后缀-T)采用100%雾锡电镀引脚框。

功能及优点:

  • 1、工作电压:8-35V
  • 1、低RDS(开)输出
  • 2、自动电流衰减模式检测选择
  • 3、混合与慢电流衰滅模式
  • 4、对低功率枆散同步整流
  • 5、内部UVLO
  • 6、交又电流偨护
  • 7、3.3及5V兼容逻辑电源
  • 8、过热关机电路
  • 9、接地短路保护
  • 10、 加载短路保护
  • 11、五个可选的步进模式;全、1/2、1/4. 1/8. 1/16
  • 12、反向电压保护:没有
  • 13、尺寸:15.5 × 20.5 mm (0.6″ × 0.8″)

引脚说明

A4988-Connections-pinout-microstepping-pins_xn_c

ENABLE – 使能引脚(低电平有效)
此当此引脚为低电平时,A4988才能进行电机驱动工作,当该引脚为高电平,A4988将不会进行电机驱动工作。如果该引脚悬空,则A4988默认为使能状态。即该引脚没有连接任何电平时,A4988可以正常工作。

MS1, MS2, MS3 – 驱动模式引脚
这三个引脚控制A4988微步细分驱动模式。通过这三个引脚的逻辑电平,我们可以调整A4988驱动电机模式为全、半、1/4、1/8 及 1/16 步进模式。上图中右侧的表格里有具体如何调节这三个引脚电频以及A4988在不同的电平组合下的驱动模式。表格中“L”代表低电平,“H”代表高电平。“FULL”为全步进,“HALF”为半步进,“QUATER”为1/4步进, “EIGHTH”为1/8步进, “SIXTEENTH”为1/16步进。当MS1, MS2, MS3这几个引脚悬空时,A4988默认为全步进电机驱动模式。

RESET - 复位引脚
该引脚为低电平有效,即当该引脚为低电平时,A4988将复位。如果该引脚悬空,则A4988默认为高电平。即该引脚没有连接任何电平时,A4988可以正常工作。

SLEEP – 睡眠引脚
当该引脚连接电平为低电平时,A4988将进入低能耗睡眠状态,即消耗最小的电能。如果无需使用SLeep功能,则可以将SLEEP引脚与RESET引脚连接,则A4988将持续保持正常能耗状态而不会进入低能耗状态。

STEP – 步进引脚
此引脚用于通过Arduino等微控制器向A4988发送脉冲控制信号,A4988接收到此信号后,会根据 MS1, MS2 和 MS3引脚控制电机运转。

DIR - 方向引脚
通过此引脚可以调整A4988控制电机运行方向。当此引脚为低电平,A4988将控制电机顺时针旋转。高电平则逆时针旋转。

VMOT – 电机电源正极
(可用电源电压为8V ~ 35V)注:此引脚用于连接为电机供电的电源

GND – 电机电源接地

2B, 2A – 电机绕组2控制引脚

1A, 1B – 电机绕组1控制引脚

VDD – 逻辑电源正极(3 – 5.5伏)注:此引脚用于为A4988电机驱动板供电

GND – 逻辑电源接地

BOM表

名称 数量
Arduino Uno x1
A4988 电机驱动 x1
面包板 X1
跳线(杜邦线) 若干

接线图

arduino-use-a4988-drive-stpper-wiring-c

MS1,MS2,MS3 悬空,表示驱动细分使用全步进模式

在这里为了方便接线,把RESET 与 SLEEP 连接起来

提点

A4988 细分说明

模块上有引脚MS1 , MS2 , MS3 跳线说明:(例子里是低电平,悬空或接地线,使用全步进模式)

分别是全步进,1/2步进,1/4步进,1/8步进,1/16步进模式。

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

MS1 MS2 MS3 Microstep Resolution Excitation Mode
L L L Full Step 2 Phase
H L L Half Step 1-2 Phase
L H L Quarter Step W1-2 Phase
H H L Eighth Step 2W1-2 Phase
H H H Sixteenth Step 4W1-2 Phase

程序代码

int x;

void setup()
{
  pinMode(6,OUTPUT); // Enable
  pinMode(5,OUTPUT); // Step
  pinMode(4,OUTPUT); // Dir
  digitalWrite(6,LOW); // Set Enable low
}

void loop()
{

  digitalWrite(4,HIGH); // Set Dir high

  for(x = 0; x < 200; x++) // Loop 200 times
  {
      digitalWrite(5,HIGH); // Output high
      delayMicroseconds(800); // Wait 1/2 a ms
      digitalWrite(5,LOW); // Output low
      delayMicroseconds(800); // Wait 1/2 a ms
    }
  delay(1000); // pause one second

  digitalWrite(4,LOW); // Set Dir low

  for(x = 0; x < 200; x++) // Loop 2000 times
  {
      digitalWrite(5,HIGH); // Output high
      delayMicroseconds(800); // Wait 1/2 a ms
      digitalWrite(5,LOW); // Output low
      delayMicroseconds(800); // Wait 1/2 a ms
    }
    delay(1000); // pause one second
}