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