機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
單片機(jī)直流電機(jī)控制器(附電路圖和部分程序)
單片機(jī)直流電機(jī)控制器(附電路圖和部分程序)
 更新時間:2008-7-27 13:59:05  點擊數(shù):3
【字體: 字體顏色

       89C52單片機(jī)控制PWM調(diào)速電路實現(xiàn)小功率直流電機(jī)的轉(zhuǎn)速調(diào)節(jié),并要將其實時轉(zhuǎn)速用LED管顯示出來。而本系統(tǒng)必須符合以下幾點要求:

(1) (1000—5500)轉(zhuǎn)/分 內(nèi)對直流電機(jī)進(jìn)行任意調(diào)速,最小調(diào)速級差為1轉(zhuǎn)/分。

(2)  電機(jī)能在所設(shè)速度下穩(wěn)定運轉(zhuǎn),運轉(zhuǎn)速度與設(shè)定速度之差小于±20轉(zhuǎn)/分。

(3)  電機(jī)啟動和加減80%額定負(fù)載時,其轉(zhuǎn)速能迅速回到設(shè)定值,轉(zhuǎn)速超調(diào)±5%內(nèi)。

(4)  利用按鍵和LED數(shù)碼管設(shè)置速度,設(shè)置方便,快捷。

(5)  利用LED數(shù)碼管實時顯示電機(jī)速度。

(6)  電機(jī)能進(jìn)行正反轉(zhuǎn)控制。

          控制方面,本設(shè)計是采用定時器控制I/O口輸出PWM信號驅(qū)動斬波電路控制電機(jī)運轉(zhuǎn)和調(diào)速;利用單片機(jī)外部中斷引腳的捕獲功能、電機(jī)同軸帶缺口的圓盤、光電耦合器來測量轉(zhuǎn)速;并將測得轉(zhuǎn)速和設(shè)定轉(zhuǎn)速進(jìn)行PI運算后輸出,實現(xiàn)閉環(huán)控制;轉(zhuǎn)向調(diào)節(jié)則是用的橋式電路。顯示是利用8位LED數(shù)碼管,用按鍵進(jìn)行設(shè)定。

下面簡單介紹下硬件組成和一些軟件原理:

一、硬件電路。

          1、單片機(jī)選用的是STC的89C52,20MHz晶振。

          2、顯示部分比較簡單,用的8位7段數(shù)碼管同時顯示設(shè)定速度和實時速度。采用74LS164串行移位輸出,只占用單片機(jī)3個I/O口,刷新頻率100Hz。

          3、PWM驅(qū)動電路。使用了9012和8050兩個三極管來驅(qū)動,相信網(wǎng)上很多的,也不用我多說,只是別忘了加上續(xù)流二極管和兩個三極管之間的限流電阻就是。

                                        

          4、測速電路。測速電路用的是光耦測量轉(zhuǎn)動圓盤引起的脈沖寬度,從而可得單片機(jī)的實時速度,精度很高,可達(dá)千分之一。用的是外部中斷的。。。好像是捕獲模式,忘記了~呵呵!

          5、轉(zhuǎn)向調(diào)節(jié)電路。轉(zhuǎn)向調(diào)節(jié),由于是后來加上去的,所以就沒有使用單片機(jī)控制,直接用硬件實現(xiàn),但其實原理是一樣的。原理是利用開關(guān)控制繼電器,然后控制橋路對電機(jī)實施轉(zhuǎn)向控制。另外用一個同軸電機(jī)按正反方向接2個LED用來指示方向。PS:因為這是小功率電機(jī),所以就算沒有制動電路,強(qiáng)制轉(zhuǎn)向,也不會對電機(jī)造成損壞。

二、軟件方面
       中斷方面,本程序一共用了3個中斷源:定時器0,定時器2以及外部中斷1,它們的優(yōu)先級分別為:定時器0、外部中斷1為高優(yōu)先級,定時器2為低優(yōu)先級。另外還用了計數(shù)器1,用做計算脈沖寬度,與外部中斷1一起構(gòu)成測速系統(tǒng)。
       顯示部分程序不多說,按鍵消抖動什么的也是街知巷聞的了。本設(shè)計中,重點是3個,PWM調(diào)速和測速,還有PI運算。
       1、PWM的調(diào)速原理是通過調(diào)節(jié)一個斬波周期中的脈沖占空比來調(diào)節(jié)電機(jī)功率而達(dá)到調(diào)速目的。本設(shè)計中,PWM的斬波周期為1ms,那也就是說斬波頻率為1KHz,在理論上能達(dá)到1‰線性可調(diào),也就是能以0.1%的調(diào)節(jié)精度來調(diào)節(jié)PWM占空比。程序如下:(放中斷中進(jìn)行)

void time0_int(void) interrupt 1

