智能紅外遙控開(kāi)關(guān)原理及設(shè)計(jì)
3 程序設(shè)計(jì)
紅外遙控接收頭解調(diào)出的編碼是串行二進(jìn)制碼,包含著遙控器按鍵信息。但它還不便于CPU讀取識(shí)別,因此需要先對(duì)這些串行二進(jìn)制碼進(jìn)行解碼。本設(shè)計(jì)采用的是軟件解碼方式對(duì)接收到的紅外信號(hào)進(jìn)行解碼。
3.1 紅外遙控器發(fā)射編碼簡(jiǎn)介
目前應(yīng)用中的各種紅外遙控系統(tǒng)的原理都大同小異,區(qū)別只是在于各系統(tǒng)的信號(hào)編碼格式不同。遙控器所產(chǎn)生的脈沖編碼的格式一般為:
其中,引導(dǎo)脈沖為寬度是10 ms左右的一個(gè)高脈沖和一個(gè)低脈沖的組合,用來(lái)標(biāo)識(shí)指令碼的開(kāi)始。識(shí)別碼、鍵碼、鍵碼的反碼均為數(shù)據(jù)編碼脈沖,用二進(jìn)制數(shù)表示。“O”和“1”均由毫秒量級(jí)的高低脈沖的組合代表識(shí)別碼(即用戶碼)是對(duì)每個(gè)遙控系統(tǒng)的標(biāo)識(shí)。當(dāng)指令鍵按下時(shí),指令信號(hào)產(chǎn)生電路便產(chǎn)生脈沖編碼。鍵碼后面一般還要有鍵碼的校驗(yàn)碼,用來(lái)檢驗(yàn)鍵碼接收的正確性,防止誤動(dòng)作,增強(qiáng)系統(tǒng)的可靠性。
3.2存儲(chǔ)編碼程序設(shè)計(jì)
當(dāng)按下“記憶”按鍵S1時(shí),單片機(jī)進(jìn)入存儲(chǔ)記憶紅外遙控編碼的狀態(tài)。ATmega8L單片機(jī)首先關(guān)閉中斷,等待遙控器發(fā)出的紅外遙控編碼輸入。當(dāng)紅外遙控編碼輸入后,單片機(jī)將其保存至E2PROM中。這樣,即使斷電之后,單片機(jī)存儲(chǔ)在E2PROM中的信息也不會(huì)丟失,可以保證斷電后的正常使用。存儲(chǔ)紅外信號(hào)的編碼程序流程圖如圖4所示。本文引用地址:http://www.ex-cimer.com/article/162805.htm
3.3 軟件解碼程序設(shè)計(jì)
軟件解碼則由ATmega8L單片機(jī)的外部中斷、定時(shí)器以及軟件構(gòu)成一個(gè)紅外遙控接收系統(tǒng)。定時(shí)器用于延時(shí)測(cè)量?jī)蓚€(gè)脈沖串之間的間隔。外部中斷用于當(dāng)接收到紅外脈沖信號(hào)時(shí)觸發(fā)定時(shí)器進(jìn)行數(shù)據(jù)接收。當(dāng)紅外接收管接收到紅外脈沖時(shí),程序首先出發(fā)外部中斷,由外部中斷啟動(dòng)定時(shí)器,每個(gè)一段時(shí)間間隔就采樣一次,并將采樣到的紅外脈沖編碼保存到RAM變量中,然后與存儲(chǔ)編碼程序中所保存的編碼進(jìn)行比較,當(dāng)
兩者相同時(shí)則認(rèn)為是按下了開(kāi)關(guān)按鍵,進(jìn)行相應(yīng)的開(kāi)關(guān)操作,否則程序不執(zhí)行開(kāi)關(guān)操作。軟件解碼程序的流程圖如圖5所示。
4 結(jié)語(yǔ)
目前的家用電器,如電視機(jī)、VCD、DVD和功放機(jī)等一般都配備了遙控器及智能化控制技術(shù),給人們的使用帶來(lái)了極大的方便。隨之而來(lái)的小家電如電燈的控制也在向自動(dòng)化、智能化操作方面發(fā)展,這樣才能滿足人們的生活需求。智能紅外遙控開(kāi)關(guān)充分利用了現(xiàn)在家用電器繁多的遙控器,實(shí)現(xiàn)了遙控器的功能復(fù)用,而且在軟件解碼紅外遙控系統(tǒng)中,解碼的核心是CPU,電路極為簡(jiǎn)單無(wú)須外圍器件,體積小,抗干擾能力強(qiáng)。經(jīng)過(guò)實(shí)驗(yàn)多次測(cè)試,該開(kāi)關(guān)可以替換原墻壁開(kāi)關(guān),不用再增加連線,為安裝和使用提供了方便。把原機(jī)械式墻壁換成該遙控開(kāi)關(guān)不僅實(shí)用,也很安全經(jīng)濟(jì)。
評(píng)論