自學(xué)習(xí)紅外遙控器的設(shè)計(jì)與實(shí)現(xiàn)
給出了自學(xué)習(xí)紅外遙控器的一種設(shè)計(jì),采用測(cè)量脈沖寬度的原理,適用于大多數(shù)電子產(chǎn)品的遙控器。介紹了轉(zhuǎn)發(fā)紅外信號(hào)的方法。
關(guān)鍵詞:紅外遙控,單片機(jī),紅外信號(hào)
紅外遙控在家電產(chǎn)品中有廣泛應(yīng)用,但各產(chǎn)品的遙控器不能相互兼容,目前市面上常見(jiàn)的萬(wàn)能遙控器只能對(duì)某幾種產(chǎn)品進(jìn)行控制,不是真正的“萬(wàn)能”。本文利用單片機(jī)對(duì)遙控器的發(fā)射信號(hào)的波形進(jìn)行測(cè)量,然后將測(cè)量的數(shù)據(jù)回放,由于只關(guān)心發(fā)射信號(hào)波形中的高低電平的寬度,不管其如何編碼,因此做到了真正的“萬(wàn)能”。
1 發(fā)射信號(hào)波形的測(cè)量
所有紅外遙控器的輸出都是用編碼后的串行數(shù)據(jù)對(duì)38kHz~40kHz的方波進(jìn)行脈沖幅度調(diào)制而產(chǎn)生的。如果直接對(duì)已調(diào)波進(jìn)行測(cè)量,而其脈寬只有20多微秒,由于單片機(jī)的指令周期是微秒級(jí),會(huì)產(chǎn)生很大的誤差。因此,先要對(duì)已調(diào)波進(jìn)行解調(diào),對(duì)解調(diào)后的波形進(jìn)行測(cè)量。
用CX20106對(duì)已調(diào)波進(jìn)行解調(diào),原理圖如圖1所示。
將CX20106解調(diào)出的遙控編碼脈沖直接連入8751單片機(jī)的和T0腳,定時(shí)器T0和T1都初始化為定時(shí)工作方式1,T0的GATE位置位。每次外部中斷首先停止定時(shí),記錄T0、T1的計(jì)數(shù)值,然后將T0、T1的計(jì)數(shù)值清零,并重新啟動(dòng)定時(shí)。T0的值即為高電平脈寬,T1~T0的值為低電平脈寬。T0、T1與紅外編碼信號(hào)脈寬的對(duì)應(yīng)關(guān)系如圖2所示。
測(cè)量波形的外部中斷服務(wù)程序的流程如圖3所示。
測(cè)量波形的外部中斷服務(wù)程序如下:
2 測(cè)量數(shù)據(jù)的回放
只需用所測(cè)數(shù)據(jù)周期性地改變P1.0,就可以得到原來(lái)的遙控編碼脈沖,流程如圖4所示。
3 產(chǎn)生遙控發(fā)射信號(hào)
用遙控脈沖信號(hào)調(diào)制38 kHz方波,然后將已調(diào)波放大,驅(qū)動(dòng)紅外發(fā)光二極管,就可以得到遙控發(fā)射信號(hào)。調(diào)制可用一個(gè)或門實(shí)現(xiàn),38 kHz方波可用8751的定時(shí)器T1產(chǎn)生。如圖5所示。
有些遙控器的載頻可能是40 kHz,只須稍微加大發(fā)射功率仍然可用38 kHz載頻使其接收電路動(dòng)作。
4 其他輔助電路
要制作一個(gè)實(shí)用的可學(xué)習(xí)遙控器還必須定義功能鍵,由于測(cè)量數(shù)據(jù)比較多,還需要擴(kuò)展外部RAM,限于篇幅,這里不再贅述。筆者已對(duì)目前市面上常見(jiàn)品牌的彩電、影碟機(jī)、錄像機(jī)、投影儀、空調(diào)器等進(jìn)行過(guò)實(shí)驗(yàn),均實(shí)現(xiàn)了準(zhǔn)確的接收和轉(zhuǎn)發(fā)。