STM32/STM8技术william hill官网
直播中

柯琼彦

5年用户 16经验值
擅长:可编程逻辑
私信 关注
[经验]

分享STM32驱动步进电机的方法

步进电机和直流电机可以说是我们平时最常用的俩种电机,相比直流电机,步进电机可以实现的精准控制也让其可以做到很多直流电机无法做到的事情。这篇文章会详细介绍四线俩相步进电机的驱动方法和一些调试方法。
1.步进电机和TB6560的接线图
步进电机驱动TB6560都有俩个接口,一端为输出,一端为输入,输出部分接步进电机,输入部分接单片机IO口,辨别俩个端口的方法是,看俩个端口旁标注的接口定义,笔者的输出口六个接口分别为VCC GND A+ A- B+ B-,输入口分别为EN- EN+ DR- DR+ CP- CP+(如图)
输出端接线的时候只需要注意,将步进电机的同相的线接到一起(同为A或同为B,如图),确定哪跟线只需要用万用表测即可,短接的俩根线为同相。
输入端接线的方法有俩种,一种是共阳法,另一种是共阴法,我使用的是共阳接法,所以只介绍共阳法,共阴类似共阳,请读者自己参照共阳研究。共阳法接线要把EN+ DR+ CP+短接,然后接到VCC(STM32的VCC为3.3V,如图)。
2.TB6560的参数说明
首先要说明的是输入端口的几个字母的意思,EN为使能端,当EN端为高电平时,为工作状态;CP为脉冲输入端,该端口有脉冲时步进电机转动;DR为方向信号端,高电平和低电平时方向相反。然后驱动上有一排开关,驱动生产厂家不同,开关的功能也会有所区别,但共同的特点是都会有“细分设置”和“工作电流”,细分设置指的是步进电机每一步转多少度,以一整步为最大,分的越小,那么一步转过的角度就会越少,这里需要注意的是,最开始调的时候,最好调到整步,如果细分太多的话,即使步进电机转动了,可能你也不会有所察觉;工作电流要注意,设置电流不能超过电机的额定电流。具体设置这些参数根据驱动上的说明,打开相应开关即可。
3.程序设计思路
a.让电机转起来
在测试的时候,首先要确保单片机和驱动接线是正确的,使能端接高电平或悬空,方向端接高电平或低电平或者悬空,脉冲管脚接一个STM32的IO口,这个管脚通过延时函数输出一个脉冲,但是这个脉冲的频率不能太快,否则电机不能正常启动,这个管脚最好接一个小灯,小灯每闪一次,步进电机会走一步,如果小灯在闪,步进电机没转的话,就可以排除程序问题,检查接线就好了。
b.改变电机转速
等步进电机可以转起来的时候,就可以把延时函数改成定时器中断了,通过定时器控制脉冲频率。这时候改变计数器装入的值就可以改变频率快慢,就可以实现电机的转速控制,还要注意:步进电机速度越快,提速的加速度必须越小,否则步进电机就会卡死。
c.电机的启动截至、改变转动方向
实现步进电机的转速控制,电机转动方向和启动截至就简单多了,只需要将另外俩个端口接到IO口:改变使能口的电平,即可控制启动截至;改变转动方向的电平就可以改变转动方向。
4.总结ujygc.com
通过上面的调试,已经可以实现步进电机的加速、减速、反转、截至和启动功能了,至于代码部分,还是很简单的,只需要稍微改一下定时器程序的参数即可实现,我就不贴出来了。希望大家调试顺利!
【注】以上所有过程都建立在共阳接法的基础上。大家步进电机驱动可能和我的不同,这里也只是希望可以让读者达到参考的目的。

更多回帖

发帖
×
20
完善资料,
赚取积分