摘要:本節介紹用定時器定時的方式,精準控制脈沖時間,從而控制步進電機速度
一、計算過程
1.1 電機每一步的角速度等于走這一步所花費的時間,走一步角度等于步距角,走一步的時間等于一個脈沖的時間
w = s t e p t … … ① w=\frac{step}{t} ……① w=tstep?……①
w:角速度(°/s)
step:步距角(°)
t:脈沖時間(s)
1.2 TB6600及其他驅動器大多具有細分功能,考慮細分X之后,一個脈沖轉動的角度為step/X,帶入①式:
w = s t e p t ? X … … ② w=\frac{step}{t*X} ……② w=t?Xstep?……②
X:驅動器細分(X=1,2,4,8,16,32……)
1.3 電機速度通常使用單位為轉速RPM(轉/分),角速度(°/S)與轉速之間的轉換關系:
w = 6 ? n … … ③ w=6*n ……③ w=6?n……③
t = s t e p 6 ? n ? X … … ④ t=\frac{step}{6*n*X} ……④ t=6?n?Xstep?……④
n:轉速(RPM)
至此得到了步進電機一個脈沖的時間t
1.4 采用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的函數關系
二、舉例計算
步進電機使用二相四線電機,驅動器細分值設定為2,單片機晶振頻率為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
三、測試
燒錄hex文件后,單片機上電,電機會以100RMP速度勻速轉動
四、功能擴展
擴展1
① 增加4個按鍵,控制電機啟停、方向、速度加減
② 增加數碼管,顯示信息
擴展2
① 增加4個按鍵,控制電機啟停、方向、速度加減
② 增加1602LCD,顯示信息
五、總結
至此一個基本的電機定速驅動程序完成,通過調整定時時間,可以精確調整電機的轉速
此種方式利用定時器精確定時能力,從而控制電機轉速,是后續電機加減速運動的理論基礎
五、附件
Hex測試程序請見百度網盤
鏈接: https://pan.baidu.com/s/1zk3TdaNJpOl2xjSGP3J4-A
提取碼: ev4a
Keil源碼請見某寶,搜索:【皮皮黃步進電機】
↓↓↓點擊下方【目錄】,查看本系列全部文章