第三节、电机定速转动【51单片机-L298N-步进电机教程】
摘要:本节介绍用定时器定时的方式,精准控制脉冲时间,从而控制步进电机速度
一、计算过程
电机每一步的角速度等于走这一步所花费的时间,走一步角度等于步距角,走一步的时间理解为一步距时间
w
=
s
t
e
p
t
…
…
①
w=\frac{step}{t} ……①
w=tstep……①
w:角速度(°/s)
step:步距角(°)
t:步距时间(s)
L298N驱动步进电机有三种模式:单相4拍、双相4拍、8拍,对于二相四线步进电机,4拍步距角为1.8度,8拍等效步距角为1.8/2=0.9度,每走一步转动的角度为step/X,带入①式
w
=
s
t
e
p
t
∗
X
…
…
②
w=\frac{step}{t*X} ……②
w=t∗Xstep……②
X:转动模式(4拍模式:X=1 8拍模式:X=2)
电机速度通常使用单位为转速RPM(转/分),角速度(°/S)与转速之间的转换关系
w
=
6
∗
n
…
…
③
w=6*n ……③
w=6∗n……③
n:转速(RPM)
将③带入②可得:
t
=
s
t
e
p
6
∗
n
∗
X
…
…
④
t=\frac{step}{6*n*X} ……④
t=6∗n∗Xstep……④
至此得到了步进电机转动一步的时间t
采用51单片机16位溢出定时器的模式去定时,可以得到:
C
=
65536
−
t
∗
X
t
a
l
12
…
…
⑤
C=65536-t*\frac{Xtal}{12} ……⑤
C=65536−t∗12Xtal……⑤
C:16位溢出定时器初值
Xtal:晶振频率
1.5 将④带入⑤可得:
C
=
65536
−
s
t
e
p
∗
X
t
a
l
72
∗
X
∗
n
…
…
⑥
C=65536-\frac{step*Xtal}{72*X*n}……⑥
C=65536−72∗X∗nstep∗Xtal……⑥
1.6 对于二相步进电机步距角为step=1.8°,带入之后可得:
C
=
65536
−
X
t
a
l
40
∗
X
∗
n
…
…
⑦
C=65536-\frac{Xtal}{40*X*n}……⑦
C=65536−40∗X∗nXtal……⑦
至此得到了转速n与定时初值C的函数关系
二、举例计算
二相四线电机,八拍模式,单片机晶振频率为12000000,设定转速为100RPM,带入⑦可得:
C
=
65536
−
12000000
40
∗
2
∗
100
=
64036
C=65536-\frac{12000000}{40*2*100} =64036
C=65536−40∗2∗10012000000=64036
定时器0初值高8位TH0= C/256=0XFA
定时器0初值低8位TL0= C%256=0X24
提供一个L298N速度计算程序:
百度网盘链接: https://pan.baidu.com/s/1ULyl8-90rLv0wAh8oKfO8A
提取码: 7hmi
三、测试
烧录hex文件后,单片机上电,电机会以100RMP速度匀速转动
Proteus仿真
四、功能扩展
扩展1
① 增加4个按键,控制电机启停、方向、速度加减
② 增加数码管,显示信息
扩展2
① 增加4个按键,控制电机启停、方向、速度加减
② 增加1602LCD,显示信息
五、总结
至此一个基本的电机定速驱动程序完成,通过调整定时时间,可以精确调整电机的转速
此种方式利用定时器精确定时能力,从而控制电机转速,是后续电机加减速运动的理论基础
六、附件(网盘内keil源码为付费资源,提供答疑,Proteus免费)
百度网盘链接: https://pan.baidu.com/s/1233yaX11T1lfsEnvXBTdtg
提取码: qk6j
↓↓↓点击下方目录,查看L298N系列全部文章