arduino红外控制格力空调问题
#include <IRremote.h> // 引用 IRRemote 函式库unsigned int rawCodes_ac_open = {8850,4450,650,550,600,1650,600,600,600,1650,650,1650,650,500,650,550,650,550,600,600,600,1650,650,1650,600,1650,600,600,650,550,600,550,650,550,600,600,600,600,600,550,650,550,650,550,600,1650,650,550,600,600,600,600,600,550,650,550,650,550,600,1650,650,550,600,1700,600,550,650,550,600,1700,600,550,650,23458};
IRsend irsend; // 定义 IRsend 物件来发射红外线讯号
void setup()
{
Serial.begin(9600);
pinMode(3, OUTPUT);
digitalWrite(3, HIGH); // 点亮LED测试(需通过手机摄像模式观察)
delay(3000); // 等待3秒
digitalWrite(3, LOW); // 结束测试
}
void loop()
{
Serial.print("SendIR: ");
//irsend.sendRaw(rawCodes_ac_open,74, 32); // 记得换成你遥控器的红外线编码
delay(3000);
}
程序已参照http://www.geek-workshop.com/thread-5001-1-1.html实验过,依旧是格力空调没有任何反应,空调的型号的是YBOF2 楼主可以看看这个帖子:
使用IRremote库红外遥控家里的电器http://www.arduino.cn/thread-3618-1-1.html 玩IR建议先从解析对应遥控器的红外协议开始
你可以先搭建一个解析遥控的平台 把数据解出来
其实空调遥控不同于电视机等设备, 电视是单数据发送(即只发送被按下键的代码)
空调发送的是状态(就是所有的状态信息 )不管你按下哪个按钮 都会发送所有按键的状态(温度 上下风 左右摆 风速 睡眠 节能 定时 模式 指示灯 等等状态信息)
解析了这个型号的IR代码 就容易多了~ pinMode(3, OUTPUT);
digitalWrite(3, HIGH); // 点亮LED测试(需通过手机摄像模式观察)
delay(3000); // 等待3秒
digitalWrite(3, LOW); // 结束测试
上面这段代码不需要。
然后把这段改一下:
//irsend.sendRaw(rawCodes_ac_open,74, 32); // 记得换成你遥控器的红外线编码
改成:
irsend.sendRaw(rawCodes_ac_open,74, 32); // 记得换成你遥控器的红外线编码
注:你的原代码主要问题是没有把信号发送出去,所以空调肯定是没反应哈! xiaoesky 发表于 2014-6-11 10:02 static/image/common/back.gif
pinMode(3, OUTPUT);
digitalWrite(3, HIGH); // 点亮LED测试(需通过手机摄像模式观察)
delay ...
不是的,我程序代码里是没有注释这句话的
啷哩个铛 发表于 2014-6-11 02:06 static/image/common/back.gif
楼主可以看看这个帖子:
使用IRremote库红外遥控家里的电器http://www.arduino.cn/thread-3618-1-1.html
#include <IRremote.h>
int RECV_PIN = 11;//定义红外接收器的引脚为11
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // 初始化红外接收器
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);//以16进制换行输出接收代码
Serial.println();//为了便于观看输出结果增加一个空行
irrecv.resume(); // 接收下一个值
}
}
您发的链接帖子,我看了,我照着改了,但是接收到的还是74个编码,然后我用上述代码做了一个红外接收程序,发现:板子发射的编码,跟我按遥控接收到的编码不一样 问下,你的编码或数组是自己拿着遥控器对着接收头测的,还是在网上找的码组或者? strdnly 发表于 2014-6-11 18:07 static/image/common/back.gif
问下,你的编码或数组是自己拿着遥控器对着接收头测的,还是在网上找的码组或者?
自己拿遥控器对着街头测得 void IRsend::sendRaw(unsigned int buf[], int len, int hz),最后的定义是发送的频率,通常是38或40请试一下. 后知后觉 发表于 2014-6-12 09:04 static/image/common/back.gif
自己拿遥控器对着街头测得
哦,那看来要自己做着玩还可以,要想做成产品的话,还得下点功夫啊。。。。 我的格力开机是199位原始码,不知道不同型号有没有区别,感觉74位太少了。 会不会是这个发射头的问题啊?我看原帖子上用的是三根线的那种,是不是带功率放大的?
页:
[1]