Arduino - 步进电机


步进电机或步进电机是一种无刷同步电机,它将完整的旋转分为多个步骤。与无刷直流电机在施加固定直流电压时连续旋转不同,步进电机以离散步距角旋转。

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

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

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

还有一个连接到螺杆的电机,用于前后移动打印头。同样,螺杆需要移动精确的距离才能打印一个又一个字母。这就是步进电机派上用场的地方。

步进电机

步进电机如何工作?

常规直流电机仅沿方向旋转,而步进电机可以精确增量旋转。

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

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

内置步进电机

所需组件

您将需要以下组件 -

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

程序

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

步进电机连接

草图

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

草图

Arduino代码

/* Stepper Motor Control */

#include <Stepper.h>
const int stepsPerRevolution = 90;
// change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
   // set the speed at 60 rpm:
   myStepper.setSpeed(5);
   // initialize the serial port:
   Serial.begin(9600);
}

void loop() {
   // step one revolution in one direction:
   Serial.println("clockwise");
   myStepper.step(stepsPerRevolution);
   delay(500);
   // step one revolution in the other direction:
   Serial.println("counterclockwise");
   myStepper.step(-stepsPerRevolution);
   delay(500);
}

注意事项代码

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

结果

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