//Logo Image
作者:蔡宗成、陳明周(2001-06-26);推薦:徐業良(2001-07-06)

單晶片實習-步進馬達應用

Abstract

There are many researches about stepper motor with robotics system [Aranda, et al., 1998, Zein El Din, and El-Farmawy, 2000, and Zein El Din, 1996.] The robotics system with stepper motors provides precise and dexterous movements in response to pulses. In this work, stepper motor is controlled by 89C51 microprocessor. The 89C51 microprocessor is employed to generate pulses with a desired frequency to drive stepper motor. Our control architecture consists of master PC and slave 89C51 microprocessor. The slave 89C51 microprocessor will start working automatically when control signals are sent from the master PC via the common serial channel.

本文介紹如何使用VB程式透過RS232傳輸控制指令到89C51單晶片上,輸出脈波訊號至放大電路,控制步進馬達正反轉。放大電路也就是所謂的步進馬達驅動器,市售步進馬達驅動器價格在數百元至數千元,甚至數萬元以上,本文並介紹一種常用的自製步進馬達驅動器電路,零件價格在數百元以內,適合單晶片實習與專題實作。

1. 步進馬達原理簡介

步進馬達的種類依照結構來分可以分成三種:永久磁鐵PM(permanent magnet type)、可變磁阻VR(variable reluctance type)、以及複合式(hybrid type)。步進馬達的結構不論是PM式、VR式或複合式步進馬達,其定子均設計為齒輪狀,這是因為步進馬達是以脈波訊號依照順序使定子激磁,以數位電壓輸入來控制其轉速及轉動方向。

1將步進馬達圓周分布的定子展開為直線以便於理解,若脈波激磁訊號依序傳送至A相、A+相、B相、B+相則轉子向右移動(正轉),相反的若將順序顛倒則轉子向左移動(反轉)。在實際狀況下,定子A相與定子B相是處在相對位置上,若同時激磁則可提昇轉矩,相同的若四個相都同時激磁則轉子完全靜止處於電磁煞車狀態。此外,更可以利用電子分相激磁的原理,以電子技術控制各相的脈波電壓值、導通時間,使步進馬達的步進角更細微,做到更精密的定位控制。2為步進馬達之控制驅動流程圖,步進馬達相關原理請參考“(2000-05-05)步進馬達簡介”。

1. 步進馬達驅動原理

2. 步進馬達控制流程圖

2. 89C51單晶片基本電路

3所示為89C51單晶片基本電路設計,供應單晶片+5V工作電壓,接上12MHz石英震盪器作為時脈電路設計,RESET按鈕提供系統重置電路,PCRS232必須經過MAX232(或其相容單晶片)電位轉換單晶片,才能與89C51之串列埠連接,確保傳輸資料正確。

3. 單晶片基本電路

4所示為常用之步進馬達驅動器電路,使用P1.0~P1.3(pin1~pin4)之接腳作為訊號輸出電路,分別使這四支接腳輸出為0(低電位),電路導通,步進馬達的四個定子順序激磁,便會產生正反轉動作。相關零件數量表如表1所示。

1. 零件規格表

4. 步進馬達驅動器電路圖

4P1.0~P1.3(pin1~pin4)之其中一支腳位輸出為0(低電位),電晶體2222A(圖5(a))電路導通,電流由VCC2222A流過LED150歐姆電阻,而電晶體3055(圖5(b))是作開關動作,當3055電晶體之基極有電流流通時,電晶體導通,步進馬達電源便供應電流流到3055電晶體導通的那組定子,以步進馬達1相激磁原理,就是順序讓每個電晶體導通,使步進馬達依序激磁,便能產生正反轉運動。

5(a). NPN電晶體2222A

5(b). NPN電晶體3055

5(c). 二極體1N4003

3. 89C51組合語言

6所示為步進馬達控制程式,總共分成三個部份,如圖6(a)所示,程式一開始執行,便設定RS232之相關通訊協定,以P0.0LED燈的明、暗表示設定中與設定完畢,接著,開始等待RS232有無傳送資料過來,以P0.1LED燈的明、暗表示接收中與接收完畢。圖6(b)為資料判斷程式,當程式接收傳來的資料時,開始判斷資料形式,逐一比對,接收到正確的指令時,使步進馬達產生所需要的動作。圖6(c)為副程式,分別為設定RS232副程式、步進馬達正、反轉副程式、與時間延遲副程式。

6(a). 步進馬達控制程式主程式

6(b). 步進馬達控制程式資料判斷程式

6(c). 步進馬達控制程式資料副程式

如圖6(b)所示,當89C51單晶片接收到PC經由RS232傳送正轉控制指令2”時,執行步進馬達正轉副程式一次,四個定子依序激磁,步進馬達正轉一個步進角;同樣地,接收到反轉控制指令3”時,步進馬達反轉一個步進角。此為基本的控制步進馬達正、反轉程式,更進一步的應用為多個步進馬達的控制,或是轉速、圈數等控制程式,這時必須對PC經由RS232所傳送過來的控制指令進行處理,以參數化的概念來設計應用程式。如圖6(c)所示,步進馬達正、反轉副程式的設計概念是分別對Port1之四支腳位輸出高、低電位,配合時間延遲副程式,便能依序產生脈波訊號,控制步進馬達正、反轉。

4. VBRS232程式設計

設計RS232應用程式必須引用MsComm通訊控制項,設定好RS232通訊相關協定,例如鮑率參數、傳輸埠等,便可開始設計步進馬達控制程式。如圖7為控制程式之界面,放置正、反轉控制按鈕,當使用者按下按鈕時,將正、反轉指令傳送至89C51單晶片上,圖8為控制程式範例及說明。準備好程式與硬體電路後,便可開始實驗,檢查有無錯誤發生,程式是否如預期運作,本實習完成之電路如圖9所示。

7. 控制程式界面

8. 控制程式範例及說明

9. 步進馬達控制電路

參考資料

Aranda, J., Grau, A., and Climent, J., 1998. “Control Architecture for a Three-wheeled Rollor Robot,” Advanced Motion Control, 1998. AMC '98-Coimbra, 1998 5th International Workshop on, p 518-523.

Zein El Din, A., and El-Farmawy, M., 2000. “Study of Stepper Motor Performance in a Five-Axis Robot,” in Proc IEEE Int. Conf. Power Electronics and Motion Control Conference, The Third International, v 2, p 823–831.

Zein El Din, A.S., 1996. “High performance PLC controlled stepper motor in robot manipulator,” Industrial Electronics, 1996. ISIE '96, Proceedings of the IEEE International Symposium on, v 2, p 974-978.