极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 26170|回复: 13

格力空调红外控制的问题

[复制链接]
发表于 2013-3-4 23:09:59 | 显示全部楼层 |阅读模式
本帖最后由 星逝々 于 2013-3-5 12:53 编辑

求教一个问题,我用IRremote库自带的IRecvDump例子,获得到格力空调遥控器的开机键的红外编码,如下所示:
Decoded NEC: 3010040A (32 bits)
Raw (74): 764 8950 -4350 750 -500 700 -500 700 -1550 700 -1550 700 -550 700 -450 750 -450 700 -500 700 -500 700 -500 700 -500 700 -1550 700 -500 700 -500 700 -500 700 -500 700 -500 700 -450 750 -500 700 -450 750 -450 700 -1600 700 -500 700 -500 700 -450 800 -450 650 -500 750 -450 700 -1600 700 -500 700 -1550 700 -500 700 -500 700 -1550 700 -500 700 ,
然后我再写irsend.sendNEC(0x3010040A, 32);无论如何都是不能控制空调打开,这是为什么啊?用同样的方法我已经控制机顶盒成功了,就是不能控制家里的格力空调,求助!
PS:码没有错,读取了N次了,每次都是3010040A
回复

使用道具 举报

 楼主| 发表于 2013-3-5 00:17:52 | 显示全部楼层
unsigned int rawCodes_num9[74] = {-19190,8950,-4350,700,-500,700,-550,650,-500,700,-1600,700,-450,750,-500,650,-550,650,-500,700,-1600,700,-500,700,-500,650,-1600,700,-500,700,-500,700,-500,700,-500,700,-500,700,-500,650,-500,700,-500,700,-500,700,-1600,650,-550,650,-500,700,-550,650,-500,700,-500,700,-500,700,-1600,650,-500,700,-1600,700,-500,700,-500,700,-1550,750,-500,650};
   irsend.sendRaw(rawCodes_num9, 74, 38);

这个也不行
回复 支持 反对

使用道具 举报

发表于 2013-3-5 00:35:01 | 显示全部楼层
irsend.sendNEC(0x3010040A, 32);
回复 支持 反对

使用道具 举报

发表于 2013-3-5 08:39:14 | 显示全部楼层
星逝々 发表于 2013-3-5 00:17
unsigned int rawCodes_num9[74] = {-19190,8950,-4350,700,-500,700,-550,650,-500,700,-1600,700,-450,75 ...

这个肯定不行,这个发送的格式不是你解码出来的格式。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-5 09:24:05 | 显示全部楼层
wasdpkj 发表于 2013-3-5 00:35
irsend.sendNEC(0x3010040A, 32);

irsend.sendNEC(0x3010040A, 32);我写了个for循环,从1~100bits都试过了,都是不行,最开始试验的就是32,后来改成35,再后来写了个循环
回复 支持 反对

使用道具 举报

发表于 2013-3-5 14:40:15 | 显示全部楼层
有个办法肯定行
使用raw方式发送原始数据。

就是把接受方法里的所有解码部分去掉,只留最后的raw的那一部分。
发送同样使用原始方式发送。
回复 支持 反对

使用道具 举报

发表于 2013-3-5 14:42:04 | 显示全部楼层
  1. #include <IRremote.h>

  2. int RECV_PIN = 11;
  3. int BUTTON_PIN = 12;
  4. IRrecv irrecv(RECV_PIN);
  5. IRsend irsend;

  6. decode_results results;

  7. void setup()
  8. {
  9.   Serial.begin(9600);
  10.   irrecv.enableIRIn();
  11.   pinMode(BUTTON_PIN, INPUT);
  12. }

  13. unsigned int rawCodes[RAWBUF];
  14. int codeLen;

  15. void storeCode(decode_results *results) {
  16.   int count = results->rawlen;
  17.   codeLen = results->rawlen - 1;
  18.   for (int i = 1; i <= codeLen; i++) {
  19.     if (i % 2)
  20.       rawCodes[i - 1] = results->rawbuf[i]*USECPERTICK - MARK_EXCESS;
  21.     else {
  22.       rawCodes[i - 1] = results->rawbuf[i]*USECPERTICK + MARK_EXCESS;
  23.       Serial.print(rawCodes[i - 1]<450?"0":"1");
  24.     }
  25.   }
  26.   
  27.   
  28.   Serial.println(codeLen,DEC);
  29.   Serial.println("");
  30.   //处理逻辑
  31.   //处理逻辑
  32. }

  33. void sendCode() {
  34.   irsend.sendRaw(rawCodes, codeLen, 38);
  35. }

  36. void loop() {
  37.   if (digitalRead(BUTTON_PIN)) {
  38.     sendCode();
  39.     delay(50); // Wait a bit between retransmissions
  40.     irrecv.enableIRIn();
  41.   }
  42.   else if (irrecv.decode(&results)) {
  43.     storeCode(&results);
  44.     irrecv.resume(); // resume receiver
  45.   }
  46.   
  47. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-5 15:20:20 | 显示全部楼层
Damn_intuition 发表于 2013-3-5 14:42

我回去试试,谢谢先
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-5 15:26:55 | 显示全部楼层
翻了一些资料,对比了下隔离空调遥控的编码,好像格力的编码方式和标准的NEC编码不一样,脉冲卖是时间不一样好像
回复 支持 反对

使用道具 举报

发表于 2013-3-5 16:12:09 | 显示全部楼层
星逝々 发表于 2013-3-5 15:26
翻了一些资料,对比了下隔离空调遥控的编码,好像格力的编码方式和标准的NEC编码不一样,脉冲卖是时间不一样 ...

是的,很多设备只能采用raw方式。
回复 支持 反对

使用道具 举报

发表于 2013-3-31 11:12:32 | 显示全部楼层
Damn_intuition 发表于 2013-3-5 14:42

这个有谁试过了?我试了好象不行,不知那里出问题了,我也是格力空调的
回复 支持 反对

使用道具 举报

发表于 2013-4-5 16:16:54 | 显示全部楼层
星逝々 发表于 2013-3-5 15:26
翻了一些资料,对比了下隔离空调遥控的编码,好像格力的编码方式和标准的NEC编码不一样,脉冲卖是时间不一样 ...

试成功了吗?
回复 支持 反对

使用道具 举报

发表于 2013-8-17 10:41:43 | 显示全部楼层
我也是不行呢。。
只能用逻辑分析仪dump出代码么
回复 支持 反对

使用道具 举报

发表于 2013-9-14 19:11:19 | 显示全部楼层
32位的不行,只能是原始数据了,你把所有的负号变正,把第一个放到最后就可以了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 01:40 , Processed in 0.053925 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表