蘇州永節電子科技有限公司
設為首頁 | 收藏本站
新聞詳情

單片機控制電機

瀏覽數:1
文章附圖

用單片機控制直流電機

   本設計以AT89C51單片機為核心,以4*4矩陣鍵盤做為輸入達到控制直流電機的啟停、速度和方向,完成了基本要求和發揮部分的要求。在設計中,采用了PWM技術對電機進行控制,通過對占空比的計算達到精確調速的目的。

一、 設計方案比較與分析:

1、電機調速控制模塊:

方案一:采用電阻網絡或數字電位器調整電動機的分壓,從而達到調速的目的。但是電阻網絡只能實現有級調速,而數字電阻的元器件價格比較昂貴。更主要的問題在于一般電動機的電阻很小,但電流很大;分壓不僅會降低效率,而且實現很困難。

方案二:采用繼電器對電動機的開或關進行控制,通過開關的切換對小車的速度進行調整。這個方案的優點是電路較為簡單,缺點是繼電器的響應時間慢、機械結構易損壞、壽命較短、可靠性不高。

方案三:采用由達林頓管組成的HPWM電路。用單片機控制達林頓管使之工作在占空比可調的開關狀態,精確調整電動機轉速。這種電路由于工作在管子的飽和截止模式下,效率非常高;H型電路保證了可以簡單地實現轉速和方向的控制;電子開關的速度很快,穩定性也極佳,是一種廣泛采用的PWM調速技術。

兼于方案三調速特性優良、調整平滑、調速范圍廣、過載能力大因此本設計采用方案三。

2、PWM調速工作方式:

方案一:雙極性工作制。雙極性工作制是在一個脈沖周期內,單片機兩控制口各輸出一個控制信號,兩信號高低電平相反,兩信號的高電平時差決定電動機的轉向和轉速。

方案二:單極性工作制。單極性工作制是單片機控制口一端置低電平,另一端輸出PWM信號,兩口的輸出切換和對PWM的占空比調節決定電動機的轉向和轉速。

由于單極性工作制電壓波開中的交流成分比雙極性工作制的小,其電流的最大波動也比雙極性工作制的小,所以我們采用了單極性工作制。

3、PWM調脈寬方式:

調脈寬的方式有三種:定頻調寬、定寬調頻和調寬調頻。我們采用了定頻調寬方式,因為采用這種方式,電動機在運轉時比較穩定;并且在采用單片機產生PWM脈沖的軟件實現上比較方便。

4、PWM軟件實現方式:

方案一:采用定時器做為脈寬控制的定時方式,這一方式產生的脈沖寬度極其精確,誤差只在幾個us。

方案二:采用軟件延時方式,這一方式在精度上不及方案一,特別是在引入中斷后,將有一定的誤差。但是基于不占用定時器資源,且對于直流電機,采用軟件延時所產生的定時誤差在允許范圍,故采用方案二。

二、 系統分析與設計:

 總體設計方案的硬件部分詳細框圖如圖一所示。

    鍵盤向單片機輸入相應控制指令,由單片機通過P2.0與P2.1其中一口輸出與轉速相應的PWM脈沖,另一口輸出低電平,經過信號放大、光耦傳遞,驅動H型橋式電動機控制電路,實現電動機轉向與轉速的控制。電動機的運轉狀態通過LED顯示出來。電動機所處速度級以速度檔級數顯示。正轉時數字向右移動,反轉時數字向左移動。移動速度分7檔,快慢與電動機所處速度級快慢一一對應。每次電動機啟動后開始計時,停止時LED顯示出本次運轉所用時間,時間精確到0.1s。

1、系統的硬件電路設計與分析

電動機PWM驅動模塊的電路設計與實現具體電路見下圖二。本電路采用的是基于PWM原理的H型橋式驅動電路。






圖二

PWM電路由四個大功率晶體管組成H型橋式電路構成,四部分晶體管以對角組合分為兩組:根據兩個輸入端的高低電平決定晶體管的導通和截止。4個二極管在電路中起防止晶體管產生反向電壓的保護作用。4個電感在電路中是起防止電動機兩端的電流和晶體管上的電流過大的保護作用。

   

    在實驗中的控制系統電壓統一為5v電源,因此若達林頓管基極由控制系統直接控制,則控制電壓最高為5V,再加上三極管本身壓降,加到電動機兩端的電壓就只有4V左右,嚴重減弱了電動機的驅動力。基于上述考慮,我們運用了4N25光耦集成塊,將控制部分與電動機的驅動部分隔離開來。輸入端各通過一個三極管增大光耦的驅動電流;電動機驅動部分通過外接12V電源驅動。這樣不僅增加了各系統模塊之間的隔離度,也使驅動電流得到了大大的增強。

    在電動機驅動信號方面,我們采用了占空比可調的周期矩形信號控制。脈沖頻率對電動機轉速有影響,脈沖頻率高連續性好,但帶帶負載能力差脈沖頻率低則反之。經實驗發現,脈沖頻率在40Hz以上,電動機轉動平穩,但加負載后,速度下降明顯,低速時甚至會停轉;脈沖頻率在10Hz以下,電動機轉動有明顯跳動現象。實驗證明,脈沖頻率在15Hz-30Hz時效果最佳。而具體采用的頻率可根據個別電動機性能在此范圍內調節。通過N1輸入信號,N2輸入低電平與N1輸入低電平,N2輸入信號分別實現電動機的正轉與反轉功能。通過對信號占空比的調整來對車速進行調節。速度分7檔控制,從高電平(第6檔)到低電平(第0檔)中間占空比以20%逐極遞減。速度微調方面,可以通過對占空比以1%的跨度逐增或逐減分別實現對速度的逐加或逐減。

