Arduino - 步进电机

步进电机或步进电机是一种无刷同步电机,它将整个旋转过程分为多个步骤。与无刷直流电机不同,当施加固定直流电压时,无刷直流电机会连续旋转,而步进电机则以离散步进角旋转。

因此,步进电机每转的步数为 12、24、72、144、180 和 200,因此每步的步进角为 30、15、5、2.5、2 和 1.8 度。步进电机可以有或没有反馈进行控制。

想象一下遥控飞机上的电机。电机朝一个方向或另一个方向旋转得非常快。您可以通过给电机提供的功率来改变速度,但您无法告诉螺旋桨停在特定位置。

现在想象一下一台打印机。打印机内部有许多运动部件,包括电机。其中一个电机充当纸张进纸器,旋转滚筒在纸张上打印墨水时移动纸张。该电机需要能够将纸张移动精确的距离,以便能够打印下一行文本或下一行图像。

另一个电机连接到螺纹杆上,可以来回移动打印头。同样,该螺纹杆需要移动精确的量才能逐个打印字母。这就是步进电机派上用场的地方。

步进电机

步进电机的工作原理?

普通直流电机只能朝一个方向旋转,而步进电机可以以精确的增量旋转。

步进电机可以根据需要旋转精确的度数(或步数)。这样您就可以完全控制电机,将其移动到准确位置并保持该位置。它通过在很短的时间内为电机内部的线圈供电来实现这一点。缺点是您必须一直为电机供电才能将其保持在所需的位置。

您现在需要知道的是,要移动步进电机,您需要告诉它朝一个方向或另一个方向移动一定数量的步数,并告诉它朝该方向移动的速度。步进电机种类繁多。此处描述的方法可用于推断如何使用本教程中未提及的其他电机和驱动器。但是,我们始终建议您查阅特定于您拥有的型号的电机和驱动器的数据表和指南。

Inner Stepper Motor

所需组件

您将需要以下组件 −

  • 1 × Arduino UNO 板
  • 1 × 小型双极步进电机,如下图所示
  • 1 × LM298 驱动 IC
LM298 驱动 IC

步骤

按照电路图进行连接,如下图所示。

步进电机连接

草图

在计算机上打开 Arduino IDE 软件。使用 Arduino 语言进行编码将控制您的电路。单击"新建"打开新的草图文件。

Sketch

Arduino 代码

/* 步进电机控制 */

#include <Stepper.h>
const int stepsPerRevolution = 90;
// 更改此值以适合您的电机每转的步数
//
/ 在引脚 8 至 11 上初始化步进库:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
    // 将速度设置为 60 rpm:
    myStepper.setSpeed(5);
    // 初始化串行端口:
    Serial.begin(9600);
}

void loop() {
    // 朝一个方向旋转一圈:
    Serial.println("clock");
    myStepper.step(stepsPerRevolution);
    delay(500);
    // 朝另一个方向旋转一圈:
    Serial.println("counterclock");
    myStepper.step(-stepsPerRevolution);
    delay(500);
}

需要注意的代码

此程序驱动单极或双极步进电机。电机连接到 Arduino 的数字引脚 8 - 11。

结果

电机将朝一个方向旋转一圈,然后朝另一个方向旋转一圈。