基于51單片機(jī)設(shè)計的比例遙控系統(tǒng)
掃描二維碼
隨時隨地手機(jī)看文章
引 言
遠(yuǎn)程控制技術(shù)又稱為遙控技術(shù),是指實現(xiàn)對被控目標(biāo)的遙遠(yuǎn)控制,在工業(yè)控制、家用電器、無線電運(yùn)動以及兒童玩具等領(lǐng)域都有非常廣泛的應(yīng)用。遙控技術(shù)可以分為單通道遙控和多通道遙控,也可以分為開關(guān)型遙控和比例型遙控。
本文主要介紹了使用到單片機(jī)部分的控制電路,包括發(fā)射機(jī)電路和接收機(jī)電路。發(fā)射機(jī)采用電位器分壓作為比例控制信號,由4路A/D電路轉(zhuǎn)換為數(shù)字信號,各個通道數(shù)字信號連同兩路開關(guān)量由單片機(jī)進(jìn)行多通道編碼,編碼信號由串行口送出,最后由發(fā)射模塊發(fā)射。接收機(jī)主要負(fù)責(zé)把收到的信號放大并從中解調(diào)出編碼信號,最后由伺服機(jī)把接收機(jī)收到的電信號轉(zhuǎn)換成相應(yīng)的機(jī)械動作,由此實現(xiàn)方向和速度的控制。
外觀上,在遙控器的發(fā)射端應(yīng)該有帶旋鈕的比例表盤,把5 V電壓平均分成360°,每一個小的度量單位就代表一定的電壓值,當(dāng)旋鈕轉(zhuǎn)動一定角度時,也就是輸入給發(fā)射單片機(jī)一定的電壓值,與此同時,發(fā)射單片機(jī)一直以一定的時間間隔去查詢當(dāng)前的速度并讀入到單片機(jī)內(nèi)部,并根據(jù)計算公式計算出模型應(yīng)該前進(jìn)的距離或者當(dāng)前應(yīng)該的速度且根據(jù)此值設(shè)置相應(yīng)的計數(shù)/定時器的初值,然后由系統(tǒng)外部驅(qū)動電路(伺服機(jī))把接收單片機(jī)收到的電信號轉(zhuǎn)換成相應(yīng)的機(jī)械動作,即前進(jìn)一定距離或者作加減速運(yùn)動;當(dāng)定時器溢出產(chǎn)生中斷以后,外部相應(yīng)的驅(qū)動電路也幾乎同時發(fā)出控制信號控制模型停止任何動作。
使用比例遙控的優(yōu)點(diǎn)有很多。例如:控制靈活;可以調(diào)整遙控的距離且調(diào)整的最大距離比一般遙控遠(yuǎn);可以根據(jù)使用者的意愿實現(xiàn)模型的速度改變;線路簡單,抗干擾能力強(qiáng);伺服機(jī)構(gòu)(包括齒輪箱和伺服馬達(dá))簡單等等。
1 比例遙控設(shè)備的基本原理
一般比例遙控系統(tǒng)的功能框圖如圖1所示。
圖1(a)中,鍵盤用于產(chǎn)生發(fā)射端控制信號;編碼器對控制信號進(jìn)行編碼;顯示器顯示受控對象及其受控狀態(tài)類別;發(fā)射機(jī)將操縱指令轉(zhuǎn)換為帶有控制信息的無線電信號并將此信號進(jìn)行功率放大,以滿足發(fā)射功率的要求。
圖1(b)中,解碼器將編碼信號譯成控制信號;控制器對受控對象實施控制;接收機(jī)接收發(fā)射機(jī)發(fā)出的無線電信號,同時將接收到的信號放大并從中解調(diào)出編碼信號,一般和發(fā)射機(jī)配套使用。由于接收機(jī)是裝在模型上的,一般都應(yīng)該盡量做到小巧,同時還應(yīng)具有很高的靈敏度,能接收較遠(yuǎn)距離發(fā)射的無線電信號。
遙控設(shè)備的基本工作原理是:操縱者通過手中的遙控發(fā)射機(jī)(撥動發(fā)射機(jī)上的旋鈕或者搖桿)將控制模型前進(jìn)、后退、加速或減速的指令變成電信號并將其發(fā)射到空中;模型上裝載的遙控接收機(jī)收到這些電信號并由伺服舵機(jī)轉(zhuǎn)換成相應(yīng)的機(jī)械運(yùn)動,從而實現(xiàn)對模型的遙控。
2 單片機(jī)比例遙控系統(tǒng)的具體設(shè)計
無線比例遙控系統(tǒng)主要由發(fā)射和接收兩個部分組成,發(fā)射部分完成對遙控指令的發(fā)射,接收部分完成對指令的實施。在設(shè)計時可將其分開設(shè)計。
2.1 發(fā)射電路
圖2為使用STCl2C2052AD單片機(jī)設(shè)計的比例遙控系統(tǒng)發(fā)射機(jī)的主電路。由于使用了單片機(jī),使整個電路變得非常簡潔。P1口為比例遙控信號的輸入端;通過電位器分壓得到比例控制信號,由4路A/D電路轉(zhuǎn)換為數(shù)字信號,各個通道數(shù)字信號連同兩路開關(guān)量由單片機(jī)進(jìn)行多通道編碼,編碼信號由串行口送出,最后由發(fā)射模塊發(fā)射。如果需要設(shè)計更多通道的比例遙控系統(tǒng),可以利用其余沒有使用到的P1端口,外接電位器進(jìn)行相應(yīng)的功能擴(kuò)展。當(dāng)沒有控制信號時,P1口均為高電平。由軟件控制將P1口的控制信號(低電平有效)送到單片機(jī)內(nèi)部進(jìn)行相關(guān)處理。
STCl2C2052AD是20腳封裝的單時鐘/機(jī)器周期的兼容8051 RISC型CPU內(nèi)核的單片機(jī)。它是本設(shè)計的核心器件,其速度比普通的8051快12倍;功耗低;片上集成256字節(jié)的RAM;15個通用可編程I/0口,可以設(shè)置成4種模式——準(zhǔn)雙向口/弱上拉、推挽/強(qiáng)上拉、僅為輸入/高阻、開漏(其中復(fù)位后為準(zhǔn)雙向口/弱上拉模式);片內(nèi)有EEPROM功能;共有2個16位定時器/計數(shù)器;內(nèi)部還集成了RC振蕩器,在精度要求不高時可以省略外部晶振;具有較寬的操作電壓范圍以及獨(dú)立的片內(nèi)看門狗定時器;P1.7~P1.O共8路高精度的高速電壓輸入型8位A/D轉(zhuǎn)換器,速度可以達(dá)到100 kHz,可用于溫度檢測、電池電壓檢測、頻譜檢測等等,上電復(fù)位后P1口為弱上拉型I/0口,用戶可以通過軟件設(shè)置將8路中的任何一路設(shè)置為A/D轉(zhuǎn)換(不需要作為A/D使用的端口可以繼續(xù)作為I/O口使用,需作為A/D使用的端口要先將其設(shè)置為高阻輸入模式或者開漏模式)。本設(shè)計中的單片機(jī)還可以由其他同類型的20腳封裝的51系列單片機(jī)代替,設(shè)計方法多種多樣。
2.2 接收電路
接收電路主要作用是將發(fā)射機(jī)發(fā)射出的已調(diào)的編碼指令信號接收下來,并進(jìn)行放大后送到解調(diào)電路,解調(diào)電路將已經(jīng)調(diào)制的指令編碼信號解調(diào)出來,還原為編碼信號。指令譯碼器將編碼指令信號進(jìn)行譯碼,最后由驅(qū)動電路來驅(qū)動執(zhí)行電路實現(xiàn)各種指令的操作控制。圖3為接收機(jī)主電路,發(fā)射機(jī)傳來的信號由P3.O輸入后送至P1口,由軟件控制P1的相應(yīng)端口輸出控制信號。P1口的4位A/D端口可以接到不同的控制端。由于是比例遙控,所以應(yīng)將輸出口的控制信號送到下一級比例遙控專用的伺服電路。
整個系統(tǒng)的執(zhí)行部分是由直流電動機(jī)驅(qū)動電路來完成的,主要控制模型的行進(jìn)方向和速度。單片機(jī)STCl2C2052AD既是協(xié)調(diào)整個接收機(jī)工作的控制器,又是數(shù)據(jù)處理器和運(yùn)算器,由于它直接有PWM功能,因此不需要占用單片機(jī)資源,可以直接產(chǎn)生占空比可變的脈沖信號,對橋式雙向電路驅(qū)動電動機(jī)進(jìn)行電壓控制,從而完成對電動機(jī)驅(qū)動、轉(zhuǎn)速以及前進(jìn)或后退的控制,并能夠?qū)崿F(xiàn)脈寬精確調(diào)速。
圖3中,與單片機(jī)左邊相連的部分為電動機(jī)驅(qū)動電路。該電路由2對晶體管組成一個橋式互補(bǔ)對稱電路,其中包含了電動機(jī)。電動機(jī)是一種將電脈沖信號轉(zhuǎn)換成階躍型的角位移或者直線位移的變換器,它的旋轉(zhuǎn)是以固定的角度(步距角)運(yùn)行的。當(dāng)4個晶體管均為低電平時(由芯片控制),這4個晶體管的集電極和發(fā)射極均不能導(dǎo)通,此時電動機(jī)a端和b端均為O V,電動機(jī)不能轉(zhuǎn)動。當(dāng)P3.0和P3.2為高電平,P3.1和P3.3為低電平時,晶體管T1和T3均導(dǎo)通,此時a端得到高電平,而b端與地相通,電動機(jī)開始轉(zhuǎn)動。除去晶體管T1和T3的壓降,電動機(jī)的兩端大概可以得到4.5 V的電壓。同樣道理,當(dāng)P3.1和P3.3為高電平,P3.O和P3.2為低電平時,b端得到高電平,而a端與地相通,電動機(jī)反轉(zhuǎn)。通過該橋式電路,控制P3.O和P3.2、P3.1和P3.3端口的電平(注意:這4個端口不能全部為高電平)便可以實現(xiàn)電動機(jī)的正轉(zhuǎn)、反轉(zhuǎn)和停轉(zhuǎn),即實現(xiàn)了模型的前進(jìn)或后退。為了消除電動機(jī)的電弧干擾,應(yīng)在電動機(jī)兩側(cè)加一個小電容,其值為0.1μF。
另外,設(shè)計中還要求能夠?qū)δP瓦M(jìn)行速度的控制。控制電動機(jī)的運(yùn)行速度,實際上就是控制系統(tǒng)發(fā)出時鐘脈沖的頻率或著是換相的周期,即在升速過程中,使脈沖的輸出頻率逐漸增加;在減速過程中,使脈沖的輸出頻率逐漸減少。脈沖信號的頻率可以用軟件延時和硬件中斷兩種方法來確定:
①采用軟件延時,一般是根據(jù)所需的時間常數(shù)來設(shè)計一個子程序。該程序包含一定的指令,設(shè)計者要對這些指令的執(zhí)行時間進(jìn)行精確的計算,以便確定延時時間。在每次確定前進(jìn)方向之后調(diào)用一個延時子程序,待延時結(jié)束以后再執(zhí)行換向,這樣周而復(fù)始就可以發(fā)出一定頻率的CP脈沖或換向周期。延時子程序的延時時間與換向程序所用的時間和,就是CP脈沖的周期。該方法簡單,占用資源少,全部由軟件實現(xiàn),調(diào)用不同的子程序就可以實現(xiàn)不同速度的運(yùn)行;但是,若占用CPU的時間過長,就不能在運(yùn)行時處理其他的工作,因此它比較適合簡單的控制過程。
②使用單片機(jī)中的定時器直接對系統(tǒng)時鐘脈沖或某一固定頻率的時鐘脈沖進(jìn)行計數(shù),計數(shù)值由編程決定。定時器啟動后,定時器從裝載的初值開始對系統(tǒng)及其周期進(jìn)行加計數(shù)。當(dāng)定時器溢出時,定時器產(chǎn)生中斷,系統(tǒng)轉(zhuǎn)去執(zhí)行定時中斷子程序,將電機(jī)換向子程序放在定時中斷服務(wù)程序中,定時中斷一次,電機(jī)換向一次,從而實現(xiàn)電機(jī)的速度控制。用定時中斷方式來控制電動機(jī)的速度,實際上是不斷改變定時器裝載值的大小。
2.3 單片機(jī)程序設(shè)計
由于單片機(jī)的各個引腳都有很多功能,因此在軟件程序設(shè)計中要特別注意它們的定義和對片內(nèi)特殊功能寄存器的初始化設(shè)置,以便實現(xiàn)相應(yīng)的功能。在初始化設(shè)置完成之后,開始接收第1通道數(shù)據(jù),同時必須使接收單片機(jī)同步接收通道數(shù)據(jù),相隔一定時間查詢第1通道當(dāng)前電壓A/D轉(zhuǎn)換的結(jié)果是否與查詢之前的結(jié)果相同。如果相同,則繼續(xù)發(fā)送下一個通道的數(shù)據(jù);反之,則立即向接收機(jī)發(fā)送該通道的通道號和相應(yīng)的A/D轉(zhuǎn)換結(jié)果,且在延時10 ms后準(zhǔn)備發(fā)送下一個通道的數(shù)據(jù)。全部數(shù)據(jù)發(fā)送完畢后再重新開始新一輪的數(shù)據(jù)查詢和發(fā)送。延時的目的在于給接收單片機(jī)留出一定的處理時間。圖4(a)所示為發(fā)射單片機(jī)程序設(shè)計流程。
接收機(jī)用接收模塊將信號接收并解調(diào),解調(diào)后的信號送串行口由STCl2C2052AD譯碼,最后驅(qū)動控制執(zhí)行機(jī)構(gòu)。由于本設(shè)計的任務(wù)簡單,所以遙控系統(tǒng)對操作的響應(yīng)時間并沒有嚴(yán)格的要求,在A/D轉(zhuǎn)換和串行通信程序設(shè)計中可以采用查詢方式,將讀人的信號轉(zhuǎn)換成相應(yīng)的控制信號,并用識別標(biāo)志位的方法識別所對應(yīng)的控制方式。接收單片機(jī)的串行口必須與發(fā)射機(jī)保持一致。由于改變的速度值可以直接轉(zhuǎn)換成相應(yīng)的電信號送入接收單片機(jī)的P1端口,單片機(jī)每響應(yīng)一次外部中斷,就會在對應(yīng)的中斷服務(wù)程序中根據(jù)計算公式增加或減小速度。當(dāng)電機(jī)處于正反向調(diào)速系統(tǒng)時,在正反向調(diào)速子程序中根據(jù)該速度通過計算公式可以得到單片機(jī)內(nèi)部定時/計數(shù)器的初值。在開始計數(shù)的同時,啟動相應(yīng)的控制程序驅(qū)動電動機(jī)驅(qū)動電路。定時時間結(jié)束的同時,停止對相應(yīng)伺服電路的驅(qū)動,回到初始化狀態(tài),準(zhǔn)備開始接收新的信號和數(shù)據(jù)。相應(yīng)的程序流程如圖4(b)所示。
2.4 系統(tǒng)調(diào)試及抗干擾措施
在調(diào)試電路時要注意將數(shù)字信號與模擬信號隔離,即兩部分不能交叉安裝;數(shù)字信號的地線應(yīng)與模擬信號的地線分開,電源間要加去耦電路。晶體諧振器形成的干擾一般很大,應(yīng)將其外殼接地。
系統(tǒng)調(diào)試時先分別調(diào)試各個單元模塊,調(diào)通后再進(jìn)行整機(jī)調(diào)試,這樣可提高調(diào)試效率。
隨著單片機(jī)在實際中的應(yīng)用越來越廣泛,對其可靠性的要求也越來越高。單片機(jī)系統(tǒng)的可靠性由多種因素決定,其中系統(tǒng)的抗干擾性能是可靠性的重要指標(biāo)。如果外界環(huán)境中有強(qiáng)烈的電磁干擾,就必須采取抗干擾措施,否則單片機(jī)就難以穩(wěn)定、可靠地運(yùn)行。所以在系統(tǒng)硬件方面應(yīng)該采取必要的抗干擾措施:
①器件選擇。本設(shè)計中的主要功能單元選用了專門的集成芯片,這對于提高系統(tǒng)的穩(wěn)定性和抗干擾性都有很大的好處。
②過壓保護(hù)電路。在輸入輸出通道上應(yīng)采用一過壓保護(hù)電路,以防止引入高電壓,傷害微機(jī)系統(tǒng)。過壓保護(hù)電路主要由限流電阻和穩(wěn)壓管組成。限流電阻選擇要適宜,太大會引起信號衰減,太小起不到保護(hù)穩(wěn)壓管的作用。穩(wěn)壓管的選擇也要適宜,其穩(wěn)壓值以略高于最高傳送信號電壓為宜,太低將對有效信號限幅,使信號失真。
③配置去耦電容。在電動機(jī)的兩端安置一個0.1μF的電容,可以消除大部分的高頻干擾。
④良好接地。在單片機(jī)控制系統(tǒng)中,接地問題將直接影響系統(tǒng)是否正常工作。
結(jié) 語
基于STC系列單片機(jī)STCl2C2052AD設(shè)計的比例遙控控制系統(tǒng),由于采用了模塊化的設(shè)計方法,使得整個系統(tǒng)具有一定的擴(kuò)展性。系統(tǒng)中的個別電路采用數(shù)字電路也可以實現(xiàn)同樣的功能,如信號振蕩器、A/D轉(zhuǎn)換器等;但是它們在控制和性能方面都較差,硬件設(shè)計也比較麻煩。本電路采用了帶A/D轉(zhuǎn)換的單片機(jī)進(jìn)行控制處理,使得整個系統(tǒng)具有簡潔、靈活自由、易于控制、穩(wěn)定性較好等優(yōu)點(diǎn),大大提高了智能化自動控制的程度,而且系統(tǒng)的性能也很好。