找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 24484|回复: 50
收起左侧

51单片机精确控制步进电机(有TB6600驱动)

  [复制链接]
ID:506152 发表于 2019-4-9 22:22 | 显示全部楼层 |阅读模式
作为一个小白,我想记录一下自己的学习过程,也和大家交流学习一下。
设备:51单片机开发板、TB6600驱动器、57BYG250B步进电机(二相)、直流开关电源。直流电源给驱动器供电,单片机给驱动器输入脉冲,驱动器驱动步进电机。程序使用定时器中断精确控制电机转动(不考虑失步)。比如我采用16倍细分,则需给驱动输入3200个脉冲,驱动才会使电机转一圈,下面程序中1秒发送200个脉冲,则相应的电机16秒转一圈。(第一次搞不怎么会上传,就传图片了)

单片机源程序如下:
捕获1.PNG 捕获2.PNG 捕获3.PNG

驱动器

驱动器

电源

电源

步进电机

步进电机

评分

参与人数 2黑币 +55 收起 理由
15773093259 + 5
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:493996 发表于 2019-4-27 12:32 | 显示全部楼层
你实物效果实现了没有
回复

使用道具 举报

ID:375715 发表于 2019-4-27 19:35 来自手机 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:375715 发表于 2019-4-28 10:25 来自手机 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:506152 发表于 2019-4-28 19:27 | 显示全部楼层
577174566 发表于 2019-4-27 12:32
你实物效果实现了没有

实现了
回复

使用道具 举报

ID:431514 发表于 2019-4-29 07:24 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:99612 发表于 2019-4-29 20:31 | 显示全部楼层
0.02ms x250是什么意思?
回复

使用道具 举报

ID:506152 发表于 2019-4-29 23:20 | 显示全部楼层
5314039 发表于 2019-4-29 20:31
0.02ms x250是什么意思?

这个可以忽略,我当时是想详细算一下定时器时间的,注释忘记修改了。这里想表达的意思是每个脉冲周期是5ms,频率是200hz,1秒输出200个脉冲。0.02ms*250=5ms,就当是个数学等式了。
回复

使用道具 举报

ID:531986 发表于 2019-5-10 16:13 | 显示全部楼层
麻烦问一下那个ENA,DIR,PUL六根线怎么接的啊
回复

使用道具 举报

ID:506152 发表于 2019-5-12 10:21 | 显示全部楼层
17851000590 发表于 2019-5-10 16:13
麻烦问一下那个ENA,DIR,PUL六根线怎么接的啊

你看驱动器的说明书,ENA,DIR,是控制是否脱机控制和转向,你可以共阴极连接,PUL是脉冲输入端,可以连到单片机上你发出脉冲的引脚。
回复

使用道具 举报

ID:530889 发表于 2019-5-12 14:25 | 显示全部楼层
17851000590 发表于 2019-5-10 16:13
麻烦问一下那个ENA,DIR,PUL六根线怎么接的啊

共阴或者共阳连接,上面标注的正负号就是有效电平。
比如你共阳接,那PUL+,DIR+,ENA+接开发板5V接口,剩下三个符号接口接开发板三个IO口。这时候你只要对应IO口输出低电平,那该功能就是打开的,输出高电平该功能就是关闭的。
回复

使用道具 举报

ID:530889 发表于 2019-5-12 14:28 | 显示全部楼层
感谢,最近也在用TB6600控制42步进电机,初学小白定时器还不会用,看你的感觉一下很清晰了
回复

使用道具 举报

ID:536494 发表于 2019-5-12 22:05 | 显示全部楼层
电机正反转应该怎么控制呢?
回复

使用道具 举报

ID:530889 发表于 2019-5-13 13:20 | 显示全部楼层
ahjxszc 发表于 2019-5-12 22:05
电机正反转应该怎么控制呢?

就TB6600DIR给个相反的电平就反转了,或者你把A+——A-——B+——B-顺序反一下就好了叭
回复

使用道具 举报

ID:531986 发表于 2019-5-14 21:56 | 显示全部楼层
可爱的楼主,ena.dir,pul,共阴还是共阳接线
回复

使用道具 举报

ID:531986 发表于 2019-5-14 21:58 | 显示全部楼层
Jachin98 发表于 2019-5-12 14:25
共阴或者共阳连接,上面标注的正负号就是有效电平。
比如你共阳接,那PUL+,DIR+,ENA+接开发板5V接口, ...

谢谢楼主
回复

使用道具 举报

ID:531986 发表于 2019-5-14 22:09 | 显示全部楼层
Jachin98 发表于 2019-5-12 14:25
共阴或者共阳连接,上面标注的正负号就是有效电平。
比如你共阳接,那PUL+,DIR+,ENA+接开发板5V接口, ...

接好了,你的程序转不起来
回复

使用道具 举报

ID:538517 发表于 2019-5-15 02:41 来自手机 | 显示全部楼层
牛,学习了,感谢分享
回复

使用道具 举报

ID:135915 发表于 2019-5-15 08:50 | 显示全部楼层
请教楼主,这是完整程序吗?
回复

使用道具 举报

