ESP32 ULN2003驱动步进电机 ,解决电机振动,但不转动问题

开发环境 VS Code
步进电机 :28BYJ-48步进电机
ESP32 TTGO

  使用ESP32 驱动步进电机,使用了自带的Stepper库,但是,结果是电机未转动,以至于我认为购买的电机出了问题,自己还测试了一下,最后发现电机是正确的,是Stepper电机驱动库的问题,与我购买的电机驱动有时序差异,即需要修改电机驱动库里面的不兼容的部分,最后成功驱动28BYJ-48步进电机,28BYJ-48的含义为外径28毫米四相八拍式永磁减速型步进电机。
使用的电机如图所示:
在这里插入图片描述
四相八拍:A->AB->B ->BC ->C ->CD ->D ->DA
其A、B、C、D指的是uln2003芯片驱动板的1N1、1N2、1N3、1N4,波形在上表示有输入信号。

  28BYJ-48步进电机的齿轮减速比为64:1,转速约15转/分钟,一些软件采用某些手段和高电压电源(如12伏直流)也能达到约25转/分钟的转速。

4步控制信号序列:11.25度/步,32步旋转一周。
8步控制信号序列:5.625度/步, 64步旋转一周。
正常情况下,4步模式下旋转一周将用:32(步/周)X64(齿轮比) = 2048 步,8步模式下旋转一周将用:64(步/周)X64(齿轮比) = 4096 步,此ULN2003驱动模块使用4步模式运行,所以接下来的程序里旋转一周的步数是2048步。

1、Stepper库修改部分

D:\Arduino\libraries 自带的arduino 库文件,主要就是修改电机的时序。
在这里插入图片描述

图中的时序为: AC-BC-BD-AD,
正转 电机导通相序 D-C-B-A
反转 电机导通相序 A-B-C-D

在255行,注释下图部分:
之后按照时序重新修改,电机运行就正常了。
在这里插入图片描述
之后替换下面代码:

case 0:  // 1010
            digitalWrite(motor_pin_1, HIGH);
            
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值