唐玲
摘 要:系統(tǒng)由單片機產(chǎn)生數(shù)字脈沖信號,通過ULN2003驅(qū)動芯片控制電機的運行。由于脈沖信號的頻率決定電機的轉(zhuǎn)動速度,所以要改變轉(zhuǎn)速就需要改變脈沖頻率。系統(tǒng)采用定時中斷的方法改變脈沖頻率,而按鍵次數(shù)主要控制外部中斷用以改變存儲區(qū)中的速度值,步進(jìn)電機的輸出脈沖頻率就發(fā)生相應(yīng)的改變,最終達(dá)到改變轉(zhuǎn)速的效果。
關(guān)鍵詞:脈沖頻率;轉(zhuǎn)速;定時中斷;外部中斷
中圖分類號:TP391.8 文獻(xiàn)標(biāo)識號:A 文章編號:2095-2163(2015)02-
Design of Control System for Stepping Motor
TANG Ling
(Collge of physics and electronic information, China West Normal University, Nanchong Sichuan 637009,China)
Abstract: The system produces a digital pluse signal by SCM, and uses the ULN2003 to drive chip control the operation of motor. Because the rotational speed of motor is detemined by the frequency of the pulse signal, so to change the system speed need change the pulse frequency. The system adopts the method of timing interrupt which is the way of changing the pulse frequency. In the meanwhile, the number of buttons could control the external interrupt that is used to change the speed value in the storage area. The output pulse frequency of stepping motor will change accordingly. Finally the speed has to change.
Keywords: Pluse Frequency; Rotation Rate; Timing Interruput; External Interrupt
0 引 言
隨著自動化控制的不斷發(fā)展,運動控制技術(shù)已經(jīng)成為推動新工業(yè)的重要技術(shù),而運動控制系統(tǒng)中的核心單元就是步進(jìn)電機控制模塊。步進(jìn)電機是一種完成數(shù)字/角度轉(zhuǎn)換的電磁機械裝置,可以利用電脈沖信號驅(qū)動步進(jìn)電機按預(yù)設(shè)的方向轉(zhuǎn)動并控制其轉(zhuǎn)動到一個固定角度。綜上分析可知,步進(jìn)電機的轉(zhuǎn)動應(yīng)該有一定的角度定位,為了準(zhǔn)確地定位,就需要控制其角位移量,而這一參數(shù)的控制通過改變脈沖個數(shù)來實現(xiàn);同時電機的轉(zhuǎn)速大小也是可以改變的,主要是通過改變脈沖的頻率來實現(xiàn)[1]。
1 系統(tǒng)總體設(shè)計
1.1 系統(tǒng)的組成
本系統(tǒng)主要用AT89S52單片機來實現(xiàn),再配上四相八拍的步進(jìn)電機。由單片機產(chǎn)生的數(shù)字脈沖信號通過驅(qū)動芯片ULN2003來控制電機,同時電機還可以實現(xiàn)以下功能:加減速、正反轉(zhuǎn)和液晶顯示。其中,顯示主要是實時標(biāo)明電機的轉(zhuǎn)速,加減速和正反轉(zhuǎn)則通過按鍵來控制,因此系統(tǒng)的主要組成部分是:ULN2003驅(qū)動電路、顯示電路、按鍵電路、單片機最小系統(tǒng)、電源電路[2,4]。系統(tǒng)總體設(shè)計如圖1所示。
圖1 系統(tǒng)總體設(shè)計
Fig.1 Overall designer of the system
1.2 按鍵電路
電路中設(shè)置四個按鍵,主要用于輸入控制完成順時針旋轉(zhuǎn)、逆時針旋轉(zhuǎn)、加速、減速,分別是由K1、K2、K3、K4這四個按鍵確定。電機的正反轉(zhuǎn)由K1和K2的斷開和閉合來實現(xiàn),而K1和K2分別與單片機的P1.0和P1.1相連,K1和K2按鍵的狀態(tài)由P1.0和P1.1接口送入單片機,單片機芯片再調(diào)用相應(yīng)的方向轉(zhuǎn)換程序。而步進(jìn)電機的轉(zhuǎn)速變化主要通過改變脈沖頻率來實現(xiàn)。改變脈沖頻率的方法有兩種,分別是軟件延時和定時中斷。本系統(tǒng)采用的是定時器中斷,通過K3、K4的斷開和閉合控制電機加減速,再通過外部中斷控制改變存儲區(qū)中的速度值,步進(jìn)電機的輸出脈沖頻率就隨存儲區(qū)中的數(shù)值做出相應(yīng)的改變,最終達(dá)到改變轉(zhuǎn)速的效果。按鍵電路圖如圖2所示。
圖2 按鍵電路
Fig.2 Key circuit
1.3 驅(qū)動電路
驅(qū)動電路主要是驅(qū)動芯片ULN2003,該芯片由達(dá)林頓管組成。ULN2003的1B~4B口接收單片機P0.0~P0.3的輸出脈沖,而后從1C~4C口將放大后的信號輸出到步進(jìn)電機的A、B、C、D相。驅(qū)動電路如圖3所示。
圖3 驅(qū)動電路
Fig.3 Driver circuit
1.4 顯示電路
由于電機具有換向和加減速的功能,而電機轉(zhuǎn)速又分為不同的等級,因此為了實時觀察電機的運行方向和運行速度,系統(tǒng)設(shè)計了工作狀態(tài)和電機轉(zhuǎn)速的顯示電路。顯示電路采用LCD1602模塊開發(fā)得到電機轉(zhuǎn)速的實時顯示。LCD1602的RS、R/W、E端口分別迪對接單片機的P0.5、P0.6、P0.7口 ,而D0~D7端口則分別連接了單片機的P2.0~P2.7。顯示電路如圖4所示。
圖4 顯示電路
Fig.4 Indicating circuit
2 軟件設(shè)計
由于系統(tǒng)主要是實現(xiàn)步進(jìn)電機的轉(zhuǎn)動和換向,所以設(shè)計過程十分清晰。軟件包含主程序部分、定時中斷部分、外部中斷部分和顯示部分。其中主程序需要完成系統(tǒng)的初始化、系統(tǒng)狀態(tài)的顯示、開關(guān)按鍵的掃描并根據(jù)檢測結(jié)果實施相應(yīng)的處理[3]。特別地,系統(tǒng)的初始化可分解為如下步驟:一是初始化定時器,二是初始化外部中斷。三是給單片機P1口送初始值以決定脈沖分配方式,速度值存儲區(qū)送初始值確定電機的啟動速度,給旋轉(zhuǎn)方向值送初始值用以確定電機的初始旋轉(zhuǎn)方向,液晶顯示初始化。
在此,給出主程序的具體工作流程如下:首先是對液晶顯示進(jìn)行初始化,然后進(jìn)行按鍵狀態(tài)的檢測,檢測到有狀態(tài)變化,再調(diào)用步進(jìn)電機的相關(guān)數(shù)據(jù)顯示子函數(shù)。按鍵檢測時先檢測正反轉(zhuǎn)按鍵,再檢測加減速按鍵。當(dāng)K1按鍵按下時, P1.0口讀回值為低,電機開始以初始值(若初始值設(shè)為5檔)順時針旋轉(zhuǎn),顯示器上顯示“CW5”,再檢測按鍵狀態(tài),若K3按鍵按一次,則電機轉(zhuǎn)速加一檔,顯示器上顯示“CW6”,若K3按鍵再按一次,則電機轉(zhuǎn)速再加一檔,顯示器上顯示“CW7”,依次類推。若K4按鍵按一次,則電機轉(zhuǎn)速減一檔,顯示器上顯示“CW4”,若K4按鍵再按一次,則電機轉(zhuǎn)速再減一檔,顯示器上顯示“CW3”,依次類推。同理,當(dāng)K2按鍵按下時, P1.1口讀回值為低,電機開始以初始值(若初始值設(shè)為5檔)逆時針旋轉(zhuǎn),顯示器上顯示“CCW5”,再檢測K3、K4按鍵的狀態(tài)并選做相應(yīng)的處理。為了讓電機正常運行,程序中設(shè)置了電機轉(zhuǎn)速的范圍,若電機轉(zhuǎn)速在加減過程中使得轉(zhuǎn)速超過預(yù)定范圍,則電機將停止轉(zhuǎn)動。主程序流程圖如圖5所示。
圖5 主流程圖
Fig.5 Main flow chart
定時中斷部分主要設(shè)置脈沖頻率從而決定電機的轉(zhuǎn)速。電機定子上有繞組,當(dāng)繞組上通入電流,而且電流是按一定的時間間隔接通,電機就會轉(zhuǎn)動起來。其中,電流接通的時間間隔將直接影響電機轉(zhuǎn)動的快慢,電流接入時間越長,轉(zhuǎn)動速度越慢。定時中斷程序主要是通過對電機的運行方向進(jìn)行判斷、發(fā)速度脈沖和保存當(dāng)前的狀態(tài)。
外部中斷主要是用于改變轉(zhuǎn)動速度,而電機的轉(zhuǎn)動速度又由電機的輸出脈沖頻率決定。具體實現(xiàn)是在硬件電路中設(shè)置按鍵,K3和K4按鍵每動作一次,程序就調(diào)用一次中斷,存儲區(qū)中的速度值就發(fā)生一次與其對應(yīng)的變化,這樣電機的轉(zhuǎn)動速度也就發(fā)生一定的相應(yīng)變化。
顯示部分采用1602液晶顯示步進(jìn)電機的實時運行狀態(tài),不僅可以顯示數(shù)據(jù),還可以顯示相關(guān)的狀態(tài)。
3 結(jié)束語
文中的系統(tǒng)是以單片機為硬件中心,驅(qū)動芯片ULN2003操控電機完成相應(yīng)的一系列工作,并通過按鍵控制電機的運動狀態(tài)和轉(zhuǎn)動速度。該系統(tǒng)具有實時控制的特點,尤其是功能還可以豐富擴展,由此將進(jìn)一步拓寬其使用范圍,因而系統(tǒng)研究具有重要的現(xiàn)實意義和實用價值。
參考文獻(xiàn):
[1]孟武勝,李亮.基于AT89C52單片機的步進(jìn)電機控制系統(tǒng)設(shè)計[J].微電機,2007,40(3):64-66.
[2]徐益民.步進(jìn)電機的單片機控制系統(tǒng)的設(shè)計[D].哈爾濱:黑龍江科技學(xué)院,2005.
[3]何立民.MCS-51系列單片機應(yīng)用系統(tǒng)設(shè)計[M].北京:人民郵電出版社,1993.
[4]王小明.電動機的單片機控制[M].北京:北京航空航天大學(xué)出版社,2002.
1 作者簡介:唐 玲(1985-),女,四川綿陽人,碩士,助教,主要研究方向:圖像處理、電子技術(shù)實驗設(shè)計與仿真。