如何使用Arduino和A4988驱动程序控制NEMA 17步进电机

如果你’我来到这篇文章,你’大概是在我使步进电机运动而没有噪音,振动或跳动之前的同一时间。那’为什么在本文中,我将提供足够的深度知识来了解如何控制步进电机(例如– a NEMA 17 或其他步进电机尺寸)并解决可能出现的问题。

在3D打印机中使用步进电机时,很可能是由电子和编程专家组成的团队进行计算,并将所有内容完美地结合在一起。相反,当我尝试在业余爱好项目中使用相同的步进电机时(每天正常工作8小时后),’完全不同。而且,如果您的预算很低,只是想像我一样使用步进电机制造机器人或旋转杯架,事情就会变得复杂。所有这些情况可能会让您头疼。

让’从头开始,我’从整个故事的开始,我会用几句话告诉您。可以在本文中写一个很长的故事,但是我对步进电机有很多解释。

如何使用Arduino和A4988驱动程序控制NEMA 17步进电机

如何使用Arduino和A4988驱动程序控制NEMA 17步进电机

我如何开始使用NEMA 17步进电机

首先,我将基于NEMA电机发表评论。像许多其他人一样,我’我听说过NEMA步进电机,我想‘NEMA’是电机的品牌。完全错误! NEMA是描述步进电机的标准。例如,NEMA 17是具有1.7 x 1.7英寸面板的步进电机。换句话说,NEMA 17是一个尺寸,而不是一系列步进电机。

为什么要使用步进电机?
步进电机用于精确控制运动,无论是在汽车,机器人,3D打印机还是CNC机器中。

在我的项目中,我需要精确旋转360度的塑料杯架。在对如何精确地旋转360度进行了一些研究之后,我得出结论,步进电机最适合我的项目。我可以使用连续旋转的伺服电机或带编码器的电机,但是另一个原因是预算。我的备件箱中有几个NEMA 17,并且开始将它们用于各种项目。

步进器和驱动程序均来自从未使用过的打印机套件。我设法组装好了,但没有设法投入使用。自从我开始做起就出现了问题’在包装中找不到一些碎片。我用各种即兴创作代替了大部分缺少的部分,但没有成功。最后,我拆卸了3D打印机套件,并在自己的DIY项目中使用了NEMA 17电机。

包含几行代码和一些连接导线的简单教程,仅对首次尝试控制步进电机(例如NEMA 17)的用户有用。但这只是开始。下一步是使应用程序使用这种执行器以及其他技术,例如通过蓝牙进行远程数据传输。为什么这方面很重要?使用蓝牙模块(例如HC-05或HC-06)会干扰步进电机控制器。这可能会导致步进电机不受控制的旋转,噪音和振动。

互联网上的教程没有’t help me
好吧,现在我’我有点夸张。一些涵盖了步进电机控制主题的教程以一种或另一种方式帮助了我。但是我的系统更复杂,并且所有教程都没有包含在施加扭矩时转动步进电机轴所需的信息。此外,电动机是包含许多伺服电动机,限位开关和蓝牙连接的系统的一部分。

这种带有步进器,伺服,限位开关和蓝牙的配置非常普遍,但是我发现的教程仅涉及控制步进电机的主题。毕竟,我设法记录了每个控制系统以及蓝牙与步进电机之间的干扰。最后,我设法按自己的意愿控制了机器人。

换句话说,即使NEMA 17主题存在于大量文章和DIY项目中,在本文中,我还是从理论上进行实践的,并完整地描述了我在设计,组装和编程旋转底座时所犯的步骤和错误。带有步进电机的杯架,例如NEMA 17。

主要部分–简单地称为旋转底座–是由NEMA 17驱动并由A4988驱动器控制的塑料杯架。 Arduino的 UNO是整个系统的大脑。

步进电机的整个组件比塑料杯架要复杂一些。开关传感器用于检测杯架中的杯子,泵将从容器中抽出液体,并在塑料杯中注入汁液。 NEMA 17和开关限制传感器一起工作,以精确定位塑料杯架,并确定杯架中是否有塑料杯。

NEMA 17
步进电机最重要的规格:

  • 尺寸和版本:NEMA 17 42SHD0034-20B
  • 步距角(度):1.8°
  • 阶段2
  • 额定电压:12V

这种电动机的价格约为14美元。如果您正在寻找我使用的NEMA 17的确切版本,您会惊讶地发现几乎没有可以购买的地方。原因是这种类型的NEMA 17在绝大多数情况下都用于3D打印机中。好消息是,我在本文中编写的内容几乎可以完全应用于其他版本的NEMA 17和其他尺寸的步进电机。

NEMA 17步进电机有数十种型号,因此请谨慎使用项目中使用的电机型号。请勿尝试为其提供高于规格的电压。

我的NEMA 17需要12V才能工作。我的电源适配器具有12V输出,非常适合我的需求。我将电源适配器的12V输出连接到A4988驱动器,以为NEMA 17电机供电。

