作者:liuzhong 發(fā)表時間:2008-12-14 21:35:45 |
用單片機控制步進電機 步進電機是機電控制中一種常用的執(zhí)行機構(gòu),它的用途是將電脈沖轉(zhuǎn)化為角位移,通俗地說:當步進驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度(及步進角)。通過控制脈沖個數(shù)即可以控制角位移量,從而達到準確定位的目的;同時通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,從而達到調(diào)速的目的。 一、步進電機常識 常見的步進電機分三種:永磁式(PM),反應(yīng)式(VR)和混合式(HB),永磁式步進一般為兩相,轉(zhuǎn)矩和體積較小,步進角一般為7.5度或15度;反應(yīng)式步進一般為三相,可實現(xiàn)大轉(zhuǎn)矩輸出,步進角一般為1.5度,但噪聲和振動都很大。在歐美等發(fā)達國家80年代已被淘汰;混合式步進是指混合了永磁式和反應(yīng)式的優(yōu)點。它又分為兩相和五相:兩相步進角一般為1.8度而五相步進角一般為0.72度。這種步進電機的應(yīng)用最為廣泛。 二、永磁式步進電機的控制 下面以電子愛好者業(yè)余制作中常用的永磁式步進電機為例,來介紹如何用單片機控制步進電機。 圖1是35BY型永磁步進電機的外形圖,圖2是該電機的接線圖,從圖中可以看出,電機共有四組線圈,四組線圈的一個端點連在一起引出,這樣一共有5根引出線。要使用步進電機轉(zhuǎn)動,只要輪流給各引出端通電即可。將COM端標識為C,只要AC、C、BC、C,輪流加電就能驅(qū)動步進電機運轉(zhuǎn),加電的方式可以有多種,如果將COM端接正電源,那么只要用開關(guān)元件(如三極管),將A、B、 輪流接地。 下表列出了該電機的一些典型參數(shù): 表1 35BY48S03型步機電機參數(shù)型號 步距角 相數(shù) 電壓 電流 電阻 ****靜轉(zhuǎn)距 定位轉(zhuǎn)距 轉(zhuǎn)動慣量35BY48S03 7.5 4 12 0.26 47 180 65 2.5 有了這些參數(shù),不難設(shè)計出控制電路,因其工作電壓為12V,****電流為0.26A,因此用一塊開路輸出達林頓驅(qū)動器(ULN2003)來作為驅(qū)動,通過P1.4~P1.7來控制各線圈的接通與切斷,電路如圖3所示。開機時,P1.4~P1.7均為高電平,依次將P1.4~P1.7切換為低電平即可驅(qū)動步進電機運行,注意在切換之前將前一個輸出引腳變?yōu)楦唠娖。如果要改變電機的轉(zhuǎn)動速度只要改變兩次接通之間的時間,而要改變電機的轉(zhuǎn)動方向,只要改變各線圈接通的順序。 圖1 35BY48S03型步進電機外形圖 圖2 35BY48S03型步進電機的接線圖 圖3 單片機控制35BY48S03型步進電機的電路原理圖 三、步進電機的驅(qū)動實例 要求:控制電路如圖3所示,開機后,電機不轉(zhuǎn),按下啟動鍵,電機旋轉(zhuǎn),速度為25轉(zhuǎn)/分,按下加1鍵,速度增加,按下減1鍵,速度降低,****速度為100轉(zhuǎn)/分,****轉(zhuǎn)帶為25轉(zhuǎn)/分,按下停止鍵,電機停轉(zhuǎn)。速度值要求在數(shù)碼管上顯示出來。 1.要求分析 按上面的分析,改變轉(zhuǎn)速,只要改變P1.0~P1.3輪流變低電平的時間即可達到要求,這個時間不應(yīng)采用延時來實現(xiàn),因為會影響到其他功能的實現(xiàn)。這里以定時的方式來實現(xiàn)。下面首先計算一下定時時間。 按要求,****轉(zhuǎn)速為25轉(zhuǎn)/分,而上述步進電機的步距角為7.5,即每48個脈沖為1周,即在****轉(zhuǎn)速時,要求為1200脈沖/分,相當于50ms/脈沖。而在****轉(zhuǎn)速時,要求為100轉(zhuǎn)/分,即48000脈沖/分,相當于12.5ms/脈沖。可以列出下表 表1 步進電機轉(zhuǎn)速與定時器定時常數(shù)關(guān)系 速度 單步時間(us) TH1 TL1 實際定時(us) 25 50000 76 0 49996.8 26 48077 82 236 48074.18 27 46296 89 86 46292.61 28 44643 95 73 44640.155 ⋯ … … … … 100 12500 211 0 12499.2 表中不僅計算出了TH1和TL1,而且還計算出了在這個定時常數(shù)下,真實的定時時間,可以根據(jù)這個計算值來估算真實速度與理論速度的誤差值。 表中TH1和TL1是根據(jù)定時時間算出來的定時初值,這里用到的晶振是11.0592M。有了上述表格,程序就不難實現(xiàn)了,使用定時/計數(shù)器T1為定時器,定時時間到后切換輸出腳即可。 2.程序?qū)崿F(xiàn) 定義DSB-1A實驗板的S1為啟動鍵,S2為停止鍵,S3為加1鍵,S4為減1鍵,程序如下: StartEnd bit 01H ;起動及停止標志 MinSpd EQU 25 ;起始轉(zhuǎn)動速度 MaxSpd EQU 100 ;****轉(zhuǎn)動速度 Speed DATA 23H ;流動速度計數(shù) DjCount DATA 24H ;控制電機輸出的一個值,初始為11110 111 Hidden EQU 10H ;消隱碼 Counter DATA 57H ;顯示計數(shù)器 DISPBUF DATA 58H ;顯示緩沖區(qū) ORG 0000H AJMP MAIN ORG 000BH JMP DISP ORG 001BH JMP DJZD ORG 30H MAIN: MOV SP,#5FH MOV P1,#0FFH MOV A,#Hidden MOV DispBuf,A MOV DispBuf+1,A MOV DispBuf+2,A MOV DjCount,#11110111B MOV SPEED,#MinSpd;起始轉(zhuǎn)動速度送入計數(shù)器 CLR StartEnd;停轉(zhuǎn)狀態(tài) MOV TMOD,#00010001B ; MOV TH0,#HIGH(65536-3000) MOV TL0,#LOW(65536-3000) MOV TH1,#0FFH; MOV TL1,#0FFH SETB TR0 SETB EA SETB ET0 SETB ET1 LOOP: ACALL KEY ;鍵盤程序 JNB F0,m |
|