风筝
发表于: 2022-4-18 16:13:35 | 显示全部楼层

在本篇文章中,我们将使用A4988驱动器模块和Arduino开发板控制NEMA17步进电机。A4988是一种微步进电机驱动器,用于控制双极步进电机,它具有内置转换器,便于操作。因此,我们可以只用控制器的2个引脚来控制步进电机。DIR引脚将控制旋转方向,STEP引脚将控制步数。


之前的帖子中,我们学习了如何使用电位器和操纵杆控制步进电机。28BYJ-48是一款5线单极步进电机,运行电压为5伏,不需要任何驱动器。但是NEMA17步进电机需要8V-35V电源,因为扭矩太高。因此我们需要步进驱动模块,如A4988或DRV8825


所需的组件

●    Arduino UNO开发板

●    A4988步进电机驱动器

●    NEMA17步进电机

●    100uF电解电容器

●    12V、2A直流电源

●    5V直流电源

●    连接跳线

●    面包板


A4988步进电机驱动模块

A4988-Stepper-Driver-Module.jpg

A4988是一款完整的微步进电机驱动器,带有内置转换器,便于操作。Allegro提供的分线板模块具有可调节的电流限制、过流和过温保护以及五种不同的微步分辨率。它的工作电压为8V至35 V,每相可提供高达约 1 A的电流,无需散热器。每个线圈的额定电流为2A。


主要特征

●    最大工作电压:35V

●    最小工作电压:8V

●    每相最大电流:2A

●    微步分辨率:整步、½ 步、¼ 步、1/8 和 1/16 步

●    反向电压保护:无

●    尺寸:15.5 × 20.5 毫米(0.6 英寸 × 0.8 英寸)

●    对地短路和负载短路保护

●    低 RDS(ON) 输出

●    热关断电路


A4988电机驱动器模块引脚分布

A4988驱动器模块共有16个引脚,如下所示:

A4988-Pins.jpg


1. 电源引脚:该引脚包括VDD & VMOT和一对GND引脚。VDD用于驱动内部逻辑电路,可以是3V至5V,而VMOT为电机供电,电源范围为8V至35V。

2. 微步选择引脚:A4988 驱动器具有三个步进分辨率选择器输入,即MS1、MS2 和 MS3。通过为这些引脚设置适当的逻辑电平,我们将至少将电机设置为五步分辨率之一。

3. 控制输入引脚:STEP和DIR是2个控制输入引脚。 STEP输入控制电机的微步进,而DIR输入控制电机的旋转方向。

4. 电源状态控制引脚:A4988具有三个不同的输入来控制其电源状态,即EN、RST和SLP。 EN引脚为低电平有效输入,拉低时启用A4988驱动器。 SLP引脚为低电平有效输入。将此引脚拉低会使驱动器进入睡眠模式,从而最大限度地减少设备消耗。RST是低电平输入有效引脚,当拉低时,所有STEP输入都被忽略。它还通过将内部转换器设置为电机初始阶段来复位驱动器。

5. 输出引脚:有4个输出引脚,分别为2B、2A、1B、1A。我们可以将电压在8V至35V之间的任何双极步进电机连接到这些引脚。


设置电流极限值

在我们连接电机之前,我们应该调整驱动器的电流极限值,使电流在电机的限制范围内。我们可以通过使用板上的电位器调整参考电压并参考下面的等式来做到这一点。

电流限制 = VRef x 2.5

例如,如果步进电机的额定电流为350mA,我们需要将参考电压调整为0.14V。拿一把小螺丝刀,用电位器调节限流,直到达到额定电流。

A4988-Current-Limit-Setting.jpg


NEMA17步进电机

NEMA17是一款混合步进电机,步距角为1.8°(200步/转)。每相在4V时消耗1.2 A,允许3.2 kg-cm的保持扭矩。 NEMA17步进电机通常用于打印机、CNC机器和激光切割机。

NEMA17-Stepper-Motor.jpg


该电机有六根电线,连接到两个分离绕组。黑色线、黄色线、绿色线是第一个绕组的一部分,而红色线、白色线和蓝色线是第二个绕组的一部分。


使用A4988驱动器将NEMA17步进电机与Arduino连接

现在让我们将A4988步进电机驱动器连接到Arduino开发板并控制NEMA17步进电机。我使用D2和D3引脚来控制电机方向和步进。连接示意图如下。

A4988-Arduino-Nema17-Stepper-Motor.jpg


VMOT引脚由12V电源供电,而VDD由5V电源供电。记得在靠近电路板的电机电源引脚上放置一个100µF的大去耦电解电容。

Connection-Image.jpg


步进电机控制的基础代码

完成驱动模块的硬件连接以及设置电流限制后,现在可以将Arduino连接到计算机并上传一些代码了。此草图代码在单个方向上控制电机: basic.rar (381 Bytes, 下载次数: 22)


控制步进电机旋转方向

使用此代码,可以控制步进电机方向。您可以顺时针方向或逆时针方向旋转电机。此草图代码控制步进电机的速度、转数和旋转方向。 Spinning Direct.rar (392 Bytes, 下载次数: 17)


使用AccelStepper库控制步进电机

步进电机可以使用Arduino AccelStepper库进行控制。它为2、3或4针步进电机和电机驱动器提供面向对象的接口。AccelStepper库以多种方式显着改进了标准Arduino Stepper库,例如它支持加速和减速。它还同时支持多个步进器,每个步进器上具有独立的并发步进。甚至还支持非常慢的速度


以下代码显示了上述所有功能。 AccelStepper.rar (549 Bytes, 下载次数: 20)


步进电机加减速代码

下面的草图代码将为步进电机的运动添加加速和减速功能。电机将以每秒200步的速度和每秒30步的加速度来回运行。 Acceleration.rar (400 Bytes, 下载次数: 21)


使用A4988和电位器控制NEMA17步进电机

步进电机也可以使用电位器进行控制。本文使用了一个10K电位器并将其连接到Arduino Nano开发板的模拟引脚A0。馈入Arduino模拟引脚的电压可用作控制步进电机速度的参考电压。连接图如下。

Stepper-Motor-A4988-Potentiometer-Arduino.jpg


复制以下代码并将其上传到Arduino Nano开发板。观察运行效果。 Potentiometer.rar (569 Bytes, 下载次数: 20)


以上就是使用A4988驱动器模块和Arduino开发板控制NEMA17步进电机的方法。如果有任何疑问,请随时在本帖下面回复。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 705 | 回复: 1492



手机版|

GMT+8, 2024-12-4 01:19 , Processed in 0.045835 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表