NEMA 17电机的控制并不像我预期的那么容易。如下图所示连接电线后,我​​编写了Arduino草图来旋转步进电机。令人惊讶的是,当我看到电动机颤抖,然后电动机停止运转时发出声音。当您阅读教程时,情况似乎很简单,但是当您开始构建某些内容时,似乎没有任何效果。

A4988步进电机驱动器载体

A4988 该项目中使用的驱动程序是从同一3D打印机上拆卸下来的。

关于这几句话
好消息是我知道我可以使用此驱动器控制步进电机。不好的部分是必须进行调整以控制电动机以达到所需的结果。从理论上讲,我将必须将步进电机连接到驱动程序,将驱动程序连接到Arduino,然后控制步进电机没有任何问题。事情的运作方式与我的预期不同。我使用蓝牙连接的事实改变了驱动程序’正常操作的行为。

A4988驱动器是一种廉价的硬件资源(每片约1欧元),可以控制由8V至35V电压供电的步进电机。

在我从驱动程序解释设置之前,我将从头开始–与电源。

使用A4988
要正常工作,A4988需要一个5V电压源。所有项目均由12V供电–3A电源适配器和可调节的LTC3780 DC降压/升压转换器,可将电压从12V降低至6V。 LTC3780的输出为6V,因为我需要给机械臂的伺服电动机供电。我连接到Pololu的相同6V输出’带5V输出的S7V7F5稳压器。因此,在稳压器中输入6V并拉出5V–正是我需要给A4988驱动程序供电。

我使用相同的稳压器为步进电机驱动器,蓝牙通信模块和其他需要5V电源的组件供电。

架构:A4988控制NEMA 17

架构:A4988对照NEMA 17(形象功劳)

A4988硬件配置
I’从您不需要做的事情开始。我做到了,我做错了事。我通过在驱动器通电时连接和断开步进电机来烧毁A4988驱动器。换句话说,在通电时重新布线会带来麻烦。

信息:仅当您具有电子方面的经验时,才应执行所有这些步骤,否则,请您自己承担责任。

限流
司机’当前的限制是第一步,需要应用数学公式。就我而言,我必须使用“限流A4988”部分。

由于我有一个1安培的步进电机,因此公式为:

  1. 1 = VREF x 2.5(对于A4988)
  2. VREF = 1 / 2.5
  3. VREF = 0.4V(400mV)

第二步是找出分支板上的Vref位置。我在Internet上搜索,然后找到了位置。它是电位计的中心点。

我将万用表的接地连接到驱动器的GND引脚,“+”将万用表的探针连接到驱动板上的Vref。在此步骤中,您必须注意不要通过螺丝刀的尖端滑动而造成短缺。

我用一把小螺丝刀将螺丝从低值旋转到高值。如果尝试这样做,请确保知道哪个方向会降低电流!从电流的较低值开始到较高值。另外,如果必须这样做,我的建议是使用塑料螺丝刀,否则可能会使驱动器短路并完成。

控制
就我而言,我跳过了半步控制。经过他人测试,A4988驱动器的半步位置偏差较大。

我使用的步进电机需要200步才能旋转一整圈,这意味着每一步都会使轴旋转1.8度。全步速表示每步将电机轴旋转至1.8度。电动机的这种运行模式一次只能使一个相通电。全步控制的好处之一是在任何一种激励模式下,驱动器产生的功率最小。

全步模式可能会导致步进电机从一个步位置跳到下一个位置。结果,可能会有转矩波动和振动。

微步进是另一种控制NEMA17的方法。在我的项目中,我使用了这种方法。微步进装置将电机分开’基本步进最多256次。是的,整步旋转首先除以200步,然后将每步除以256次。这会使较小的步骤变小,但还不高兴。您’ll see why.

让’从积极的一面开始。以这种方式工作的优点之一是可以提高NEMA 17电机的分辨率。换句话说,电动机在低速下旋转更平稳,并且振动更少,这对我来说非常好,因为我使用了会放大电动机噪声和振动的塑料结构。

在我的项目中,塑料杯相对于机器人手臂的位置非常重要。我留了几毫米的距离来放置塑料杯,但在这样一个复杂的系统中,将自动化部件与机械臂结合在一起可能会发生很多错误。

对于没有反馈系统的驾驶员(电动机驾驶员不知道电动机轴的确切角位置),驾驶员将无法校正电动机的偏差。在这种情况下,解决方案是修改机器人的设计,以处理塑料杯的几毫米偏差。

Arduino的库控制步进电机

该库可用于A4988,DRV8825,DRV8834,DRV8880驱动器和两针步进电机中的任何一个。我不需要所有库功能,我使用的只是旋转轴的步进电机功能。

我使用状态并切换为机器人服务员的所有步骤进行编程:

通过NEMA 17步进电机旋转塑料杯架的演示

资源:

2条评论 » Write a comment

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *