黄工无刷电机学习
登录
直播中
刘丹
7年用户
1483经验值
私信
关注
[问答]
28BYJ-48五线四相步进电机驱动常见的通电方式有哪些?
开启该帖子的消息推送
步进电机
28BYJ-48五线四相步进电机驱动常见的通电方式有哪些?
28BYJ-48五线四相步进电机驱动为啥能抖动但是转不起来?
回帖
(1)
李高胜
2021-7-12 11:24:13
首先我用的单片机是普中51单片机开发板中的一款,而且由于单片机接口信号不够大需要通过ULN2003(集成7对达林顿管的芯片)放大(相当于一个功率放大威廉希尔官方网站 )再连接到相应的电机接口
按照这样去接:红线接电源5V,橙色电线接P1.3口,黄色电线接P1.2口,粉色电线接P1.1口,蓝色接P1.0口(生产厂家可能把那几根线的顺序搞错了,拆开端子排插,将杜邦线取出来按照上面顺序重新接);
28BYJ-48五线四相步进电机驱动可以在不同的通电方式下运行,常见的通电方式① 单(单相绕组通电)四拍(A-B-C-D-A);② 双(双相绕组通电)四拍(AB-BC- CD-DA-AB-);③ 八拍(A-AB-B-BC-C-CD-D-DA-A);
我自己写的一个程序:
#include“reg51.h”//按照双四拍:AB--BC--CD--DA--AB进行通电typedef unsigned int u16;typedef unsigned char u8;***it motorA = P1^0;***it motorB = P1^1;***it motorC = P1^2;***it motorD = P1^3;void delay(u16 i){ while(i--);}void main(){ u8 i; motorA = 0; motorB = 0; motorC = 0; motorD = 0;//因为P1口管脚复位初始默认高电平(内外都接有上拉电阻),本人先将四相电位置低电平 while(1) { for(i = 1;i 《 10; ++i)//用for循环实现几秒以上的延时函数,用while循环不能实现 { motorA = 1; motorB = 1; delay(10); } //AB通电1ms motorA = 0; motorB = 0; //AB关电 for(i = 1;i 《 10; ++i) { motorB = 1; motorC = 1; delay(10); }//BC通电1ms motorB = 0; motorC = 0; //BC关电 for(i = 1;i 《 10; ++i) { motorC = 1; motorD = 1; delay(10);//CD通电1ms } motorC = 0; motorD = 0;//CD关电 for(i = 1;i 《 10; ++i) { motorD = 1; motorA = 1; delay(10);//DA通电1ms } motorD = 0; motorA = 0;//DA关电 //while(1); //防止程序跑飞 }} **
结论:
转不转跟延迟函数delay()中填的时间没有关系,主要还在于通电的相的顺序和VCC接对没有,其实很简单的。
首先我用的单片机是普中51单片机开发板中的一款,而且由于单片机接口信号不够大需要通过ULN2003(集成7对达林顿管的芯片)放大(相当于一个功率放大威廉希尔官方网站 )再连接到相应的电机接口
按照这样去接:红线接电源5V,橙色电线接P1.3口,黄色电线接P1.2口,粉色电线接P1.1口,蓝色接P1.0口(生产厂家可能把那几根线的顺序搞错了,拆开端子排插,将杜邦线取出来按照上面顺序重新接);
28BYJ-48五线四相步进电机驱动可以在不同的通电方式下运行,常见的通电方式① 单(单相绕组通电)四拍(A-B-C-D-A);② 双(双相绕组通电)四拍(AB-BC- CD-DA-AB-);③ 八拍(A-AB-B-BC-C-CD-D-DA-A);
我自己写的一个程序:
#include“reg51.h”//按照双四拍:AB--BC--CD--DA--AB进行通电typedef unsigned int u16;typedef unsigned char u8;***it motorA = P1^0;***it motorB = P1^1;***it motorC = P1^2;***it motorD = P1^3;void delay(u16 i){ while(i--);}void main(){ u8 i; motorA = 0; motorB = 0; motorC = 0; motorD = 0;//因为P1口管脚复位初始默认高电平(内外都接有上拉电阻),本人先将四相电位置低电平 while(1) { for(i = 1;i 《 10; ++i)//用for循环实现几秒以上的延时函数,用while循环不能实现 { motorA = 1; motorB = 1; delay(10); } //AB通电1ms motorA = 0; motorB = 0; //AB关电 for(i = 1;i 《 10; ++i) { motorB = 1; motorC = 1; delay(10); }//BC通电1ms motorB = 0; motorC = 0; //BC关电 for(i = 1;i 《 10; ++i) { motorC = 1; motorD = 1; delay(10);//CD通电1ms } motorC = 0; motorD = 0;//CD关电 for(i = 1;i 《 10; ++i) { motorD = 1; motorA = 1; delay(10);//DA通电1ms } motorD = 0; motorA = 0;//DA关电 //while(1); //防止程序跑飞 }} **
结论:
转不转跟延迟函数delay()中填的时间没有关系,主要还在于通电的相的顺序和VCC接对没有,其实很简单的。
举报
更多回帖
rotate(-90deg);
回复
相关问答
步进电机
如何使用ULN2003
驱动
五线
四
相
减速
步进
电机
?
2021-10-18
2912
请问ULN2003是如何
驱动
步进
电机
28BYJ-48
的?
2021-10-13
1520
求大佬分享
步进
电机
28BYJ-48
的
驱动
程序
2021-12-21
618
请问STM32如何控制ULN2003
驱动
步进
电机
28BYJ-48
?
2021-10-15
1795
28BYJ-48
步进
电动机的
驱动
方式
是怎样的?
2021-11-04
1561
如何控制
28BYJ-48
步进
电机
连续正反转?
2021-10-15
2360
求个威廉希尔官方网站 ,用三级管怎么
驱动
5
线
4
相
步进
电机
2015-04-24
5246
如何使用ULN2003
驱动
28BYJ-48
步进
电机
?
2021-10-18
1675
步进
电机
28BYJ-48
的51/stm32测试程序分享
2021-12-21
733
28BYJ48
型
步进
电机
的控制方法是什么
2021-12-23
836
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分