Nema17:关于 Arduino 兼容步进电机的所有信息
Nema17:关于 Arduino 兼容步进电机的所有信息

Nema17:关于 Arduino 兼容步进电机的所有信息

我们已经分析了有关可在 Arduino 项目中使用的步进电机的所有内容,但有一个脱颖而出,例如 Nema 17,因为它是一款非常精确的电机,并且具有多种应用,包括更换损坏的电机一些 3D 打印机的电机。

使用该步进电机,您将能够非常精确地控制其轴的旋转,以进行精确的运动,从而控制机器或机器人的运动。在本指南中,您将能够获得充分理解并开始使用它所需的所有信息。

NEMA 17 技术规格

NEMA 17 步进电机是双极的,步距角为 1.8°,这意味着您可以将每次旋转分为 200 步。其内部的每个线圈在 4v 电压下支持 1.2A 电流,使其能够产生 3.2 kg/cm 的巨大力量。

此外,这款 NEMA 17 电机功能强大,因此被用于家用 3D 打印机和其他需要高度一致性的机器人等应用。 Prusa 就是使用这种电机作为其运动基础的打印机的一个例子。它还用于激光切割机、数控机床、贴片机等。

然而,这台发动机并不全是神奇和优势,因为它比可靠更强大,所以从这个意义上说它是不平衡的……

简而言之,音频规格:

步进电机。
型号 NEMA 17
重量 350克
尺寸 42.3x48mm(不含轴)
轴径5mm D
轴长 25 毫米
每转 200 步(1.8°/步)
每个线圈电流 1.2A
电源电压4V
每个线圈的电阻为 3.3 欧姆
电机扭矩3.2公斤/厘米
每个线圈电感 2.8 mH

这些步进电机的引脚分配非常简单,因为它们没有太多连接电缆,但还配有连接器,因此您可以更轻松地完成操作。对于 NEMA 17,您会发现与上图中类似的引脚排列。

但是,如果您需要了解有关 NEMA 17 运行限制和范围的更多技术和电气详细信息,您可以查找该步进电机的数据表,从而获得您想要的所有附加信息。您可以在此处下载包含示例的 PDF。

您可以在一些专门的电子商店和在线商店中以低廉的价格找到它们。例如,您可以在亚马逊上购买它。有不同的制造商和不同的销售形式,例如如果您需要多个移动机器人,则包装 3 个或更多单元等。以下是一些不错的优惠:

如何开始使用 Nema 17 和 Arduino 的示例

开始将 nema 17 步进电机与 Arduino 结合使用的一个简单示例是您可以组合在一起的简单图表。我为 DRV8825 电机使用了一个驱动器,但如果您想更改项目并使其适应您的需求,您可以使用另一个驱动器,甚至另一个步进电机。草图代码也是如此,您可以根据自己的喜好进行修改……

如果使用该驱动器,则支持45v和2A电流,因此非常适合中小型步进电机或步进电机,例如双极NEMA 17。但如果您需要更“重型”的东西,例如 NEMA 23 等更大的电机,那么您可以使用 TB6600 驱动器。

连接总结如下:

Nema 17 电机具有与电源的 GND 和 VMOT 连接。照片中出现了带有闪电和电容器的组件。电源应具有 8 至 45V 电源,我添加的附加电容器可能为 100μF。
步进电机的两个绕组分别接A1、A2和B1、B2。
驱动器的 GND 引脚连接到 Arduino 的 GND。
驱动器的 VDD 引脚连接到 Arduino 的 5v 电压。
用于步进和方向的 STP 和 DIR 分别连接到数字引脚 3 和 2。如果您想选择其他Arduino引脚,只需相应修改代码即可。
用于重置和睡眠驱动器的 RST 和 SLP 必须连接到 Arduino 板的 5v。
EN 或使能引脚可以断开,因为这样驱动器将工作。如果它设置为高而不是低,驱动器将被禁用。
其他引脚将断开…

当谈到绘制代码时,让 NEMA 17 工作并迈出第一步就可以如此简单,没有比这更好的了……

#define dirPin 2 #define stepPin 3 #define stepsPerRevolution 200 void setup() { // 将引脚声明为输出:pinMode(stepPin, OUTPUT); pinMode(dirPin, 输出); } void Loop() { // 设置顺时针旋转方向: digitalWrite(dirPin, HIGH); // 使步进电机缓慢旋转 1 转: for (int i = 0; i < stepsPerRevolution; i++) { // 这四行结果为 1 步: digitalWrite(stepPin, HIGH);延迟微秒(2000); digitalWrite(stepPin, 低);延迟微秒(2000);延迟(1000); // 设置逆时针旋转方向: digitalWrite(dirPin, LOW); // 使步进电机快速旋转 1 转: for (int i = 0; i < stepsPerRevolution; i++) { // 这四行结果为 1 步: digitalWrite(stepPin, HIGH);延迟微秒(1000); digitalWrite(stepPin, 低);延迟微秒(1000);延迟(1000); // 设置顺时针旋转方向: digitalWrite(dirPin, HIGH); // 使步进电机快速旋转 5 转: for (int i = 0; i < 5 * stepsPerRevolution; i++) { // 这四行结果为 1 步: digitalWrite(stepPin, HIGH);延迟微秒(500); digitalWrite(stepPin, 低);延迟微秒(500);延迟(1000); // 设置逆时针旋转方向: digitalWrite(dirPin, LOW); //使步进电机快速旋转 5 转: for (int i = 0; i < 5 *stepsPerRevolution; i++) { // 这四行结果为 1 步: digitalWrite(stepPin, HIGH);延迟微秒(500); digitalWrite(stepPin, 低);延迟微秒(500);延迟(1000); }

有关更多信息,您可以参考 Hwlibre 的使用 Arduino IDE 进行编程的课程。