|
本帖最后由 doublelook 于 2013-8-17 15:02 编辑
说明:新增美的空调的协议是根据 型号:R51D/C 的遥控器来解码的。至于美的的其他遥控器能否适用并不清楚,大家可以试试。
下面修改IRremote的库文件
1. 修改IRremoteInt.h 文件,第164行后插入如下代码:
#define MIDEA_HDR_MARK 4500
#define MIDEA_HDR_SPACE 4500
#define MIDEA_BIT_MARK 560
#define MIDEA_ONE_SPACE 1680
#define MIDEA_ZERO_SPACE 560
#define MIDEA_STOP_SPACE 4500
2. 修改IRremote.h 在第101行后插入如下代码:
void sendMIDEA(unsigned long data, int nbits);
3. 修改IRremote.cpp 在第223行后插入如下代码:
void IRsend::sendMIDEA(unsigned long data, int nbits)
{
unsigned long address = 45645;
enableIROut(38);
//leader code
mark(MIDEA_HDR_MARK);
space(MIDEA_HDR_SPACE);
//address code
for (int i = 0; i < 16; i++) {
if (address & 0x8000) {
mark(MIDEA_BIT_MARK);
space(MIDEA_ONE_SPACE);
}
else {
mark(MIDEA_BIT_MARK);
space(MIDEA_ZERO_SPACE);
}
address <<= 1;
}
//data code
for (int i = 0; i < nbits; i++) {
if (data & 0x80000000) {
mark(MIDEA_BIT_MARK);
space(MIDEA_ONE_SPACE);
}
else {
mark(MIDEA_BIT_MARK);
space(MIDEA_ZERO_SPACE);
}
data <<= 1;
}
//stop code
mark(MIDEA_BIT_MARK);
space(MIDEA_STOP_SPACE);
}
修改完后,保存即可。
可以通过如下例子调用:
#include <IRremote.h>
IRsend irsend;
void setup()
{
Serial.begin(9600);
}
void loop() {
irsend.sendMIDEA(0x7B84E01F, 32);
irsend.sendMIDEA(0x7B84E01F, 32);
delay(5000);
}
注: 上面的例子有两行相同的 irsend.sendMIDEA(0x7B84E01F, 32); 这个是因为美的空调(R51D)协议 一次按键重复发两次,所以要执行两次。
例子中的0x7B84E01F 这个是关闭按键的数据码和数据反码的十六进制值,32是表示数据码和数据反码总共32bit
下面说说修改库文件时,几个数值的意思
修改IRremote.cpp 文件时里有 45645,16,0x8000,0x80000000 这几个数值
45645 是地址码的十进制值,它的十六进制值为:B24D
16 是因为地址码总共16 bit
0x8000 这个也是因为地址码总共16 bit的关系,可以将它转成二进制看看,然后体会一下它的作用
0x80000000 这个是因为数据码总共32 bit的关系,也可以将它转成二进制看看,然后体会一下它的作用
后面附上一些遥控器按键的16进制值
关闭 0x7B84E01F
摆风 0x6B94E01F
强劲 0xF50AA25D
清新 0xF50AA35C
数显 0xF50AA55A
风向 0x1FE044BB
开:根据温度不同数据码不同,下面一一列表:
17度 0x1FE008F7
18度 0x1FE018E7
19度 0x1FE038C7
20度 0x1FE028D7
21度 0x1FE06897
22度 0x1FE07887
23度 0x1FE058A7
24度 0x1FE048B7
25度 0x1FE0C837
26度 0x1FE0D827
27度 0x1FE09867
28度 0x1FE08877
29度 0x1FE0A857
30度 0x1FE0B847
因为我的空调没有显示屏,不能验证能否一一对应上,只是试了几个都能听到“滴”的一声响,应该是生效了。 欢迎有显示屏的验证一下。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|