2、系統的軟件設計

本系統編程部分工作采用KELI-C51語言完成,采用模塊化的設計方法,與各子程序做為實現各部分功能和過程的入口,完成鍵盤輸入、按鍵識別和功能、PWM脈寬控制和LED顯示等部分的設計。

單片機資源分配如下表:

P0

顯示模塊接口

外部中斷0

(P3.2)

鍵盤中斷

P1

鍵盤模塊接口

P2.0/P2.1

PWM電機驅動接口

內部定時器0

系統時鐘









系統主函數流程如圖三


①PWM脈寬控制:本設計中采用軟件延時方式對脈沖寬度進行控制,延時程序函數如下:

void delay(unsigned char dlylevel){

      int i=50*dlylevel;

      while(--i);}

此函數為帶參數DLYLEVEL,約產生DLYLEVEL*400us的延時,因此一個脈沖周期可以由高電平持續時間系數hlt和低電平持續時間系數llt組成,本設計中采用的脈沖頻率為25Hz,可得hlt+llt=100,占空比為hlt/(hlt+llt),因此要實現定頻調寬的調速方式,只需通過程序改變全局變量hlt,llt的值,該子程序流程圖如圖四。

 ②鍵盤中斷處理子程序:采用中斷方式,按下鍵,單片機P3.2腳產生一負跳沿,響應該中斷處理程序,完成延時去抖動、鍵碼識別、按鍵功能執行。

調速檔、持續加/減速:調速檔通過(0-6)共七檔固定占空比,即相應檔位相應改變hlt,llt的值,以實現調速檔位的實現。而要實現按住加/減速鍵不放時恒加或恒減速直到放開停止,就需在判斷是否松開該按鍵時,每進行一次增加/減少1%占空比(即hlt++/--;llt--/++),其程序流程圖如圖五。

③顯示子程序:利用數組方式定義顯示緩存區,緩存區有8位,分別存放各個LED管要顯示的值。顯示子程序為一帶參子程序,參數為顯示緩存的數組名,通過for(i=0;i<8;i++)方式對每位加上位選碼,送到P0口并進行一兩毫秒延時。

該顯示子程序只對各個LED管分別點亮一次,因此在運行過程中,每秒執行的次數不應低于每秒24次。

④定時中斷處理程序:采用定時方式1,因為單片機使用12M晶振,可產生最高約為65.5ms的延時。對定時器置初值3CB0H可定時50ms,即系統時鐘精度可達0.05s。當50ms定時時間到,定時器溢出則響應該定時中斷處理程序,完成對定時器的再次賦值,并對全局變量time加1,這樣,通過變量time可計算出系統的運行時間。

對于一個數的顯示,先應轉成BCD碼,即取出每一個位,分別送入顯示緩存區,對于轉BCD的算法,應對一個數循環除10取模,直至為0,程序如下:

do{dispbuff[bcd_p]=bechange%10;//dispbuff為顯示緩沖區數組

      bcd_p++;}while(bechange/=10)    //disp_p為數組指針

軟件設計中的特點:

1、 對于電機的啟停,在PWM控制上使用漸變的脈寬調整,即開啟后由停止勻加速到默認速度,停止則由于當前速度逐漸降至零。這樣有利于保護電機,如電機運用于小車上,在啟動上采用此方式也可加大啟動速度,防止打滑。

2、 對于運行時間的計算、顯示。配合傳感器技術可用于計算距離,速度等重要的運行數據。

3、 鍵盤處理上采用中斷方式,不必使程序對鍵盤反復掃描,提高了程序的效率。

三、 測試結果與分析:

結束語

      本設計在硬件上采用了基于PWM技術的H型橋式驅動電路,解決了電機馬驅動的效率問題,在軟件上也采用較為合理的系統結構及算法,提高了單片機的使用效率,且具有一定的防飛能力。但該設計也有不足之處,主要是在關于速度的反饋上,無法提供較為直觀的速度表示方式,因此,有必要引入傳感器技術對速度進行反饋,以rpm或rps表達當前的轉速進行顯示。

      蘇州永節電子 專業定制各種工業控制器,單片機開發。