步进电机是一种无刷直流电机,它将完整的旋转分为多个步骤。它一次移动一步,并且每一步的大小都相同。这使我们能够将电机旋转精确的角度到精确的位置。步进电机可以顺时针或逆时针旋转。
下图为两台28BYJ-48步进电机。
步进电机由内部线圈制成,当以特定方式向线圈施加电流时,电机轴会沿一个方向或另一个方向步进移动。步进电机有两种类型:单极步进电机和双极步进电机。
28BYJ-48步进电机特点
28BYJ-48步进电机共有四个线圈。线圈的一端接5V,对应电机的红线。线圈的另一端对应蓝色、粉色、黄色和橙色的电线。按逻辑顺序给线圈通电,使电机朝一个方向或另一个方向移动一步。
28BYJ-48 步进电机在半步模式下的步幅角为 5.625°/64。这意味着电机的步距角为 5.625°,因此在半步模式下需要 360°/5.625° = 64 步。在全步模式下:64/2 = 32 步完成一圈旋转。然而,输出轴通过 64:1 的齿轮比驱动。这意味着如果内部电机旋转 64 圈,轴(电机外部可见)将完成旋转一圈。这意味着电机必须移动 32×64 = 2048 步才能使轴完成一整圈旋转。这意味着您的精度为 360°/2048 步 = 0.18°/步。所以,
ULN2003电机驱动器
该模块配有一个连接器,可以轻松简单地将电机连接到模块。它有四个输入引脚来控制使步进电机移动的线圈。四个 LED 提供线圈状态的可视化界面。
引脚可以连接电压控制电路和接地,和一个跳线帽,充当开/关开关,为步进电机供电——如果拆下跳线,电机就不会通电。
ULN2003 电机驱动器引脚
IN1 | 控制电机:连接到微控制器数字引脚 |
IN2 | 控制电机:连接到微控制器数字引脚 |
IN3 | 控制电机:连接到微控制器数字引脚 |
IN4 | 控制电机:连接到微控制器数字引脚 |
电压控制电路 | 电源 |
接地 | 接地 |
电机连接器 | 连接电机连接器 |
通过 ULN2003 电机驱动器将步进电机连接到 ESP32。这里将 IN1、IN2、IN3 和 IN4 连接到 GPIO19,18,5, 和17 号。
注意:应使用外部 5V 电源为电机驱动器供电。
#include <Stepper.h>const int stepsPerRevolution = 2048; // 每次旋转的步数// ULN2003 连接引脚#define IN1 19#define IN2 18#define IN3 5#define IN4 17// 步进电机初始化Stepper myStepper(stepsPerRevolution, IN1, IN3, IN2, IN4);void setup() { // 设置每分钟5圈 myStepper.setSpeed(5); // 串口初始化 Serial.begin(115200);}void loop() { // 顺时针旋转 Serial.println('clockwise'); myStepper.step(stepsPerRevolution); delay(1000); // 逆时针旋转 Serial.println('counterclockwise'); myStepper.step(-stepsPerRevolution); delay(1000);}
联系客服