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