陳 中,沈翠鳳,張 凱
1.鹽城工學院電氣工程學院,江蘇鹽城 224051;
2.中能建江蘇電力建設(shè)第一工程公司靖江分公,江蘇靖江 214513
單片機控制的步進電機調(diào)速系統(tǒng)有結(jié)構(gòu)簡單和編程方便等優(yōu)點。但由于單片機在步進電機調(diào)速系統(tǒng)控制的設(shè)計時候按照一些文獻[1]給出的方案,在具體設(shè)計時候會出現(xiàn)不同的問題,本文在系統(tǒng)硬件和軟件設(shè)計的基礎(chǔ)上,采用硬件設(shè)計和軟件調(diào)試相結(jié)合的方法,對單片機控制的紅外遙控步進電機調(diào)速系統(tǒng)控制進行了研究,充分利用單片機控制的特點和優(yōu)良性,對出現(xiàn)的各種問題提出了解決的新方法。試驗結(jié)果表明,該控制方法具有較高的實用價值。
以微處理器為核心的數(shù)字控制系統(tǒng)硬件電路標準化程度高,制作成本低,且元器件不受溫度變化的影響,其控制軟件能夠進行邏輯判斷和復(fù)雜運算,可以實現(xiàn)不同一般的線性調(diào)節(jié)最優(yōu)化、自適應(yīng)、非線性、智能化等控制規(guī)律,而且更改程序方便,數(shù)字控制系統(tǒng)穩(wěn)定性好、可靠性高[2],可以提高控制性能。而且還有信息存儲、數(shù)據(jù)通訊和故障診斷等優(yōu)點。
STC89C52RC單片機有加密性強、超強抗干擾、超低功耗、在系統(tǒng)中可編程、無需編程器、無需仿真器、價格便宜等優(yōu)點。本次設(shè)計采用STC89C52RC單片機作為控制核心,步進電機是一種將電脈沖轉(zhuǎn)化為角位移、直線位移的控制微電機。當步進驅(qū)動器接收到一個脈沖信號,就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度(稱為步距角),其旋轉(zhuǎn)是以固定的角度一步一步運行的。它具有良好的啟動性能和調(diào)速特性,它的特點是啟動轉(zhuǎn)矩大,最大轉(zhuǎn)矩大,能在寬廣的范圍內(nèi)平滑、經(jīng)濟地調(diào)速,轉(zhuǎn)速控制容易,調(diào)速后效率很高。
當給步進電機施加一系列連續(xù)不間斷的控制脈沖時,步進電機可以連續(xù)不斷地旋轉(zhuǎn)。每一個脈沖信號對應(yīng)的是步進電機的某一相或兩相繞組的通電狀態(tài)的改變,也就使得對應(yīng)的轉(zhuǎn)子轉(zhuǎn)過一個步距角。當通電狀態(tài)的改變完成一個完整的循環(huán)時,轉(zhuǎn)子就能剛好轉(zhuǎn)過一個完整的齒距。常見的四相步進電機可以在不同的通電方式下運行,通電方式有單(單相繞組通電)四拍(A-B-CD-A……),雙(雙相繞組通電)四拍(AB-BCCD-DA-AB-……),八拍(A-AB-B-BC-C-CD-D-DA-A…….)等。在精密數(shù)控車床中,步進電機得到廣泛的應(yīng)用。
由于是小功率步進電動機,本設(shè)計直接采用ULN2003AN芯片進行驅(qū)動,ULN2003AN是一種7路反向器的電路,即當ULN2003AN輸入端為高電平時,ULN2003AN對應(yīng)輸出端則為低電平;當ULN2003AN的輸入端為低電平時,ULN2003AN對應(yīng)輸出端則為高電平,步進電機得電旋轉(zhuǎn)。由于ULN2003AN模塊在通入電流過大時候可能損壞,因此在其輸入端加限流電阻用以保護芯片,為了保證步進電機的電壓滿足要求,在設(shè)計中還加入了上拉電阻,主電路如圖1所示。
圖1 步進電機控制主電路Fig.1 Main circuit of stepper motor control
基于單片機控制電路主要是鍵盤電路、數(shù)碼管顯示電路、紅外接收電路、急停電路等組成,其中鍵盤電路采用矩陣鍵盤方法[3],下面介紹紅外接收電路、數(shù)碼管采用動態(tài)顯示和急停電路的設(shè)計方法。
2.2.1 紅外接收電路的設(shè)計
紅外遙控接收可用紅外接收二極管附加專用的紅外處理電路方法,如CXA20106,但這種方法電路的復(fù)雜性高,通常不使用。因此,更好的接收方法是使用集成紅外接收頭。此次設(shè)計采用HS0038芯片。HS0038為直立側(cè)面收光型,功耗低、靈敏度高。它接收紅外信號頻率為38 kHz,信號可以在被放大的同時進行檢波、整形,然后取得TTL電平的編碼信號。3個管腳分別是解調(diào)信號輸出端、地、+5 V電源。由于紅外接收電路產(chǎn)生的編碼通過單片機外部中斷進入單片機,故把HS0038的輸出端接入單片機的外部中斷端口的INTO腳。當遙控器發(fā)出一串信號時候,通過中斷來檢測遙控器的信號,再用定時器設(shè)定的時間來解碼,從而判斷遙控器發(fā)出信號的高低電平。
2.2.2 中斷電路的設(shè)計
在單片機控制的步進電機設(shè)計中,一般要考慮到緊急情況的狀況。由于各種原因需要步進電機立即停止工作,如過電壓、過電流等以及加工過程中刀具問題等[3],可以采用斷電的方法,但這種方法容易產(chǎn)生較大的沖擊電流,對系統(tǒng)危害很大,故障排除后必須重新啟動系統(tǒng)。單片機控制的步進系統(tǒng),對于特殊情況下停止步進電機,設(shè)計采用中斷方式進行。急停電路由按鍵和電阻組成,其一端接在單片機外部中斷INT1上,另一端接地,采用低電平觸發(fā)方式,當出現(xiàn)緊急情況時,按下急停按鈕,產(chǎn)生中斷,停止步進電機。另一個獨立按鍵接在P3.1端口上,其作用是確定步進電機的高低速。
2.2.3 數(shù)碼管顯示電路
設(shè)計選用了共陽極4位數(shù)碼管F5461BR-1N顯示,其中只顯示后面兩位,采用動態(tài)顯示方式。數(shù)碼管的位選沒有采用常見的三極管元器件,而是采用了74LS139芯片作為位選的控制。由P2.7和P2.6端口控制74LS139,使能端接地,采用直通方式。另外,P3.1端口還接發(fā)光二極管且串電阻,其作用是當單片機接收到紅外信號后,發(fā)光一段時間,表明單片機已經(jīng)接收到紅外信號。
整個硬件電路如圖2所示。
圖2 單片機步進電機控制系統(tǒng)硬件電路圖Fig.2 Hardware circuit of Stepper motor control
軟件系統(tǒng)主要有鍵盤掃描程序、鍵盤處理程序、顯示程序、定時中斷程序、紅外解碼程序和步進電機驅(qū)動程序組成,其方框圖如圖3所示。
本設(shè)計采用的數(shù)碼管動態(tài)顯示方法,需要顯示的數(shù)據(jù)通過P0口和限流電阻輸入到數(shù)碼管同時控制,進而控制數(shù)碼管位選[4]。完整程序如下。
圖3 基于單片機步進電機調(diào)速系統(tǒng)流程圖Fig.3 Stepper motor control system flowchart based on microcontroller
步進電機高低速是供電時間不同造成的,根據(jù)P3.1端口電平狀態(tài)變化來確定步進電機的高低速。采用一個標志位 kp3,初始 kp3為零,當P3.1是由高電平變成低電平時候,kp3取反。根據(jù)kp3是1或0來決定步進電機的轉(zhuǎn)速,這樣做的好處,當按下連接P3.1端口的鍵盤時候,可以實現(xiàn)步進電機高低速轉(zhuǎn)換。部分程序如下。
設(shè)計采用兩兩導通方式,也即是通過A-AB-B-BC等方式進行導通的,所以p37為高電平,等過了一拍延遲一段時間后,p36也為高電平。程序中delay()為延遲函數(shù),延遲時間設(shè)定的不同,步進電機轉(zhuǎn)速就不同
遠程發(fā)出的一串二進制代碼,稱為數(shù)據(jù)。按照各自功能,將其劃分為引導碼、地址碼(用戶碼)、地址碼(用戶碼)、數(shù)據(jù)碼、數(shù)據(jù)反碼5部分。遙控器發(fā)射代碼時,均是低位在前,高位在后。引導碼高電平為9 ms,低電平為4.5 ms。在接收到起始碼后,真正的數(shù)據(jù)才開始發(fā)送[5],此時就可以準備接收了。完整程序如下。
紅外接收頭的輸出端接到單片機的外部中斷1上,根據(jù)外部中斷的響應(yīng)判定有無紅外信號,紅外信號有引導碼和用戶碼等32位組成,其中最重要是用戶碼,用戶碼是1或0,根據(jù)外部中斷兩個下降沿的時間來確定,故采用了一個定時器,根據(jù)定時器的時間長短來判定用戶碼是1或0,從而把不同的一串編碼分別開來[6]。
由于采用矩陣式鍵盤,采用掃描方法來實現(xiàn)對按鍵的處理,流程如圖4所示。
監(jiān)視鍵盤的輸入有3種掃描方式:編程、定時和中斷[7]。從理論上來說,中斷掃描是最好的,單片機正常工作時候,不需要關(guān)心鍵盤是否動作,只有當鍵盤動作產(chǎn)生中斷,單片機才相應(yīng)地進行處理,節(jié)省時間。編程掃描時,設(shè)計程序也不是很長,功能不復(fù)雜,采用編程掃描更方便。通過掃描程序確定具體按鍵的鍵號,再根據(jù)程序判斷鍵號是數(shù)字鍵還是功能鍵,最后執(zhí)行相應(yīng)的鍵處理程序。本次設(shè)計采用掃描程序,部分程序如下。
圖4 基于單片機步進電機調(diào)速系統(tǒng)鍵盤掃描程序流程圖Fig.4 Flowchart of keyboard scanner of stepper motor control system based on microcontroller
為了驗證以上分析,根據(jù)硬件系統(tǒng)和軟件系統(tǒng)設(shè)計,做成實物。實驗結(jié)果如圖5所示。
按鍵設(shè)定旋轉(zhuǎn)圈數(shù)為78轉(zhuǎn)時,數(shù)碼管顯示“78”,按下正轉(zhuǎn)按鈕,電機會順時針旋轉(zhuǎn)78圈,運行狀態(tài)如圖5a所示。當按鍵設(shè)定旋轉(zhuǎn)圈數(shù)為68轉(zhuǎn)時,數(shù)碼管顯示“68”,按下反轉(zhuǎn)按鈕時,電機會逆時針旋轉(zhuǎn)68圈,運行狀態(tài)圖如圖5b所示。如果按下高低速切換按鍵,步進電機就會改變轉(zhuǎn)速。當用遙控器控制時,設(shè)定的步進電機旋轉(zhuǎn)圈數(shù)顯示在數(shù)碼管上,再按遙控器的確認鍵,步進電機旋轉(zhuǎn),同時發(fā)光二極管亮,表明接收到紅外遙控信號。狀態(tài)如圖5c所示。
圖5 基于單片機步進電機調(diào)速系統(tǒng)實物實驗Fig.5 Physical experiments of stepper motor control system based on microcontroller
通過實驗,驗證了本次硬件系統(tǒng)和軟件系統(tǒng)設(shè)計的正確性。
本文是在單片機控制步進電機調(diào)速系統(tǒng)的基礎(chǔ)上,對紅外接收、步進電機調(diào)速以及急停電路進行了硬件系統(tǒng)和軟件系統(tǒng)的分析和設(shè)計。實驗結(jié)果表明:采用軟件調(diào)試和硬件調(diào)試相結(jié)合的辦法,可以使得系統(tǒng)達到所設(shè)計的要求,為分析和設(shè)計基于單片機紅外遙控的步進電機調(diào)速系統(tǒng)提供了新的方法。
[1]陳中,沈翠鳳.基于單片機直流調(diào)速控制系統(tǒng)設(shè)計[J].鹽城工學院學報,2012(3):54-58.
[2]周冠軍,畢祥麗.LMD18200T的直流伺服電動機驅(qū)動器的設(shè)計[J].電子工業(yè)專用設(shè)備,2006(11):71-74.
[3]杭和平,楊芳.單片機原理和應(yīng)用[M].北京:機械工業(yè)出版社,2003.
[4]陳伯時.電力拖動自動控制系統(tǒng)——運動控制系統(tǒng)[M].3版.北京:機械工業(yè)出版社,2003.
[5]李蘭友.單片機開發(fā)應(yīng)用十例[M].北京:電子工業(yè)出版社,1994.
[6]譚運光.單片機開發(fā)手冊[M].北京:華齡出版社,1994.
[7]丁元杰.單片機原理及應(yīng)用[M].北京:機械工業(yè)出版社,2005.