鄔寶寅,張端陽,劉 引
(1.鄭州科技學院,鄭州 450064;2.新鄉縣電業局,新鄉 453700)
目前市場上一般設備系統采用專用的遙控編碼及解碼集成電路,這種方案具有制作簡單、容易等特點,但由于功能鍵數及功能受到特定的限制,只適合用于某一專用電器產品的應用,不適合小批量產品的使用。而采用單片機進行遙控系統的應用設計,具有編程靈活多樣、操作碼個數可隨需求設定等優點。本單片機遙控電機調速系統采用紅外線脈寬編碼、單片機軟件脈寬計時解碼,實現了對一個單相交流電機的啟停及脈寬調制轉速控制。
單片機紅外遙控電機連續調速系統要求用單片機作為控制芯片制作一個遙控器,另一個單片機控制系統能被遙控操作吊扇的啟動、停止和調速。圖1 和圖2為該應用系統的遙控器設計框圖及接收控制系統設計框圖。

圖1 單片機遙控器設計框圖

圖2 接收控制系統設計框圖
單片機遙控應用系統電路分遙控發射系統電路和遙控接收系統電路。
3.1.1 遙控發射系統電路
電路主要以AT89C2051 單片機最小系統為中心,外圍連接四個獨立的電機控制按鍵、空閑方式控制電路、紅外發射電路、LED 發射指示燈電路等部分。單片機平時都處于低功耗空閑狀態,一旦有鍵按下,就會通過中斷喚醒單片機,進行鍵盤查詢,并由查詢的鍵號控制紅外管發射電路發射相應的脈沖串,發射完畢后再進入低功耗空閑狀態。
設置控制按鍵,即為開、關、加速和減速功能,當按鍵按下時,引腳讀入為低電平,否則讀入為高電平。
AT89C2051 采用了空閑節電工作方式。遙控器退出低功耗空閑方式電路由IN4148 二極管組成“與”門實現。當有鍵按下時,由“與”門觸發外部中斷0 發生中斷,單片機退出空閑工作方式,進入鍵盤和紅外發射程序,結束后又進入低功耗空閑方式待機。使用過程中單片機基本上都處于空閑工作方式,功耗相當低,。從而為使用電池電源提供保障。該電路由3V 電池供電,待機電流約為0.6mA,工作電流約為2.5mA。
遙控器信息碼由AT89C2051 單片機的定時器0調制成38KHZ 紅外線載波信號,由P3.3 口輸出,經過三極管8050 推動紅外線發射管發送。
3.1.2 紅外接收機及電機調速電路設計
該電路由AT89C2051 單片機紅外接收和轉速顯示電路、5V 電源電路、電機調速控制電路等部分組成。遙控器發射的信號經SM0038 處理后送給單片機,單片機通過脈寬檢測對信號進行分析識別,對電機進行調速和啟/??刂频炔僮鳎@示相應的工作狀態。
電源部分由220V 交流電直接供電,220V 交流電通過電容限流,整流電橋D3 整流再通過三端穩壓器U1 生成5V 電壓,該電路最高可提供69mA 電路。穩壓管D2 用于限制三端穩壓器在單片機耗電較低時,輸入電壓不超過9V。
電機驅動部分由光電耦合器、雙向晶閘管和外圍元件構成[2]。光電耦合器輸入端與單片機引腳相連,當引腳輸出低電平時,光電耦合器和雙向晶閘管導通,電機開始工作;當引腳輸出高電平時,光電耦合器和雙向晶閘管截止,電機停止工作;光電耦合器采用高壓雙向輸出光耦MOC3021,與雙向晶閘管BT136 配合使用。在控制電機變速時光電耦合器和晶閘管交替導通和截止,通過控制占空比來控制電機轉速。實際工作時,脈寬調制周期約為0.1s,單片機引腳輸出低電平占空比在10% 到90% 間變化[3]。
比紅光波長還長的光叫紅外線。肉眼看不到這種光線,但利用紅外線發送和接收裝置卻可以實施紅外線通訊。利用紅外線通訊無需連線,只需將兩設備的紅外線裝置對正即可傳輸數據。紅外線通訊方向性很強,適用于近距離的無線傳輸。紅外線的特點是不干擾其他電器設備工作,也不會影響周邊環境。電路調試簡單,這里就采用對發射信號進行編碼,來實現多路紅外遙控功能。
3.2.1 紅外發射與編碼、調制
發射部分由編碼調制和LED 紅外發送器等組成[6]。其中編碼和調制用單片機軟件實現,由單片機引腳發射采用脈寬調制的脈沖串[5],如圖3 所示,發射端口每次發射一串基頻為38KHz的脈沖,每兩串脈沖之間間隔一段時間,由這段時間對所發出的信息進行調制,時間的長短由單片機內的時間寄存器設置。
3.2.2 紅外接收與解調、解碼
因紅外遙控器的控制距離約6~12 米遠,要達到這個指標,其發射的載波頻率(38kHz)要求十分穩定。一體化紅外接收頭SM0038 對38kHz 進行解調,當接收到38KHZ的載波信號時,SM0038 接收器會輸出低電平,否則輸出高電平,從而可以將紅外光信號解調成一定脈寬的連續方波信號。方波下降沿觸發單片機的外部中斷,經單片機解碼,來判斷是否為有效信號,以及哪一種信號,并將信號還原為相應的控制信息。

