Cubic Zone

TCL空调遥控器编码解析

TCL空调遥控器编码解析 (GYKQ-47)

注意:如下所述的高低电平指的是红外 LED 的供电(即高电平时红外 LED 发射红外线),并非接收芯片输出引脚的电平。

TCL空调遥控器采用的是自己的编码,38k红外载波调制(应该是,就算不是也相差不大)。引导码为 3100us 的高电平 + 1600us 的低电平。500us 高电平 + 1100us 低电平表示逻辑 1, 500us 高电平 + 350us 低电平表示逻辑 0。字节序是大端序,位序是小端序(很奇怪啊!)。

下面是一个解码的示例:

   +  3082, -  1640,    +   516, -  1106,    +   494, -  1110,    +   514, -   308, 
   +   518, -   362,    +   488, -   364,    +   490, -  1104,    +   492, -   362, 
   +   492, -   358,    +   496, -  1106,    +   516, -  1102,    +   472, -   402, 
   +   474, -  1108,    +   496, -   352,    +   496, -   364,    +   490, -  1104, 
   +   516, -  1132     ......

第一段数据 + 3082, - 1640 是引导码,其后是数据。先用上述提到的电平间隔和逻辑位的对应关系,得到二进制串:

11000100 11010011

将位序转换为大端序

00100011 11001011 

再转换为十六进制得到

23 CB

得到的是编码中固定头部数据的一部分

00 01 02 03 04 05 06 07 08 09 10 11 12 13
0x23 0xcb 0x26 0x01 0x00 开关、省电、灯光[1] 模式、健康、强力[2] 温度[3] 风速、垂直摆风[4] 定时[5] 0x00 0x00 半度、水平摆风[6] 校验码[7]

下列位数均为从 0 开始编码,若无特殊说明只有二值的功能均为 0 关闭,1 打开

[1] 开关: 第 5 位;省电:第 0 位;面板灯光:第 1 位

[2] 模式:4-7 位,取值如下 8:自动, 3:制冷, 2:除湿, 7:吹风, 1:制热;健康:第 3 位;强力:第 1 位

[3] 温度范围为 16-31 度,从 31~16 分别对应该字节 0x00~0x0F

[4] 风速:5-7位,取值如下 自动:0, 低:2, 中:3, 高:5, 睡眠:1(对应睡眠按键);垂直摆风:2-4位,一般全部设为1为开启,一些型号可能有挡位区别。

[5] 定时时间范围为 0.5~6.0 小时,每 0.5 小时为一档。0.5~6.0 取值对应 0x03~0x24,每增加 0.5 小时增加 0x03。0x00 为取消定时。若一同发送的开关状态为开则为定时关机,否则为定时开机。

[6] 半度:第 2 位,若为 1 则当前温度为温度数值 +0.5;水平摆风:第 4 位

[7] 其余所有数据之和对 0x100 取余(即只保留结果的最低两位),得到一个 byte 即为校验码

References

IRremoteESP8266/ir_Tcl.h at master · crankyoldgit/IRremoteESP8266