ID:506093 发表于 2019-5-16 11:29 | 显示全部楼层
您好,我想请教下,这里输出的脉冲为何用的是占空比为0.7的PWM?可不可以是方波的?我最近也在做这个驱动,我用的是方波驱动,感觉电机的步进有误差
回复

使用道具 举报

ID:506152 发表于 2019-5-16 20:18 | 显示全部楼层
17851000590 发表于 2019-5-14 21:56
可爱的楼主,ena.dir,pul,共阴还是共阳接线

我这个是共阴接线
回复

使用道具 举报

ID:506152 发表于 2019-5-16 20:20 | 显示全部楼层
飞云 发表于 2019-5-16 11:29
您好,我想请教下,这里输出的脉冲为何用的是占空比为0.7的PWM?可不可以是方波的?我最近也在做这个驱动, ...

0.7是随便设的,占空比为0.6什么的都没问题,主要是能给驱动器脉冲就行了
回复

使用道具 举报

ID:531986 发表于 2019-5-16 21:43 | 显示全部楼层
是不是引脚要加上拉电阻
回复

使用道具 举报

ID:506152 发表于 2019-5-17 15:20 | 显示全部楼层
troy2 发表于 2019-5-15 08:50
请教楼主,这是完整程序吗?

如果线接的对,这个能让电机转起来。其实用PWM=~PWM; delay();这样的语句也能让电机转,不过用定时器控制的话,电机走一圈的时间相对来说更精确。
回复

使用道具 举报

ID:506152 发表于 2019-5-17 15:22 | 显示全部楼层
17851000590 发表于 2019-5-16 21:43
是不是引脚要加上拉电阻

单片机就是普通的单片机开发板,没有加上拉电阻。
回复

使用道具 举报

ID:522912 发表于 2019-5-29 13:21 | 显示全部楼层
我采用的也是共阴极接法,为什么电机只响不转,同tb6600的蓝灯闪烁正常,能指导一下么谢谢
回复

使用道具 举报

ID:377842 发表于 2019-6-19 17:42 | 显示全部楼层
同样转不了啊,到底是什么原因?
回复

使用道具 举报

ID:371529 发表于 2019-6-25 09:55 | 显示全部楼层
楼主能否发下你完整的程序,能使电机正转反转的。最近也在学这方面的东西,还不太懂,很是愁人。
回复

使用道具 举报

ID:371529 发表于 2019-6-28 20:19 | 显示全部楼层
为什么要输出占空比为0.7的PWM波呢
回复

使用道具 举报

ID:470571 发表于 2019-7-13 20:44 | 显示全部楼层
哈哈我哈哈 发表于 2019-6-25 09:55
楼主能否发下你完整的程序,能使电机正转反转的。最近也在学这方面的东西,还不太懂,很是愁人。

正反转直接该楼主代码中的DIR值即可,(比如该1或0方向就是相反的)
回复

使用道具 举报

ID:470571 发表于 2019-7-13 20:45 | 显示全部楼层
请问楼主,脉冲的需要控制占空比吗?我觉得不需要吧,我只是想请问你控制占空比是为了什么,是为了改变什么呢?
回复

使用道具 举报

ID:523759 发表于 2019-7-19 12:30 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:575976 发表于 2019-7-19 22:59 | 显示全部楼层
我用STC15的硬件PWM写带缓冲控制556驱动2000的细分空载工作在1000rpm,是快还是慢?
回复

使用道具 举报

ID:575976 发表于 2019-7-19 23:00 | 显示全部楼层
641656606 发表于 2019-5-29 13:21
我采用的也是共阴极接法,为什么电机只响不转,同tb6600的蓝灯闪烁正常,能指导一下么谢谢

频率太快
回复

使用道具 举报

ID:575976 发表于 2019-7-19 23:01 | 显示全部楼层
ahjxszc 发表于 2019-5-12 22:05
电机正反转应该怎么控制呢?

加在DIR上一个反向电平
回复

使用道具 举报

ID:575976 发表于 2019-7-19 23:03 | 显示全部楼层
哈哈我哈哈 发表于 2019-6-28 20:19
为什么要输出占空比为0.7的PWM波呢

因为有的驱动脉宽太大,电机会一直处于负载状态
回复

使用道具 举报

ID:610895 发表于 2019-10-8 22:15 来自手机 | 显示全部楼层
17851000590 发表于 2019-5-14 21:56
可爱的楼主,ena.dir,pul,共阴还是共阳接线

单片机IO口输出大于20ma可以采用共阴接法,输出不能保证20ma以上就只能采用共阳接法。这样才能驱动光耦导通
回复

使用道具 举报

ID:59423 发表于 2019-10-18 10:41 | 显示全部楼层
尝试下楼主的程序,
回复

使用道具 举报

ID:629794 发表于 2019-10-26 15:40 | 显示全部楼层
请问一下以上代码就可以实现正反转了吗
回复

使用道具 举报

ID:15372 发表于 2019-10-29 08:37 | 显示全部楼层
我也在学这个,希望弄个绕线机的排线装置。目标:绕线机转动一圈输出1个脉冲到单片机,单片机根据键盘输入的漆包线直径计算需要输出的排线脉冲数到驱动器。一直希望弄这个东东,却被单片机程序卡卡了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表