Arduino 使用A4988驱动模块驱动步进电机
目录
实验效果
凌顺实验室(lingshunlab.com)使用A4988步进电机驱动模块驱动步进电机,实现步进电机正转,反转。
元件说明
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″)
引脚说明
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 |
跳线(杜邦线) | 若干 |
接线图
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
}