{   TH0= (time0_tmp/256);

    TL0= (time0_tmp%256);

    if(cut == 1)

        {

        time0_tmp = 65536-time0_set*20/12;

        cut = 0;

        }

    else

        {

        time0_tmp = 65536-(time0 - time0_set)*20/12;

        cut = 1;

           }       

}

    

       2、測速系統(tǒng)的工作原理為:利用電機(jī)軸上帶的圓盤的缺口,引起光電開關(guān)產(chǎn)生高電平脈沖,單片機(jī)就采集此脈沖的寬度,加以計算,得出其實時速度。

獲取脈沖寬度值子函數(shù)如下:

void getwidth_1()

{

TH1 = 0;

TL1 = 0;

n = 0;

n1 = n;

while(INT1==1&&((n-n1)<30))//n為每1MS +2

{}

if(INT1==0)

TR1 = 1;    //計數(shù)器1打開

else

goto out;

//IE1 = 0;//中斷請求標(biāo)志

EX1 = 1;//外部中斷1啟動

n = 0;

n1 = n;

while(m==0&&((n-n1)<30))

{}

if(m==0)//M=1,則已經(jīng)進(jìn)入out_int1中斷,若等于0,則說明30MS延時已過

    {

    TH1_1 = 0;

    TL1_1 = 0;

    }

out:

IE1 = 0;//中斷請求標(biāo)志

m = 0;

EX1 = 0;//外部中斷允許位

TR1 = 0;

width_1 = (TH1_1*256+TL1_1);//timepr=脈沖寬度 /μS

}

另外為了穩(wěn)定測得的轉(zhuǎn)速值,在程序中加了一個取平均值的函數(shù)(幾乎在整個程序中都有感覺,程序?qū)懙貌痪珶挘悬c累贅,呵呵,但總算功能是能實現(xiàn)嘛~反正畢業(yè)設(shè)計對程序執(zhí)行效率沒要求。)

void getwidth()

{

int gw,gw1;

width = 0;

gw1 = 0;

for(gw=0;gw<6;gw++)

    {

GG: getwidth_1();

    if(width_1 != 0)

    widthbuf[gw] = width_1;

    else

    goto GG;

    }

width = (widthbuf[0] + widthbuf[1] + widthbuf[2] + widthbuf[3] + widthbuf[4] + widthbuf[5])/6;將測得的連續(xù)6個不為零的脈沖寬度取平均值,以消除偶然的不穩(wěn)定因素,使轉(zhuǎn)速顯示更加穩(wěn)定

     

       3、PI調(diào)節(jié)

PI調(diào)節(jié)計算公式如下[5]  

YK = KP*EK + KI*EK2

YK:要輸出的數(shù)據(jù)增量

EK:設(shè)定值和實測值的差值

EK1:上次的EK

EK2EK-EK1的差值

KP:比例系數(shù)(本程序中設(shè)KP=1.6)經(jīng)反復(fù)湊試的結(jié)果

KI:積分系數(shù)(本程序中設(shè)KI=1.5)經(jīng)反復(fù)湊試的結(jié)果

當(dāng)KP和KI為以上值時,系統(tǒng)處于最佳運行狀態(tài),實驗中表現(xiàn)為:電機(jī)原來速度為2000,當(dāng)設(shè)置為4500轉(zhuǎn)時,可以在2秒之內(nèi)迅速上升并穩(wěn)定于4500±20,而超調(diào)量也僅為+300轉(zhuǎn)/分,出現(xiàn)在第一次上升的時候,下來之后便穩(wěn)定了。

速度變化曲線:

實物圖:

      嘿嘿,希望對廣大單片機(jī)初學(xué)者有那么點幫助~順便再做做廣告,有興趣購買的
      可以+QQ:54281963(注明畢業(yè)設(shè)計),或者發(fā)郵件至:upssure@126.com
或者,本人也可代做51單片機(jī)系列的設(shè)計,詳談。
      沒學(xué)其他,呵呵,能把一樣做精也很不錯了,反正現(xiàn)在51系列單片機(jī)功能已經(jīng)是今非昔比了,什么看門狗,PWM,AD,EEPROM,雙串口,N外部中斷口的,一應(yīng)俱全。STC剛出一款速度號稱是經(jīng)典51速度的480倍的單指令周期單片機(jī)呢。
      對研究啊,創(chuàng)新啊什么的,當(dāng)然是AVR,DSP好,但是對于做產(chǎn)品來說,就當(dāng)然是價格低廉的51系列好啦~只要51能實現(xiàn)的,就盡量用51,對產(chǎn)品來說,成品很重要啊~^_^!

  • 上一篇: 邏輯分析儀
  • 下一篇: 單片機(jī)系統(tǒng)鍵盤的設(shè)計小結(jié)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1