莊煥偉,戚宇恒
(廣東技術師范學院工業中心,廣州 510665)
步進電機具有控制簡單、無累積誤差等優點,廣泛應用于數控機床、機器人、自動化儀表等領域。對步進電機控制系統的研究開發也取得了大量成果,主要有基于微控制器,如單片機[1]、DSP[2]、ARM[3]、CPLD[4]以及基于PLC[5-7]的兩大類步進電機控制系統。這些控制系統,一個明顯的特點就是對電機轉速或對電機轉動量的單一控制。在實際應用中,往往希望步進電機控制系統,能像伺服驅動器一樣,有多種控制模式,能對步進電機進行不同模式控制。基于簡單、價廉、通用性考慮,設計開發了一種基于AT89C51 單片機的步進電機控制系統,該系統具有速度和位置兩種控制模式,可自由切換,實現一個控制系統,滿足對步進電機轉速或轉動量的控制。
本控制系統以兩相步進電機為控制對象,以單片機為控制核心。系統工作時,AT89C51 單片機實時檢測外圍按鍵狀態,當系統設定為速度控制模式時,可通過按鍵選定不同的段速和方向,按下啟動按鍵,步進電機以選擇的速度和方向運轉直至松開啟動按鍵。當系統設定為位置控制模式時,可通過按鍵指定電機的運轉量和方向,按下啟動按鍵時,步進電機朝指定的方向以特定的轉速運轉,當運轉量到達時,電機停止。為簡化系統,步進電機的驅動脈沖由AT89C51 單片機產生,此外,加入液晶顯示屏,實時顯示當前的控制模式和電機運行狀態,使系統有友好的人機界面。
系統主要由四大模塊組成:控制模塊、按鍵輸入模塊、液晶顯示模塊和電機驅動模塊,其結構原理圖如圖1 所示

圖1 結構原理圖
依該系統的功能要求和下階段仿真需要,使用Proteus 軟件進行系統電路設計,設計的電路原理圖如圖2 所示。因系統按鍵不多,按鍵輸入模塊采用獨立鍵盤形式,液晶顯示模塊選用1602 液晶,電機驅動模塊選用專門的電機驅動芯片L298N。
輸入模塊由五個獨立按鍵組成,命名為UP、DOWN、MODE、DIR 和START,分別代表參數增、參數減、模式選擇、方向選擇和啟動信號。因模式和方向都只有兩種狀態,且考慮到人們的實際操作習慣,采用開關按鍵。
系統采用的電機驅動芯片L298N是高電壓、大電流雙全橋驅動芯片,它主要把從單片機發出的驅動脈沖進行電流放大,然后驅動步進電機。電路連接上,把它的ENA、ENB 引腳連接電源正端,使步進電機的運行方向僅取決于單片機輸出驅動脈沖的順序。

圖2 系統的電路原理圖
系統軟件程序主要完成按鍵檢測、液晶顯示、驅動脈沖輸出。為節省單片機CPU 資源,保證系統的實時性,軟件程序包括主程序和中斷程序。主程序主要完成系統初始化、按鍵檢測、位置模式的驅動脈沖輸出等功能,而中斷程序主要完成液晶顯示及速度模式的驅動脈沖輸出。主程序和中斷程序流程圖如圖3 和圖4 所示。
系統有兩種模式狀態、兩個運動方向,有四種組合情況。在程序設計上,可設定一個參數,不同組合情況,賦予參數不同的數值,下一步的程序處理,依獲得的參數數值決定。模式方向檢測函數具體程序如下:




圖3 主程序流程圖

圖4 定時器中斷程序流程圖
改變步進電機的速度,只需改變控制它的驅動脈沖頻率,而改變頻率,即改變相應驅動數組的調用時間。系統采用單片機定時器中斷來實現不同的調用時間。單片機定時器0 作一個固定時間的定時中斷,每次定時中斷,參數i 加1,當參數值等于電機指定速度對應頻率參數值時,輸出驅動編碼。
如定時器0 中斷時間為0.5ms,步進電機步距角為1.8°,為使電機轉速為120r/min;則由120r/min 得到電機每轉的時間為0.5s,于是電機每步周期為0.5s/(360°/1.8°)=2.5ms,故頻率參數值為2.5ms/0.5ms=5;定時器0 中斷實現電機的不同段速程序如下:


在完成系統的硬件設計和軟件設計的基礎上,利用Proteus 軟件的仿真功能,對系統進行仿真測驗和調試。具體的仿真過程是:在Proteus 中,雙擊單片機AT89C51,打開其屬性編輯框,在“Program File”欄中選擇在Keil 軟件中調試編譯成功所生成的目標代碼hex 文件,并將單片機時鐘頻率改為12MHz,再在Proteus 中點擊開始仿真按鈕,啟動仿真。仿真過程中,用鼠標單擊電路圖中的按鍵,電機依程序運轉起來,液晶屏實時顯示當前電機運行模式及運行情況。系統處于速度模式和位置模式時液晶屏顯示情況分別如圖5 和圖6 所示,速度模式顯示的數值表示當前電機轉速,位置模式顯示的第一個數值表示指定電機的運轉量,第二個數值表示電機已經運轉的圈數,“+”“-”符號表示電機運轉方向正轉或反轉。

圖5 速度模式液晶顯示界面

圖6 位置模式液晶顯示界面
設計開發的步進電機控制系統,可實現對步進電機不同模式的控制。利用Proteus 軟件對系統進行了仿真,并取得仿真實驗成功。該系統結構簡單,操作方便,成本低,且系統的按鍵輸入模塊可用傳感器等檢測輸入模塊代替,可擴展性強,有很大的實際應用價值
[1]高琴,劉淑聰,彭宏偉.步進電機控制系統的設計及應用[J].制造業自動化,2012,34(1):150-152.
[2]孫德,樂貴高,高繼良.基于DSP的步進電機閉環控制系統設計[J].機床與液壓.2012,40(10):118-121.
[3]周峰,李智華,顧全.基于PSoC3的步進電機控制[J].電機與控制應用,2012,39(4):28-31.
[4]董亮輝,劉景林,李昱.步進電機寬調速多細分控制系統研究[J].測控技術,2012,31(1):66-69.
[5]王彥軍,李增生.基于PLC的步進電機控制[J].科學技術與工程,2011,11(5):1076-1079.
[6]王紅梅,方貴盛.基于PLC 與步進電機的氣動搬運機械手控制[J].液壓與氣動,2009,(11):25-27.
[7]沈宏,張偉,安艷濤.基于S7-200PLC的調速器步進電機驅動方法[J].制造業自動化,2010,32(7):169-172.