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