一、空調(diào)紅外控制原理
空調(diào)遙控器是通過發(fā)射斷斷續(xù)續(xù)的紅外光來傳遞信息的,我們可以把發(fā)射的時候看做是“1”,沒發(fā)射的時候看做是“0”,這樣的話發(fā)射出去的信號就可以轉(zhuǎn)充當一組通訊的數(shù)據(jù),不同的按鍵以不同的編碼方式發(fā)射。當空調(diào)接收到這些紅外光后按照制定好的規(guī)則解碼就可以知道遙控發(fā)送的什么命令,從而執(zhí)行相應的操作。
同一個品牌的空調(diào),它們的編碼規(guī)則都是一致的,所以我們只要找到它們紅外發(fā)射的編碼規(guī)則,就可以模擬這個信號來控制這個品牌的所有空調(diào)。
二、解碼原理
要想破解編碼規(guī)則,首先要用紅外接收管接收空調(diào)發(fā)出來的紅外信號,然后用示波器去觀察這個信號??照{(diào)紅外編碼一般最前面會有至少一個引導碼,是由一個特定時間的低電平和高電平組成的,不知道的同學可以去查一下NEC規(guī)則。然后緊接著的就是要傳輸?shù)臄?shù)據(jù),一般數(shù)據(jù)“0”和“1”也是由一個低電平+一個高電平組成,只是電平的時間不一樣,不同品牌的空調(diào),“0”和“1”高低電平的時間也有差別。好了,知道這些信息之后,就可以用單片機去捕獲這些電平了,通過采集每一個電平持續(xù)的時間就可以知道傳輸數(shù)據(jù)的是“0”還是“1”,然后通過串口打印出來就可以得到完整的一幀數(shù)據(jù)。然后通過改變某一個變量測量多組數(shù)據(jù),找出變化那部分的規(guī)律就可以推出編碼規(guī)則了。
三、電平規(guī)則
第1個引導碼:低電平約30ms,高電平約50ms
第2個引導碼:低電平3-3.5ms,高電平1.5-2ms
數(shù)據(jù)0:低電平350-400us,高電平約450us
數(shù)據(jù)1:低電平350-400us,高電平約1300us
注:這些電平的持續(xù)時間是有一定的容錯空間的,所以不一定要嚴格按照這個值來發(fā)射紅外信號,如果你發(fā)現(xiàn)按這些值不能控制空調(diào),可以在這個值的基礎上進行邊緣修正,多嘗試,總能找到合適的值。
四、編碼規(guī)則
狀態(tài):關機->制冷/制熱/除濕:1000
制冷/制熱/除濕->關機:0100
風速切換:0011
溫度加:0001
溫度減:1001
PS:一般的空調(diào)都沒有這個狀態(tài)位,直接用一個開關機位就行了,不知道搞這個有什么意義
模式:制熱110 制冷001 除濕101
風速:微110 弱001 強101 自動100
溫度:(溫度-16)(逆序)
如:24度 = (24 - 16)(逆序) = 1000(逆序)= 0001
開關:開1 關0
校驗 = [ 56(即7左移4位)- 溫度逆序值*2 - 模式逆序 - 風速逆序 - 狀態(tài)逆序 + 開關取反左移8位 ](逆序)
如:關機 -> 制冷17度 風速自動
校驗 = [ 56 - 2 - 4 - 1 - 1 + 0 ](逆序)= 48(逆序)=(00110000)(逆序)= 00001100
制冷17度 風速自動 -> 關機
校驗 = [ 56 - 2 - 4 - 1 - 2 + 128 ](逆序)= 175(逆序)=(10101111)(逆序)=11110101
PS:這個校驗的公式可能不止一種,我推出來的這個不一定是原廠的公式,你們有興趣可以去研究一下。
注:定時開機、定時關機和睡眠這些在我的項目中不需要用到,所以沒有去找規(guī)律,定時開關機按照我的經(jīng)驗應該是分別用8個位表示的,很可能是在校驗前面這一部分,感興趣的同學可以按照我這個方法去找一下。除了校驗碼剩下的應該都比較好找規(guī)律,至于校驗…呵呵…這校驗我花了我不少時間才破解了,因為有一個古怪的狀態(tài)位,不過我現(xiàn)在把前面的校驗規(guī)則推出來了,后面再加上定時開關機應該不難。
好了,關于日立空調(diào)碼值就講到這里,如果還有什么問題,可以留言給我,如果文章有誤,請一定要指出來,如果這篇博文正好幫助到你,可以給我點個贊,謝謝!??!