格力空調紅外編碼解析

使用紅外遙控空調,就必須先了解紅外遙控的原理,數據的定義等。本博客解析了空調的最基本的功能的紅外編碼,包括:開關,溫度,定時,風速,掃風,校驗碼。其他的功能因爲空調型號不同而差別較大,所以暫時不作解析。同時,空調大部分時間工作在製冷模式下,其他模式下的編碼也暫時未解析。

一,紅外遙控原理

二,實驗波形

本實驗是基於格力空調的紅外數據
一幀紅外編碼數據的組成如下:
起始碼+35位數據+連接碼+32位數據+結束碼
在這裏插入圖片描述其中多次測量得出:

起始碼:9000us 低電平 + 4500us高電平;
連接碼:646us低電平 + 20000us高電平;
結束碼:646us低電平 + 高電平;

數據0:646us低電平 + 516us高電平;
數據1:646us低電平 + 1643us高電平;

數據碼中的0和1,經過多次的測量,取衆數作爲依據,實驗數據如下:

在這裏插入圖片描述

三,紅外編碼解析

知道了一幀紅外數據的0和1的表示,我們就可以自由的組成一幀數據。接下來需要了解的是在一幀數據中,數據位中的每一個bit代表的意思。
這裏以25℃,製冷模式,低風速,無掃風,打開,定時時間爲0的一幀數據爲例子:

第一段數據:

開關:bit3;

0:關閉;1:開啓

風速:bit4,bit5;

自動風速:00
一級風速:10
二級風速:01
三級風速:11

掃風開關:bit6,以及第二段bit0;

0:關閉;1:開啓

溫度:bit8,bit9,bit10,bit11;

16℃: 0000
17℃: 1000
18℃: 0100
19℃: 1100
20℃: 0010
21℃: 1010
22℃: 0110
23℃: 1110
24℃: 0001
25℃: 1001
26℃: 0101
27℃: 1101
28℃: 0011

定時分鐘數:bit12,bit13,bit14;

由於我的手機只能發送定時半小時爲最小單位的定時時間,所以只有定時30分鐘的數據

30min: 100

bit15 定時開關;

0:關閉;1:開啓

定時小時數:bit16,bit17,bit18,bit19;

一小時:1000
兩小時:0100
三小時:1100

在這裏插入圖片描述

第二段數據:

第二段數據比較簡單,需要注意的就是bit0是掃風的開關,她與第一段數據中的bit6是一樣的數值。另外是後四位bit28,bit29,bit30,bit31組成的校驗碼。
網上也有許多關於校驗碼的公式,但是我試了後發現並不適用,於是自己嘗試出了一條公式:
校驗碼 = 溫度 - 18 + 定時小時數 + 空調開關 × 8;
例如以上例子的校驗碼是:25 - 18 + 0 + 1× 8 = 15 = 0xf;
在這裏插入圖片描述

四,小結

紅外遙控的實現大同小異,最好還是要自己有測試的設備進行代碼的測試。紅外接收管和邏輯分析儀是你的不二選擇。

友情連接:
esp32實現紅外發射與接收

作者才疏學淺,難免有錯誤,希望指正。如果文章對你有幫助,幫忙點個讚唄。
在這裏插入圖片描述