您的位置: 主页>机器人编程>ROBOLAB编程>使用Arduino和A4988步进驱动器模块控制NEMA 17步进电
加盟酷吧机器人 培养孩子核心能力

使用Arduino和A4988步进驱动器模块控制NEMA 17步进电

步进电机是一种直流电机,它可以步进方式工作,从监控摄像机到复杂的机器人,无处不在。步进电机提供精确控制,并可根据扭矩、每转步数和输入电压进行区分。在我们之前的文章中,我们使用Arduino控制28-BYJ48步进电机。28-BYJ48的扭矩比NEMA 14、NEMA17等其他步进电机的扭矩相对较低。

在本篇文章中,我们将使用Arduino Uno和A4988步进驱动器模块控制NEMA17步进电机。Nema17步进电机比28-BYJ48具有更高的扭矩和更高的工作电压。我们还将使用电位器来控制步进电机的方向,

所需的组件

●    Arduino UNO开发板

●    NEMA17步进电机

●    A4988步进驱动器模块

●    47μf电容

●    电位器

NEMA17步进电机

使用Arduino和A4988步进驱动器模块控制NEMA 17步进电机

NEMA17的操作类似于普通的步进电机。NEMA 17步进电机有一个1.7 x 1.7英寸的面板,它通常比较小的型号(如NEMA 14)具有更大的扭矩。该电机有六根引线,额定电压为12伏。它可以在较低的电压下运行,但扭矩会下降。步进电机不会旋转,NEMA17电机的步进角为1.8度。意味着它在每一步都前进1.8度。NEMA17的接线图如下。

使用Arduino和A4988步进驱动器模块控制NEMA 17步进电机

如您所见,该电机采用单极六线布置。这些导线连接成两个分开的绕组。黑线、黄线、绿线是第一绕组的一部分,其中黑线是中心抽头,黄线和绿线是线圈末端电线,而红线、白线和蓝线是第二个绕组的一部分,其中白线是中心抽头,红线和蓝线是线圈末端电线。通常,中心抽头不接线。

NEMA17每转的步数

使用步进电机的步进角计算特定步进电机的每转的步数。本文中,NEMA 17步进角为1.8度。

每转的步数= 360 /步角

360 / 1.8 =每转200步

NEMA17的规格

●    额定电压:12V DC

●    步角:1.8度

●    相位数:4

●    电机长度:1.54英寸

●    4线,8英寸引线

●    每转200步,1.8度

●    工作温度:-10至40°C

●    单极保持扭矩:22.2盎司

A4988步进驱动器模块

步进驱动器模块控制步进电机的工作。步进驱动器通过各个相位将电流发送到步进电机。

A4988 Nema 17步进驱动器是一种微步进驱动器模块,用于控制双极步进电机。该驱动器模块具有内置转换器,这意味着我们可以使用控制器中很少的引脚来控制步进电机。

使用Arduino和A4988步进驱动器模块控制NEMA 17步进电机

使用这个Nema 17电机驱动器模块,我们可以通过仅使用两个引脚来控制步进电机,即STEP和DIRECTION。STEP引脚用于控制步进,而DIRECTION引脚用于控制电机的方向。A4988驱动模块提供五种不同的步进分辨率:全步、半步、四分之一步、八分之一步和十六分之一步。您可以使用分辨率选择器引脚((MS1、MS2和MS3)选择不同的步进分辨率。

电路原理图

使用Arduino和A4988步进驱动器模块控制NEMA 17步进电机

在上图中给出了用Arduino控制Nema 17步进电机的电路图。由于A4988模块具有内置转换器,这意味着我们只需要将步进和方向引脚连接到Arduino。步进引脚用于控制步骤,而方向引脚用于控制方向。步进电机使用12V电源供电,A4988模块通过Arduino供电。电位器用于控制电机的方向。

如果顺时针旋转电位器,则步进器将顺时针旋转,如果逆时针旋转电位器,则逆时针旋转。47μf电容用于保护电路板免受电压尖峰的影响。MS1、MS2和MS3引脚保持断开状态,这意味着驱动器将以全步模式运行。

使用Arduino和A4988步进驱动器模块控制NEMA 17步进电机

代码说明

完整的代码在本文的末尾给出,在这里我们解释程序,以了解项目的工作过程。

首先,将步进电机库添加到Arduino IDE中。您可以从这里下载步进电机库。

之后定义NEMA 17的步骤数。正如我们计算的那样,NEMA 17每转的步数为200。

#include#define STEPS 200

之后,指定驱动器模块所连接的引脚,并将电机接口类型定义为Type1,因为电机通过驱动器模块连接。

Stepperstepper(STEPS, 2, 3);#define motorInterfaceType 1

接下来使用stepper.setSpeed函数设置步进电机的速度。NEMA 17的最大电机速度为4688 RPM,但如果我们运行速度超过1000 RPM,则扭矩会迅速下降。

voidsetup() {    stepper.setSpeed(1000)

现在在loop()函数中,我们将从A0引脚读取电位器值。在这个循环中,有两个函数,一个是potVal,另一个是Pval。如果当前值,即potVal高于前一个值,即Pval比顺时针方向移动十步,如果当前值小于先前值,则它将沿逆时针方向移动十步。

potVal =map(analogRead(A0),0,1024,0,500);  if(potVal>Pval)     stepper.step(10);  if (potValPval = potVal;

现在将Arduino连接到您的笔记本电脑,使用Arduino IDE将代码上传到Arduino UNO板,选择Board和串口号,然后单击上传按钮。

现在您可以使用电位器控制Nema17步进电机的方向。如果您对此项目有任何疑问,欢迎在下面进行回复。

后记,小编朋友公司研发了一个游戏化的少儿编程在线课程(5-12岁),游戏化教学结合scratch(一款在线少儿编程工具,类似乐高的积木拼搭),我家娃娃学了几次课,非常喜欢(超预期),16次课才200多块钱,对锻炼孩子的思维能力和动手动力很有帮助。

欧美思机器人教育加盟 赚钱好项目
上一篇:看呆了!编程机器人舞蹈、3D打印……茂名科普进
下一篇:工程师,一起来DIY音乐播放器!
您可能喜欢
回到顶部