萬能空調(diào)遙控器的學(xué)習(xí)模式算法
引 言
隨著社會的進(jìn)步與科技的發(fā)展,人們的生活水平有了很大提升,空調(diào)日益普及??照{(diào)有多種型號,不同型號的遙控器不得串用,因此設(shè)計一款萬能空調(diào)遙控器很有必要。萬能空調(diào)遙控器最重要的一個功能就是學(xué)習(xí)模式,使之能夠?qū)W習(xí)各個空調(diào)的編碼,以便遙控對應(yīng)的空調(diào)。
1 學(xué)習(xí)模式總體說明
萬能空調(diào)遙控器的學(xué)習(xí)模式主要分為三個步驟 :
(1) 利用紅外模塊捕捉空調(diào)遙控器的遙控信號 ;
(2) 利用單片機(jī)識別紅外信號并暫時存儲 ;
(3) 將捕捉到的信號進(jìn)行確認(rèn)后存在存儲芯片中,以備調(diào)用。
學(xué)習(xí)模式流程如圖 1 所示。
利用單片機(jī)識別紅外信號有兩種方案,具體如下。
方案一 :當(dāng)單片機(jī)自身的運算速度極快時,直接使用定時器計時,外部使用 I/O 輸入模式,使用上升與下降沿中斷捕捉并記錄每個間隔時間及高低電平以備用,每識別一段波便存儲下來備用,分別使用對應(yīng)的按鈕調(diào)用對應(yīng)的指令段。對應(yīng)的流程如圖 2 所示。
方案二 :當(dāng)單片機(jī)自身的運算速度不夠快,即計時器不夠快、精度不夠時,只采集對應(yīng)的高低電平及其模糊時間, 其模糊時間必須達(dá)到足夠的辨識度,能夠識別其中的邏輯 0 與 1,由于不同的空調(diào)有不同的邏輯脈寬時間,因此只要獲得信號輸出高低電平的模糊時間,將其固定在某個脈沖時間的周圍,逐一試用即可找到。流程如圖 3 所示。
2 空調(diào)遙控紅外信號說明
現(xiàn)有的紅外遙控包括 PWM(脈沖寬度調(diào)制)和 PPM(脈沖位置調(diào)制)兩種方式,兩種方式編碼的代表分別為 NEC 和 PHILIPS 的 RC-5,RC-6 以及 RC-7。本文主要介紹 NEC 與 RC-5。
NEC 格式的特征如下 :
(1) 使用 38 kHz 載波頻率 ;
(2) 引導(dǎo)碼間隔為(9+4.5)ms ;
(3) 使用 16 位客戶代碼 ;
(4) 使用 8 位數(shù)據(jù)代碼和 8 位取反的數(shù)據(jù)代碼。
NEC 協(xié)議通過脈沖串之間的時間間隔實現(xiàn)信號調(diào)制。邏輯 0 由 0.56 ms 的 38 kHz 載波和 0.56 ms 的無載波間隔組成 ;
邏輯 1 由 0.56ms的 38kHz載波和 1.68ms的無載波間隔組成 ;結(jié)束位是 0.56ms的 38kHz載波。邏輯 0與 1如圖 4所示。
3 學(xué)習(xí)模式紅外接收識別
學(xué)習(xí)模式紅外接收識別是學(xué)習(xí)模式的第一步,當(dāng)控制器進(jìn)入學(xué)習(xí)模式后,根據(jù)提示按下對應(yīng)的按鍵,控制器進(jìn)行學(xué)習(xí)記錄,其實現(xiàn)方式主要有兩種 :
(1)當(dāng)按下對應(yīng)的按鍵時,遙控器發(fā)出紅外信號,萬能遙控器通過紅外接收模塊接收信號,并將信號傳輸?shù)絾纹瑱C(jī)的 I/O 口用以處理,其信號的實質(zhì)為電平的高低變換,只是持續(xù)的時間不同,紅外信號的存儲實質(zhì)是存儲其高電平時間及低電平時間,因此識別記錄信號時必須獲得每個電平變換的時間,此方法簡單有效,但消耗容量 ;
(2)紅外遙控的邏輯 0與 1實質(zhì)是一個固定脈沖的不同占空比,可使用雙相編碼,因此可將每個指令識別為邏輯 0與 1 后再存儲。
4 學(xué)習(xí)模式紅外編碼存儲
為防止遙控器斷電,需將指令存儲到專門的存儲芯片上。每個存儲位置都有固定的位置信息,因此可將學(xué)習(xí)到的信息存儲到固定的位置以備讀取。例如,位置 1可直接存儲調(diào)節(jié)模式的紅外指令信息,在需要調(diào)節(jié)模式指令時,直接從位置 1 獲得。
5 學(xué)習(xí)模式紅外遙控
對學(xué)習(xí)到的指令進(jìn)行檢驗,若不正確,則重新學(xué)習(xí)。由于對單片機(jī)進(jìn)行內(nèi)部調(diào)用較快,因此為了減少時間消耗,每次重啟都將指令信息從存儲芯片復(fù)制到單片機(jī)中。
紅外信號的發(fā)射包括以下兩種方式 :
(1)對應(yīng)于學(xué)習(xí)模式紅外接收識別方案一,將對應(yīng)指令復(fù)制到單片機(jī)后,獲得電平翻轉(zhuǎn)時間,將每個電平的翻轉(zhuǎn)時間放入數(shù)組,進(jìn)行定時器定時,每到一定的時間,控制紅外發(fā)射模塊翻轉(zhuǎn)電平即可控制空調(diào)。紅外遙控流程如圖 6 所示。
(2) 對應(yīng)于學(xué)習(xí)模式紅外接收識別方案二,此處獲得的指令是識別后的十六進(jìn)制數(shù),將其還原(有引導(dǎo)碼及間隔時間等),在其邏輯 0 與 1之間加入間隔,將引導(dǎo)時間放入數(shù)組,并將邏輯 0 與 1 分別打出一個子程序,根據(jù)數(shù)組中的數(shù)分別調(diào)用對應(yīng)的子程序,對應(yīng)流程如圖 7 所示。
6 結(jié) 語
本文對萬能空調(diào)遙控器的學(xué)習(xí)模式進(jìn)行了論述,通過紅外接收模塊接收信號、單片機(jī)處理信號、存儲芯片存儲信號、紅外發(fā)射模塊發(fā)射信號,采用不同的方式對信號進(jìn)行處理、保存及發(fā)射,從而達(dá)到學(xué)習(xí)的目的,使得萬能空調(diào)遙控器可針對所有空調(diào)進(jìn)行遙控。