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