遠程控制技術又稱為遙控技術,是指實現對被控目標的遙遠控制,在工業控制、家用電器、無線電運動以及兒童玩具等領域都有非常廣泛的應用。遙控技術可以分為單通道遙控和多通道遙控,也可以分為開關型遙控和比例型遙控。
本文主要介紹了使用到單片機部分的控制電路,包括發射機電路和接收機電路。發射機采用電位器分壓作為比例控制信號,由4路A/D電路轉換為數字信號,各個通道數字信號連同兩路開關量由單片機進行多通道編碼,編碼信號由串行口送出,最后由發射模塊發射。接收機主要負責把收到的信號放大并從中解調出編碼信號,最后由伺服機把接收機收到的電信號轉換成相應的機械動作,由此實現方向和速度的控制。
外觀上,在遙控器的發射端應該有帶旋鈕的比例表盤,把5 V電壓平均分成360°,每一個小的度量單位就代表一定的電壓值,當旋鈕轉動一定角度時,也就是輸入給發射單片機一定的電壓值,與此同時,發射單片機一直以一定的時間間隔去查詢當前的速度并讀入到單片機內部,并根據計算公式計算出模型應該前進的距離或者當前應該的速度且根據此值設置相應的計數/定時器的初值,然后由系統外部驅動電路(伺服機)把接收單片機收到的電信號轉換成相應的機械動作,即前進一定距離或者作加減速運動;當定時器溢出產生中斷以后,外部相應的驅動電路也幾乎同時發出控制信號控制模型停止任何動作。
使用比例遙控的優點有很多。例如:控制靈活;可以調整遙控的距離且調整的最大距離比一般遙控遠;可以根據使用者的意愿實現模型的速度改變;線路簡單,抗干擾能力強;伺服機構(包括齒輪箱和伺服馬達)簡單等等。
1 比例遙控設備的基本原理
一般比例遙控系統的功能框圖如圖1所示。
圖1(a)中,鍵盤用于產生發射端控制信號;編碼器對控制信號進行編碼;顯示器顯示受控對象及其受控狀態類別;發射機將操縱指令轉換為帶有控制信息的無線電信號并將此信號進行功率放大,以滿足發射功率的要求。
圖1(b)中,解碼器將編碼信號譯成控制信號;控制器對受控對象實施控制;接收機接收發射機發出的無線電信號,同時將接收到的信號放大并從中解調出編碼信號,一般和發射機配套使用。由于接收機是裝在模型上的,一般都應該盡量做到小巧,同時還應具有很高的靈敏度,能接收較遠距離發射的無線電信號。
遙控設備的基本工作原理是:操縱者通過手中的遙控發射機(撥動發射機上的旋鈕或者搖桿)將控制模型前進、后退、加速或減速的指令變成電信號并將其發射到空中;模型上裝載的遙控接收機收到這些電信號并由伺服舵機轉換成相應的機械運動,從而實現對模型的遙控。
2 單片機比例遙控系統的具體設計
無線比例遙控系統主要由發射和接收兩個部分組成,發射部分完成對遙控指令的發射,接收部分完成對指令的實施。在設計時可將其分開設計。
2.1 發射電路
圖2為使用STCl2C2052AD單片機設計的比例遙控系統發射機的主電路。由于使用了單片機,使整個電路變得非常簡潔。P1口為比例遙控信號的輸入端;通過電位器分壓得到比例控制信號,由4路A/D電路轉換為數字信號,各個通道數字信號連同兩路開關量由單片機進行多通道編碼,編碼信號由串行口送出,最后由發射模塊發射。如果需要設計更多通道的比例遙控系統,可以利用其余沒有使用到的P1端口,外接電位器進行相應的功能擴展。當沒有控制信號時,P1口均為高電平。由軟件控制將P1口的控制信號(低電平有效)送到單片機內部進行相關處理。
STCl2C2052AD是20腳封裝的單時鐘/機器周期的兼容8051 RISC型CPU內核的單片機。它是本設計的核心器件,其速度比普通的8051快12倍;功耗低;片上集成256字節的RAM;15個通用可編程I/0口,可以設置成4種模式——準雙向口/弱上拉、推挽/強上拉、僅為輸入/高阻、開漏(其中復位后為準雙向口/弱上拉模式);片內有EEPROM功能;共有2個16位定時器/計數器;內部還集成了RC振蕩器,在精度要求不高時可以省略外部晶振;具有較寬的操作電壓范圍以及獨立的片內看門狗定時器;P1.7~P1.O共8路高精度的高速電壓輸入型8位A/D轉換器,速度可以達到100 kHz,可用于溫度檢測、電池電壓檢測、頻譜檢測等等,上電復位后P1口為弱上拉型I/0口,用戶可以通過軟件設置將8路中的任何一路設置為A/D轉換(不需要作為A/D使用的端口可以繼續作為I/O口使用,需作為A/D使用的端口要先將其設置為高阻輸入模式或者開漏模式)。本設計中的單片機還可以由其他同類型的20腳封裝的51系列單片機代替,設計方法多種多樣。
2.2 接收電路
接收電路主要作用是將發射機發射出的已調的編碼指令信號接收下來,并進行放大后送到解調電路,解調電路將已經調制的指令編碼信號解調出來,還原為編碼信號。指令譯碼器將編碼指令信號進行譯碼,最后由驅動電路來驅動執行電路實現各種指令的操作控制。圖3為接收機主電路,發射機傳來的信號由P3.O輸入后送至P1口,由軟件控制P1的相應端口輸出控制信號。P1口的4位A/D端口可以接到不同的控制端。由于是比例遙控,所以應將輸出口的控制信號送到下一級比例遙控專用的伺服電路。
整個系統的執行部分是由直流電動機驅動電路來完成的,主要控制模型的行進方向和速度。單片機STCl2C2052AD既是協調整個接收機工作的控制器,又是數據處理器和運算器,由于它直接有PWM功能,因此不需要占用單片機資源,可以直接產生占空比可變的脈沖信號,對橋式雙向電路驅動電動機進行電壓控制,從而完成對電動機驅動、轉速以及前進或后退的控制,并能夠實現脈寬精確調速。
圖3中,與單片機左邊相連的部分為電動機驅動電路。該電路由2對晶體管組成一個橋式互補對稱電路,其中包含了電動機。電動機是一種將電脈沖信號轉換成階躍型的角位移或者直線位移的變換器,它的旋轉是以固定的角度(步距角)運行的。當4個晶體管均為低電平時(由芯片控制),這4個晶體管的集電極和發射極均不能導通,此時電動機a端和b端均為O V,電動機不能轉動。當P3.0和P3.2為高電平,P3.1和P3.3為低電平時,晶體管T1和T3均導通,此時a端得到高電平,而b端與地相通,電動機開始轉動。除去晶體管T1和T3的壓降,電動機的兩端大概可以得到4.5 V的電壓。同樣道理,當P3.1和P3.3為高電平,P3.O和P3.2為低電平時,b端得到高電平,而a端與地相通,電動機反轉。通過該橋式電路,控制P3.O和P3.2、P3.1和P3.3端口的電平(注意:這4個端口不能全部為高電平)便可以實現電動機的正轉、反轉和停轉,即實現了模型的前進或后退。為了消除電動機的電弧干擾,應在電動機兩側加一個小電容,其值為0.1μF。
另外,設計中還要求能夠對模型進行速度的控制。控制電動機的運行速度,實際上就是控制系統發出時鐘脈沖的頻率或著是換相的周期,即在升速過程中,使脈沖的輸出頻率逐漸增加;在減速過程中,使脈沖的輸出頻率逐漸減少。脈沖信號的頻率可以用軟件延時和硬件中斷兩種方法來確定:
①采用軟件延時,一般是根據所需的時間常數來設計一個子程序。該程序包含一定的指令,設計者要對這些指令的執行時間進行精確的計算,以便確定延時時間。在每次確定前進方向之后調用一個延時子程序,待延時結束以后再執行換向,這樣周而復始就可以發出一定頻率的CP脈沖或換向周期。延時子程序的延時時間與換向程序所用的時間和,就是CP脈沖的周期。該方法簡單,占用資源少,全部由軟件實現,調用不同的子程序就可以實現不同速度的運行;但是,若占用CPU的時間過長,就不能在運行時處理其他的工作,因此它比較適合簡單的控制過程。
②使用單片機中的定時器直接對系統時鐘脈沖或某一固定頻率的時鐘脈沖進行計數,計數值由編程決定。定時器啟動后,定時器從裝載的初值開始對系統及其周期進行加計數。當定時器溢出時,定時器產生中斷,系統轉去執行定時中斷子程序,將電機換向子程序放在定時中斷服務程序中,定時中斷一次,電機換向一次,從而實現電機的速度控制。用定時中斷方式來控制電動機的速度,實際上是不斷改變定時器裝載值的大小。
2.3 單片機程序設計
由于單片機的各個引腳都有很多功能,因此在軟件程序設計中要特別注意它們的定義和對片內特殊功能寄存器的初始化設置,以便實現相應的功能。在初始化設置完成之后,開始接收第1通道數據,同時必須使接收單片機同步接收通道數據,相隔一定時間查詢第1通道當前電壓A/D轉換的結果是否與查詢之前的結果相同。如果相同,則繼續發送下一個通道的數據;反之,則立即向接收機發送該通道的通道號和相應的A/D轉換結果,且在延時10 ms后準備發送下一個通道的數據。全部數據發送完畢后再重新開始新一輪的數據查詢和發送。延時的目的在于給接收單片機留出一定的處理時間。圖4(a)所示為發射單片機程序設計流程。
接收機用接收模塊將信號接收并解調,解調后的信號送串行口由STCl2C2052AD譯碼,最后驅動控制執行機構。由于本設計的任務簡單,所以遙控系統對操作的響應時間并沒有嚴格的要求,在A/D轉換和串行通信程序設計中可以采用查詢方式,將讀人的信號轉換成相應的控制信號,并用識別標志位的方法識別所對應的控制方式。接收單片機的串行口必須與發射機保持一致。由于改變的速度值可以直接轉換成相應的電信號送入接收單片機的P1端口,單片機每響應一次外部中斷,就會在對應的中斷服務程序中根據計算公式增加或減小速度。當電機處于正反向調速系統時,在正反向調速子程序中根據該速度通過計算公式可以得到單片機內部定時/計數器的初值。在開始計數的同時,啟動相應的控制程序驅動電動機驅動電路。定時時間結束的同時,停止對相應伺服電路的驅動,回到初始化狀態,準備開始接收新的信號和數據。相應的程序流程如圖4(b)所示。
2.4 系統調試及抗干擾措施
在調試電路時要注意將數字信號與模擬信號隔離,即兩部分不能交叉安裝;數字信號的地線應與模擬信號的地線分開,電源間要加去耦電路。晶體諧振器形成的干擾一般很大,應將其外殼接地。
系統調試時先分別調試各個單元模塊,調通后再進行整機調試,這樣可提高調試效率。
隨著單片機在實際中的應用越來越廣泛,對其可靠性的要求也越來越高。單片機系統的可靠性由多種因素決定,其中系統的抗干擾性能是可靠性的重要指標。如果外界環境中有強烈的電磁干擾,就必須采取抗干擾措施,否則單片機就難以穩定、可靠地運行。所以在系統硬件方面應該采取必要的抗干擾措施:
①器件選擇。本設計中的主要功能單元選用了專門的集成芯片,這對于提高系統的穩定性和抗干擾性都有很大的好處。
②過壓保護電路。在輸入輸出通道上應采用一過壓保護電路,以防止引入高電壓,傷害微機系統。過壓保護電路主要由限流電阻和穩壓管組成。限流電阻選擇要適宜,太大會引起信號衰減,太小起不到保護穩壓管的作用。穩壓管的選擇也要適宜,其穩壓值以略高于最高傳送信號電壓為宜,太低將對有效信號限幅,使信號失真。
③配置去耦電容。在電動機的兩端安置一個0.1μF的電容,可以消除大部分的高頻干擾。
④良好接地。在單片機控制系統中,接地問題將直接影響系統是否正常工作。
結 語
基于STC系列單片機STCl2C2052AD設計的比例遙控控制系統,由于采用了模塊化的設計方法,使得整個系統具有一定的擴展性。系統中的個別電路采用數字電路也可以實現同樣的功能,如信號振蕩器、A/D轉換器等;但是它們在控制和性能方面都較差,硬件設計也比較麻煩。本電路采用了帶A/D轉換的單片機進行控制處理,使得整個系統具有簡潔、靈活自由、易于控制、穩定性較好等優點,大大提高了智能化自動控制的程度,而且系統的性能也很好。
上一篇:典型范例:uCOSii在Coldfire MCF52235上的移植
下一篇:基于 SPCE061A單片機采集語音信號的設計與實現
推薦閱讀
史海拾趣
進入21世紀,BH Electronics面臨著更加激烈的市場競爭。為了保持領先地位,公司加大了對技術研發的投入。在一次技術研討會上,工程師小王提出了一項革命性的技術設想。經過多次試驗和改進,BH Electronics成功研發出了一款具有劃時代意義的電子產品,不僅提升了性能,還降低了成本。這一創新產品迅速在市場上獲得了廣泛認可,為公司的快速發展奠定了堅實基礎。
Fibrefab始終堅持以客戶為中心的服務理念。為了提升客戶滿意度和忠誠度,Fibrefab不斷加強售前咨詢、售中服務和售后支持等方面的投入。公司建立了一套完善的服務體系,為客戶提供從方案設計、產品選型、安裝調試到后期維護等全方位的服務支持。此外,Fibrefab還積極收集客戶反饋和建議,不斷優化產品和服務以滿足客戶需求。
Digital View公司成立于1995年,當時正值電子顯示技術快速發展的時期。公司創始人憑借對數字顯示技術的深刻理解和前瞻性的市場洞察力,決定專注于平板數字顯示市場連接解決方案的研發和生產。在創業初期,公司面臨資金短缺、技術瓶頸等多重困難,但團隊憑借堅韌不拔的精神,成功開發出多款具有競爭力的產品,逐漸在市場上獲得認可。
隨著Avic公司在航空電子技術領域的不斷發展和創新,其產品在國內外市場上的競爭力日益增強。公司成功拓展了國內外市場,市場份額穩步增長。這不僅體現了公司在航空電子領域的實力,也為中國航空工業的整體發展做出了積極貢獻。
這五個故事雖然不能完全涵蓋Avic公司在電子行業發展的所有細節,但希望能通過概括性的描述,為您展現該公司在這一領域的重要發展歷程和取得的成就。需要注意的是,這些故事是基于公開資料和已知事實進行描述的,旨在客觀呈現事實,而非進行主觀評價。
Future Designs, Inc.(FDI)成立于幾十年前,最初由一群在電子設計領域擁有豐富經驗的工程師創立。他們看到市場上對于高質量、快速響應的觸摸屏LCD圖形用戶界面(GUI)解決方案的需求日益增長,于是決定成立一家公司,專注于提供此類產品和服務。初創時期,FDI面臨諸多挑戰,包括資金短缺、市場認可度低以及技術難關等。然而,憑借團隊成員的堅持不懈和專業技術,他們逐步攻克難關,開發出了ELI?和羅德里格斯?GUI家族產品,為公司贏得了初步的市場地位。
面對日益激烈的市場競爭和客戶需求的變化,Delphi Connection Systems公司積極推進數字化轉型。公司引入先進的生產管理系統和智能化設備,實現了生產過程的自動化和智能化。這不僅提高了生產效率和質量穩定性,也降低了生產成本和人力需求。數字化轉型使公司更加靈活和高效地應對市場變化,為未來的發展奠定了堅實基礎。
最近維修一臺三菱A540-55K變頻器,是一位維修新手維修不好才拿到我們這里來,這臺機本來是壞了一個模塊,換好模塊后,這位新手想測量驅動是否正常,把模塊觸發線撥掉,結果一通電就跳閘,檢查后發現又燒掉一個模塊!他想很久都弄不明白為什么會這樣 ...… 查看全部問答∨ |
|
請教如何設置 IAR中的NEAR_I Segment 的大小? 我是用IAR For AVR 5.11B版,在鏈接時出現以下錯誤提示: Error[e16]: Segment NEAR_I (size: 0xdb0c align: 0) is too long for segment definition. At least 0xcb4c more bytes needed. The prob ...… 查看全部問答∨ |
讀8025,每次讀7個字節,奇數次讀出的數據和偶數次讀出的不一樣,奇數次相同,偶數次基本相同,原因何在?? 我遇到的情況很奇怪,同樣的代碼用R8025EJ03和用R8025Ex28(個人認為只是批號不同)讀出的時鐘不一樣,每秒讀一次8025用J03讀每次都是正確的,用X28一次對一次不對,不對的那一次數據是08-0f的數據。我用的是第三種讀方式:不指定從地址Fh開始讀取 ...… 查看全部問答∨ |
dsp寫外部的sram,通過ccs中的memory來觀察寫進去的結果。 但是現在的問題是: 對一個地址寫操作,但是所有的地址內容都變化。 例如:給地址0寫數據0x20,memory中顯示的是所有地址內容都變成20。 可能是什么原因啊 希望大家提點意 ...… 查看全部問答∨ |
|
CONFIG在IDE中配置ECCP2的輸入為 RC1.CCP初始化程序如下 void CCPInit(void) { TRISC1 = 1; //設置ECCP2(RC1)為輸入 CCP2CON = 0x04; //CCP2M[3:0]=0x0101 每個上升沿捕獲;CCP2M[3:0] ...… 查看全部問答∨ |
初學MSP430 有如下幾個問題1.MCLK,SMCLK,ACLK它們之間的關系什么?大多運用在哪些方面?尤其是后兩者的區別2.為何要設置中斷?是為了掛起當前進程去執行其他必須且需要的事情么?3.手上有一塊launch pad,書籍方面的也看了,但還是感覺很理論, ...… 查看全部問答∨ |