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