我们已经分析了有关 步进马达 您可以在Arduino专案中使用,但其中的一种马达在其他模型(例如Nema 17)中脱颖而出,因为它是一种非常精密的马达,可用于多种用途,包括更换损坏的马达打印机3D。
使用此步进电机,您将可以非常精确地控制其轴的旋转,以达到 做精确的动作 从而控制机器或机器人的运动。 并且在本指南中,您可以获得与您近距离了解他并开始与他合作所需要的所有信息。
Nema 17的技术特征
步进电机 Nema 17是双极型,其步距角为1,8º,也就是说,它可以将每一转分为200步。 其内部的每个绕组在1.2v张力下均支持4A的强度,利用该绕组,它可以产生3.2 kg / cm的较大力。
另外,这个引擎 Nema 17坚固耐用这就是为什么在诸如家用3D打印机和其他需要高度一致性的机器人之类的应用程序中使用它的原因。 Prusa是使用此引擎作为其运动基础的打印机的一个示例。 它也用于激光切割机,CNC机器,拾取和放置机器等。
但是,并非所有都是该引擎的奇迹和优势,因为它是 更加强大 因此,从这个意义上说,可靠并不那么平衡...
简而言之, 技术特点 是:
- 步进电机。
- NEMA 17模型
- 重量350克
- 尺寸42.3x48mm(不含轴)
- 轴径5mm D
- 轴长25mm
- 每转200步(1,8º/步)
- 每个绕组电流1.2A
- 电源电压4v
- 每个线圈的电阻3.3欧姆
- 3.2 kg / cm电机扭矩
- 每个线圈的电感2.8 mH
引脚和数据表
El 这些步进电机的引脚排列 这很简单,因为它们没有太多的连接电缆,所以它们也有一个连接器,因此您可以更轻松地进行连接。 对于NEMA 17,您会发现一个如上图所示的引脚。
但是,如果您需要了解有关NEMA 17可以使用的极限和范围的更多技术和电气详细信息,则可以 搜索数据表 步进电机,从而获得您正在寻找的所有补充信息。 在这里你可以 下载PDF 举个例子。
在哪里购买和定价
你可以找到 以低廉的价格 在各种专门的电子商店和在线商店中。 例如,您可以在Amazon上使用它。 它们来自不同的制造商和不同的销售格式,例如,如果需要多个用于移动机器人的产品,则以3个或更多单位的包装形式出售。 以下是一些超值优惠:
- NEMA 17电机,带支架和螺钉
- 3包Nema 17包
- 附件:
- 防振垫片,用于安装
- 没有找到产品。
如何开始使用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或激活引脚可能会断开,因为这样驱动器将处于活动状态。 如果将其设置为HIGH而不是LOW,则会禁用驱动程序。
- 其他引脚将断开连接...
至于 草图代码要使NEMA 17正常工作并开始使用,就像想要的那样简单...
#define dirPin 2 #define stepPin 3 #define stepsPerRevolution 200 void setup() { // Declare pins as output: pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); } void loop() { // Set the spinning direction clockwise: digitalWrite(dirPin, HIGH); // Spin the stepper motor 1 revolution slowly: for (int i = 0; i < stepsPerRevolution; i++) { // These four lines result in 1 step: digitalWrite(stepPin, HIGH); delayMicroseconds(2000); digitalWrite(stepPin, LOW); delayMicroseconds(2000); } delay(1000); // Set the spinning direction counterclockwise: digitalWrite(dirPin, LOW); // Spin the stepper motor 1 revolution quickly: for (int i = 0; i < stepsPerRevolution; i++) { // These four lines result in 1 step: digitalWrite(stepPin, HIGH); delayMicroseconds(1000); digitalWrite(stepPin, LOW); delayMicroseconds(1000); } delay(1000); // Set the spinning direction clockwise: digitalWrite(dirPin, HIGH); // Spin the stepper motor 5 revolutions fast: for (int i = 0; i < 5 * stepsPerRevolution; i++) { // These four lines result in 1 step: digitalWrite(stepPin, HIGH); delayMicroseconds(500); digitalWrite(stepPin, LOW); delayMicroseconds(500); } delay(1000); // Set the spinning direction counterclockwise: digitalWrite(dirPin, LOW); //Spin the stepper motor 5 revolutions fast: for (int i = 0; i < 5 * stepsPerRevolution; i++) { // These four lines result in 1 step: digitalWrite(stepPin, HIGH); delayMicroseconds(500); digitalWrite(stepPin, LOW); delayMicroseconds(500); } delay(1000); }
更多信息,您可以参考编程课程 Arduino IDE 由Hwlibre。