本設(shè)計(jì)以AT89C單片機(jī)" title="51單片機(jī)" target="_blank">51單片機(jī)為核心,,以4*4矩陣鍵盤做為輸入達(dá)到控制直流電機(jī)的啟停,、速度和方向,完成了基本要求和發(fā)揮部分的要求,。在設(shè)計(jì)中,,采用了PWM技術(shù)對(duì)電機(jī)進(jìn)行控制,通過對(duì)占空比的計(jì)算達(dá)到精確調(diào)速的目的,。
一,、 設(shè)計(jì)方案比較與分析:
1、電機(jī)調(diào)速控制模塊:
方案一:采用電阻網(wǎng)絡(luò)或數(shù)字電位器調(diào)整電動(dòng)機(jī)的分壓,,從而達(dá)到調(diào)速的目的,。但是電阻網(wǎng)絡(luò)只能實(shí)現(xiàn)有級(jí)調(diào)速,而數(shù)字電阻的元器件價(jià)格比較昂貴,。更主要的問題在于一般電動(dòng)機(jī)的電阻很小,,但電流很大;分壓不僅會(huì)降低效率,,而且實(shí)現(xiàn)很困難,。
方案二:采用繼電器對(duì)電動(dòng)機(jī)的開或關(guān)進(jìn)行控制,通過開關(guān)的切換對(duì)小車的速度進(jìn)行調(diào)整,。這個(gè)方案的優(yōu)點(diǎn)是電路較為簡(jiǎn)單,,缺點(diǎn)是繼電器的響應(yīng)時(shí)間慢、機(jī)械結(jié)構(gòu)易損壞,、壽命較短,、可靠性不高。
方案三:采用由達(dá)林頓管組成的H型PWM電路,。用單片機(jī)控制達(dá)林頓管使之工作在占空比可調(diào)的開關(guān)狀態(tài),,精確調(diào)整電動(dòng)機(jī)轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,,效率非常高,;H型電路保證了可以簡(jiǎn)單地實(shí)現(xiàn)轉(zhuǎn)速和方向的控制;電子開關(guān)的速度很快,,穩(wěn)定性也極佳,,是一種廣泛采用的PWM調(diào)速技術(shù)。
兼于方案三調(diào)速特性優(yōu)良,、調(diào)整平滑,、調(diào)速范圍廣,、過載能力大,因此本設(shè)計(jì)采用方案三,。
2,、PWM調(diào)速工作方式:
方案一:雙極性工作制。雙極性工作制是在一個(gè)脈沖周期內(nèi),,單片機(jī)兩控制口各輸出一個(gè)控制信號(hào),,兩信號(hào)高低電平相反,兩信號(hào)的高電平時(shí)差決定電動(dòng)機(jī)的轉(zhuǎn)向和轉(zhuǎn)速,。
方案二:?jiǎn)螛O性工作制,。單極性工作制是單片機(jī)控制口一端置低電平,另一端輸出PWM信號(hào),,兩口的輸出切換和對(duì)PWM的占空比調(diào)節(jié)決定電動(dòng)機(jī)的轉(zhuǎn)向和轉(zhuǎn)速,。
由于單極性工作制電壓波開中的交流成分比雙極性工作制的小,其電流的最大波動(dòng)也比雙極性工作制的小,,所以我們采用了單極性工作制。
3,、PWM調(diào)脈寬方式:
調(diào)脈寬的方式有三種:定頻調(diào)寬,、定寬調(diào)頻和調(diào)寬調(diào)頻。我們采用了定頻調(diào)寬方式,,因?yàn)椴捎眠@種方式,,電動(dòng)機(jī)在運(yùn)轉(zhuǎn)時(shí)比較穩(wěn)定;并且在采用單片機(jī)產(chǎn)生PWM脈沖的軟件實(shí)現(xiàn)上比較方便,。
4,、PWM軟件實(shí)現(xiàn)方式:
方案一:采用定時(shí)器做為脈寬控制的定時(shí)方式,這一方式產(chǎn)生的脈沖寬度極其精確,,誤差只在幾個(gè)us,。
方案二:采用軟件延時(shí)方式,這一方式在精度上不及方案一,,特別是在引入中斷后,,將有一定的誤差。但是基于不占用定時(shí)器資源,,且對(duì)于直流電機(jī),,采用軟件延時(shí)所產(chǎn)生的定時(shí)誤差在允許范圍,故采用方案二,。
二,、 系統(tǒng)分析與設(shè)計(jì):
總體設(shè)計(jì)方案的硬件部分詳細(xì)框圖如圖一所示。
鍵盤向單片機(jī)輸入相應(yīng)控制指令,,由單片機(jī)通過P2.0與P2.1其中一口輸出與轉(zhuǎn)速相應(yīng)的PWM脈沖,,另一口輸出低電平,,經(jīng)過信號(hào)放大、光耦傳遞,,驅(qū)動(dòng)H型橋式電動(dòng)機(jī)控制電路,,實(shí)現(xiàn)電動(dòng)機(jī)轉(zhuǎn)向與轉(zhuǎn)速的控制。電動(dòng)機(jī)的運(yùn)轉(zhuǎn)狀態(tài)通過LED顯示出來,。電動(dòng)機(jī)所處速度級(jí)以速度檔級(jí)數(shù)顯示,。正轉(zhuǎn)時(shí)數(shù)字向右移動(dòng),反轉(zhuǎn)時(shí)數(shù)字向左移動(dòng),。移動(dòng)速度分7檔,,快慢與電動(dòng)機(jī)所處速度級(jí)快慢一一對(duì)應(yīng)。每次電動(dòng)機(jī)啟動(dòng)后開始計(jì)時(shí),,停止時(shí)LED顯示出本次運(yùn)轉(zhuǎn)所用時(shí)間,,時(shí)間精確到0.1s。
1,、系統(tǒng)的硬件電路設(shè)計(jì)與分析
電動(dòng)機(jī)PWM驅(qū)動(dòng)模塊的電路設(shè)計(jì)與實(shí)現(xiàn)具體電路見下圖二,。本電路采用的是基于PWM原理的H型橋式驅(qū)動(dòng)電路。
PWM電路由四個(gè)大功率晶體管組成H型橋式電路構(gòu)成,四部分晶體管以對(duì)角組合分為兩組:根據(jù)兩個(gè)輸入端的高低電平?jīng)Q定晶體管的導(dǎo)通和截止。4個(gè)二極管在電路中起防止晶體管產(chǎn)生反向電壓的保護(hù)作用,。4個(gè)電感在電路中是起防止電動(dòng)機(jī)兩端的電流和晶體管上的電流過大的保護(hù)作用,。
在實(shí)驗(yàn)中的控制系統(tǒng)電壓統(tǒng)一為5v電源,因此若達(dá)林頓管基極由控制系統(tǒng)直接控制,則控制電壓最高為5V,再加上三極管本身壓降,加到電動(dòng)機(jī)兩端的電壓就只有4V左右,,嚴(yán)重減弱了電動(dòng)機(jī)的驅(qū)動(dòng)力?;谏鲜隹紤],,我們運(yùn)用了4N25光耦集成塊,將控制部分與電動(dòng)機(jī)的驅(qū)動(dòng)部分隔離開來,。輸入端各通過一個(gè)三極管增大光耦的驅(qū)動(dòng)電流,;電動(dòng)機(jī)驅(qū)動(dòng)部分通過外接12V電源驅(qū)動(dòng)。這樣不僅增加了各系統(tǒng)模塊之間的隔離度,,也使驅(qū)動(dòng)電流得到了大大的增強(qiáng),。
在電動(dòng)機(jī)驅(qū)動(dòng)信號(hào)方面,我們采用了占空比可調(diào)的周期矩形信號(hào)控制,。脈沖頻率對(duì)電動(dòng)機(jī)轉(zhuǎn)速有影響,,脈沖頻率高連續(xù)性好,但帶帶負(fù)載能力差脈沖頻率低則反之。經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),,脈沖頻率在40Hz以上,,電動(dòng)機(jī)轉(zhuǎn)動(dòng)平穩(wěn),但加負(fù)載后,,速度下降明顯,,低速時(shí)甚至?xí)^D(zhuǎn);脈沖頻率在10Hz以下,,電動(dòng)機(jī)轉(zhuǎn)動(dòng)有明顯跳動(dòng)現(xiàn)象,。實(shí)驗(yàn)證明,脈沖頻率在15Hz-30Hz時(shí)效果最佳,。而具體采用的頻率可根據(jù)個(gè)別電動(dòng)機(jī)性能在此范圍內(nèi)調(diào)節(jié),。通過N1輸入信號(hào),N2輸入低電平與N1輸入低電平,,N2輸入信號(hào)分別實(shí)現(xiàn)電動(dòng)機(jī)的正轉(zhuǎn)與反轉(zhuǎn)功能,。通過對(duì)信號(hào)占空比的調(diào)整來對(duì)車速進(jìn)行調(diào)節(jié)。速度分7檔控制,,從高電平(第6檔)到低電平(第0檔)中間占空比以20%逐極遞減,。速度微調(diào)方面,可以通過對(duì)占空比以1%的跨度逐增或逐減分別實(shí)現(xiàn)對(duì)速度的逐加或逐減,。
2,、系統(tǒng)的軟件設(shè)計(jì)
本系統(tǒng)編程部分工作采用KELI-C51語言完成,采用模塊化的設(shè)計(jì)方法,,與各子程序做為實(shí)現(xiàn)各部分功能和過程的入口,完成鍵盤輸入,、按鍵識(shí)別和功能,、PWM脈寬控制和LED顯示等部分的設(shè)計(jì)。
單片機(jī)資源分配如下表:
P0
|
顯示模塊接口
|
外部中斷0
(P3.2)
|
鍵盤中斷
|
P1
|
鍵盤模塊接口
|
||
P2.0/P2.1
|
PWM電機(jī)驅(qū)動(dòng)接口
|
內(nèi)部定時(shí)器0
|
系統(tǒng)時(shí)鐘
|
系統(tǒng)主函數(shù)流程如圖三:
①PWM脈寬控制:本設(shè)計(jì)中采用軟件延時(shí)方式對(duì)脈沖寬度進(jìn)行控制,,延時(shí)程序函數(shù)如下:
void delay(unsigned char dlylevel){
int i=50*dlylevel;
while(--i);}
此函數(shù)為帶參數(shù)DLYLEVEL,,約產(chǎn)生DLYLEVEL*400us的延時(shí),因此一個(gè)脈沖周期可以由高電平持續(xù)時(shí)間系數(shù)hlt和低電平持續(xù)時(shí)間系數(shù)llt組成,,本設(shè)計(jì)中采用的脈沖頻率為25Hz,,可得hlt+llt=100,占空比為hlt/(hlt+llt),,因此要實(shí)現(xiàn)定頻調(diào)寬的調(diào)速方式,,只需通過程序改變?nèi)肿兞縣lt,llt的值,,該子程序流程圖如圖四,。
②鍵盤中斷處理子程序:采用中斷方式,按下鍵,單片機(jī)P3.2腳產(chǎn)生一負(fù)跳沿,,響應(yīng)該中斷處理程序,,完成延時(shí)去抖動(dòng)、鍵碼識(shí)別,、按鍵功能執(zhí)行,。
調(diào)速檔、持續(xù)加/減速:調(diào)速檔通過(0-6)共七檔固定占空比,,即相應(yīng)檔位相應(yīng)改變hlt,,llt的值,以實(shí)現(xiàn)調(diào)速檔位的實(shí)現(xiàn),。而要實(shí)現(xiàn)按住加/減速鍵不放時(shí)恒加或恒減速直到放開停止,,就需在判斷是否松開該按鍵時(shí),每進(jìn)行一次增加/減少1%占空比(即hlt++/--;llt--/++),其程序流程圖如圖五,。
③顯示子程序:利用數(shù)組方式定義顯示緩存區(qū),,緩存區(qū)有8位,分別存放各個(gè)LED管要顯示的值,。顯示子程序?yàn)橐粠⒆映绦?,參?shù)為顯示緩存的數(shù)組名,通過for(i=0;i<8;i++)方式對(duì)每位加上位選碼,,送到P0口并進(jìn)行一兩毫秒延時(shí),。
該顯示子程序只對(duì)各個(gè)LED管分別點(diǎn)亮一次,因此在運(yùn)行過程中,,每秒執(zhí)行的次數(shù)不應(yīng)低于每秒24次,。
④定時(shí)中斷處理程序:采用定時(shí)方式1,因?yàn)閱纹瑱C(jī)使用12M晶振,,可產(chǎn)生最高約為65.5ms的延時(shí),。對(duì)定時(shí)器置初值3CB0H可定時(shí)50ms,即系統(tǒng)時(shí)鐘精度可達(dá)0.05s,。當(dāng)50ms定時(shí)時(shí)間到,,定時(shí)器溢出則響應(yīng)該定時(shí)中斷處理程序,完成對(duì)定時(shí)器的再次賦值,,并對(duì)全局變量time加1,,這樣,通過變量time可計(jì)算出系統(tǒng)的運(yùn)行時(shí)間,。
對(duì)于一個(gè)數(shù)的顯示,,先應(yīng)轉(zhuǎn)成BCD碼,即取出每一個(gè)位,,分別送入顯示緩存區(qū),,對(duì)于轉(zhuǎn)BCD的算法,應(yīng)對(duì)一個(gè)數(shù)循環(huán)除10取模,直至為0,,程序如下:
do{dispbuff[bcd_p]=bechange%10; //dispbuff為顯示緩沖區(qū)數(shù)組
bcd_p++;}while(bechange/=10) //disp_p為數(shù)組指針
軟件設(shè)計(jì)中的特點(diǎn):
1,、 對(duì)于電機(jī)的啟停,在PWM控制上使用漸變的脈寬調(diào)整,,即開啟后由停止勻加速到默認(rèn)速度,,停止則由于當(dāng)前速度逐漸降至零。這樣有利于保護(hù)電機(jī),,如電機(jī)運(yùn)用于小車上,,在啟動(dòng)上采用此方式也可加大啟動(dòng)速度,防止打滑,。
2,、 對(duì)于運(yùn)行時(shí)間的計(jì)算、顯示,。配合傳感器技術(shù)可用于計(jì)算距離,,速度等重要的運(yùn)行數(shù)據(jù)。
3,、 鍵盤處理上采用中斷方式,,不必使程序?qū)︽I盤反復(fù)掃描,提高了程序的效率,。
三,、 測(cè)試結(jié)果與分析:
結(jié)束語
本設(shè)計(jì)在硬件上采用了基于PWM技術(shù)的H型橋式驅(qū)動(dòng)電路,解決了電機(jī)馬驅(qū)動(dòng)的效率問題,,在軟件上也采用較為合理的系統(tǒng)結(jié)構(gòu)及算法,,提高了單片機(jī)的使用效率,且具有一定的防飛能力,。但該設(shè)計(jì)也有不足之處,,主要是在關(guān)于速度的反饋上,無法提供較為直觀的速度表示方式,,因此,有必要引入傳感器技術(shù)對(duì)速度進(jìn)行反饋,,以rpm或rps表達(dá)當(dāng)前的轉(zhuǎn)速進(jìn)行顯示,。