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