圖3 紅外信號波形
3.3.1 紅外發射器軟件設計
紅外發射機需用到單片機兩個定時器,一個外部中斷等硬件資源,其中定時器T0 用以計量發射38KHz 脈沖串的脈寬,定時器T1 用以計量脈沖串與脈沖串之間的時長,外部中斷0 用以喚醒待機狀態。程序流程圖如圖4 所示。

圖4 紅外遙控發射程序框圖
定時器T0 處于常開狀態,程序首先讀按鍵,若無按鍵按下,則進入待機狀態,關發射標志;若有按鍵按下,則將啟動按鍵、停止按鍵、增速按鍵、減速按鍵相對應的數值(數值1、數值2、數值3、數值4)填入時間寄存器,開發射標志。在定時器T1的中斷子程序中,若發射標志關,則返回等待下一次中斷;若發射標志開,則將時間寄存器的數值填入初值寄存器,打開定時器T0 開始發射紅外信號,紅外脈沖串間的時間間隔即由時間寄存器中相應的數值來決定。
外部中斷0 用于待機狀態喚醒,其程序段為空。當讀鍵時無按鍵按下即進入待機狀態,當有按鍵按下時外部中斷0 輸入引腳即接到下降沿,觸發外部中斷,將IDL 位清零,退出待機狀態。
3.3.2 紅外接收器軟件設計
紅外接收機需用到單片機兩個定時器,一個外部中斷等硬件資源。其中外部中斷0 用來檢測由紅外接收頭所發出的下降沿而觸發中斷,啟動定時器T0 開始計時。定時器T0 通過定時來測量脈沖串與脈沖串之間的時長,判斷信號的種類;定時器T1 用來控制電機驅動口的方波占空比,對電機調速。程序流程圖如圖5 所示。
當紅外接收頭接收到一個紅外脈沖串時,便輸出一個低電平,外部中斷引腳接收到一個下降沿觸發中斷,啟動定時器T0 從零開始計時;當紅外接收頭再次接收到一個脈沖串時第二次觸發外部中斷,將T0 初值寄存器中的數值讀入時間寄存器,再對T0 清零開始第二次計時,如此反復不斷。
在主程序中,不停判斷時間寄存器中的數值是否為規定的數值(數值1、數值2、數值3、數值4),為數值1 則進行啟動操作,開定時器T1,發出PWM 信號啟動電機,開顯示;為數值2 則進行停止操作,關定時器T1,關顯示;為數值3 則進行增速操作,將速度寄存器中的數值加1,刷新顯示;為數值4 則進行減速操作,將速度寄存器中的數值減1,刷新顯示。
速度寄存器中的數值在1 到9 之間,使定時器T1 發出占空比在10%到90%之間的PWM 波,對電機調速,并通過數碼管將這十個數碼顯示出來。定時器T1的定時時長固定,當調速引腳輸出低電平時,速度寄存器中的數值即為定時次數;當調速引腳輸出高電平時,速度寄存器中的數值對10的補碼為定時次數。由此輸出周期為定時時長十倍的PWM波,速度寄存器中的數值越大,低電平的占空比越大,速度越高。
經實驗測試,紅外遙控信號的編碼解碼方法沒有出現傳輸誤碼,可靠、實用,在編碼解碼方面降低了硬件成本。容易實現系統擴展,此系統稍作改動即可應用于其它紅外遙控的控制系統中,實現靈活,應用廣泛。

圖5 紅外接收器程序框圖
設計采用AT89C2051 單片機,其最低使用電壓為2.7V,并不是很低,在待機狀態下的功耗也較高,不利于由電池供電的遙控發射器。如采用功能相似的STC12C2051 單片機,工作在掉電模式下由外部中斷喚醒,可以進一步降低功耗;或者采用功耗更低的AVR ATtiny 系列單片機,也可以起到進一步降低功耗的作用。
[1]趙力.將春輝.鄒采榮,吳鎮揚.語音信號中的情感特征分析和識別的研究[J].電子學報,2004,13(3):345-347.
[2]趙軒.基于PWM 控制的模型車用小型直流電機的調速裝置[J].計算機工程與設計,2009,30(21):4884-4887.
[3]陳伯.自動控制系統——電力拖動控制[M].北京:中央廣播電視大學出版社,2004.
[4]聶詩良,李磊民.紅外遙控信號的一種編碼解碼方法[J].儀表技術與傳感器,2004(8):28-32.
[5]華容.信號與系統[M].北京:北京大學出版社,2007.
[6]王清珍.單片機原理及接口技術[M].大連:大連理工大學出版社,2009.