打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一文掌握ESP32 中步进电机的控制方法

步进电机简介

步进电机是一种无刷直流电机,它将完整的旋转分为多个步骤。它一次移动一步,并且每一步的大小都相同。这使我们能够将电机旋转精确的角度到精确的位置。步进电机可以顺时针或逆时针旋转。

下图为两台28BYJ-48步进电机。

步进电机由内部线圈制成,当以特定方式向线圈施加电流时,电机轴会沿一个方向或另一个方向步进移动。步进电机有两种类型:单极步进电机和双极步进电机。

28BYJ-48步进电机

28BYJ-48步进电机特点

  • 额定电压:5V直流
  • 相数:4
  • 变速比:1/64
  • 步幅角:5.625°/64
  • 频率:100Hz

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°/步。所以,

  • 每转总步数 = 2048 步
  • 步距角 = 0.18°/步

ULN2003 电机驱动器

ULN2003电机驱动器

该模块配有一个连接器,可以轻松简单地将电机连接到模块。它有四个输入引脚来控制使步进电机移动的线圈。四个 LED 提供线圈状态的可视化界面。

引脚可以连接电压控制电路接地,和一个跳线帽,充当开/关开关,为步进电机供电——如果拆下跳线,电机就不会通电。

ULN2003 电机驱动器引脚

IN1

控制电机:连接到微控制器数字引脚

IN2

控制电机:连接到微控制器数字引脚

IN3

控制电机:连接到微控制器数字引脚

IN4

控制电机:连接到微控制器数字引脚

电压控制电路

电源

接地

接地

电机连接器

连接电机连接器

将步进电机连接到 ESP32

通过 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);}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
成功用ULN2003驱动板驱动28BYJ
原来步进电机可以这样玩的
Arduino步进电机控制示例 – 八色木
Arduino 控制多路步进电机
几款uln2803的应用电路及驱动电路
一种步进电机驱动器ULN2003的应用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服