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。

结果

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