极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 26496|回复: 15

求助 红外遥控,发送无效

[复制链接]
发表于 2013-8-11 11:34:35 | 显示全部楼层 |阅读模式
一个风扇的遥控器.(用机顶盒遥控器,学习后可以控制)
用IR自带的例子得到的数据如上:

Unknown encoding: A32AB931 (32 bits)
Raw (24): -13910 1300 -400 1300 -350 500 -1150 1350 -350 1300 -400 450 -1150 500 -1200 500 -1150 500 -1200 450 -1200 500 -1150 1350

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7150 1250 -450 1200 -450 450 -1200 1250 -450 1200 -450 400 -1250 450 -1200 500 -1200 400 -1250 450 -1250 400 -1250 1250

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7150 1250 -450 1200 -450 400 -1250 1250 -450 1200 -450 400 -1250 450 -1200 450 -1250 400 -1250 450 -1250 400 -1250 1250

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7150 1250 -450 1200 -450 400 -1250 1250 -450 1200 -450 400 -1250 450 -1200 450 -1250 400 -1250 450 -1250 400 -1250 1250

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7150 1250 -450 1200 -450 400 -1250 1250 -450 1200 -450 400 -1250 450 -1200 450 -1250 400 -1250 450 -1250 400 -1250 1250

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7150 1250 -450 1200 -450 400 -1250 1250 -450 1200 -450 400 -1250 400 -1250 450 -1250 400 -1250 450 -1250 400 -1250 1250

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7200 1200 -500 1200 -450 350 -1300 1250 -450 1200 -450 400 -1250 400 -1250 400 -1300 400 -1250 400 -1300 400 -1250 1250
然后用机顶盒遥控器学习功能(可以成功遥控)
抓机顶盒此功能键的数据如下:

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7000 1350 -350 1350 -300 500 -1150 1350 -350 1350 -300 500 -1200 500 -1150 500 -1150 550 -1150 500 -1150 500 -1200 1300

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7050 1350 -350 1350 -300 500 -1200 1300 -350 1350 -300 550 -1150 500 -1150 500 -1200 500 -1200 450 -1150 550 -1150 1350

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7050 1350 -300 1350 -350 400 -1250 1350 -300 1350 -350 500 -1150 500 -1200 500 -1150 500 -1150 500 -1200 500 -1150 1300

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7100 1300 -400 1250 -400 450 -1200 1300 -400 1250 -400 450 -1250 400 -1250 450 -1200 450 -1250 450 -1200 450 -1250 1250

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7150 1250 -400 1300 -400 400 -1250 1250 -400 1300 -400 500 -1150 450 -1250 500 -1150 500 -1150 450 -1250 450 -1200 1300

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7100 1300 -400 1250 -400 450 -1200 1300 -400 1250 -400 450 -1250 400 -1250 450 -1200 450 -1250 450 -1200 450 -1250 1250

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7150 1250 -400 1300 -400 400 -1250 1250 -400 1300 -400 450 -1200 450 -1250 400 -1250 450 -1200 450 -1250 450 -1200 1300

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7150 1250 -450 1250 -400 400 -1250 1250 -450 1250 -400 450 -1250 400 -1250 400 -1250 450 -1250 400 -1250 450 -1250 1250

Unknown encoding: A32AB931 (32 bits)
Raw (24): -7150 1250 -400 1250 -450 400 -1250 1250 -400 1250 -450 400 -1250 400 -1300 400 -1250 400 -1250 450 -1250 400 -1250 1250

可是无论我从audrino发哪一个数值0xA32AB931 或是RAW都无效.
请高手帮我看一下.怎么解决.
备注:买过来的红外发射组件,一直没试成功过.不知道会不会坏了(用摄像头看有红光,发射一次就一直亮着)
回复

使用道具 举报

 楼主| 发表于 2013-8-11 11:38:02 | 显示全部楼层
本帖最后由 37℃画面感 于 2013-8-11 15:59 编辑

附上原代码

  1. #include <IRremote.h>

  2. unsigned int raw0[24] = {-7000,1350,-350,1350,-300,500,-1200,1350,-300,1350,-300,550,-1150,500,-1200,450,-1200,500,-1150,500,-1150,550,-1150,1350};

  3. int code=0xA32AB931;
  4. IRsend irsend;

  5. void setup()
  6. {
  7.   Serial.begin(9600);
  8. }

  9. void loop() {
  10.   if (Serial.read() != -1) {
  11.           Serial.println("send");
  12.     for (int i = 0; i < 50; i++) {
  13.                 //irsend.sendRC6(code, 14); // Sony TV power code
  14.                 Serial.print("s,");
  15.                 irsend.sendRaw(raw0,24,38);
  16.       delay(40);
  17.     }
  18.   }
  19. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2013-8-11 11:55:32 | 显示全部楼层
  1. #include <IRremote.h>

  2. unsigned int raw0[24] = {-7000,1350,-350,1350,-300,500,-1200,1350,-300,1350,-300,550,-1150,500,-1200,450,-1200,500,-1150,500,-1150,550,-1150,1350};

  3. int code=0xA32AB931;
  4. IRsend irsend;

  5. void setup()
  6. {
  7.         Serial.begin(9600);
  8. }

  9. void loop()
  10. {
  11.         if (Serial.read() != -1)
  12.         {
  13.                 Serial.println("send");
  14.                 for (int i = 0; i < 50; i++)
  15.                 {
  16.                         //irsend.sendRC6(code, 14); // Sony TV power code
  17.                         Serial.print("s,");
  18.                         for (int n=0; n<sizeof(raw0)/2; n++)
  19.                         {
  20.                                 raw0[n]&= (~0x8000);
  21.                         }
  22.                         irsend.sendRaw(raw0,24,38);
  23.                         delay(40);
  24.                 }
  25.         }
  26. }
复制代码
试试这个
回复 支持 反对

使用道具 举报

发表于 2013-8-11 13:47:30 | 显示全部楼层
第一個-7000放到最後?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-11 15:52:00 | 显示全部楼层
pathletboy 发表于 2013-8-11 11:55
试试这个

试了,还是不行.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-11 15:52:17 | 显示全部楼层
Be1ieve 发表于 2013-8-11 13:47
第一個-7000放到最後?

这个也不行.
回复 支持 反对

使用道具 举报

发表于 2013-8-11 16:16:57 | 显示全部楼层
37℃画面感 发表于 2013-8-11 15:52
试了,还是不行.

手工把你数组里的“负号”替换掉,再用你原来的代码试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-11 17:07:25 | 显示全部楼层
pathletboy 发表于 2013-8-11 16:16
手工把你数组里的“负号”替换掉,再用你原来的代码试试。
  1. #include <IRremote.h>

  2. unsigned int raw0[24] = {7000,1350,350,1350,300,500,1200,1350,300,1350,300,550,1150,500,1200,450,1200,500,1150,500,1150,550,1150,1350};

  3. int code=0xA32AB931;
  4. IRsend irsend;

  5. void setup()
  6. {
  7.   Serial.begin(9600);
  8. }

  9. void loop() {
  10.   if (Serial.read() != -1) {
  11.           Serial.println("send");
  12.     for (int i = 0; i < 5; i++) {
  13.                 //rsend.sendSony(code, 24); // Sony TV power code
  14.                 Serial.print("s,");
  15.                 /*for (int n=0;n<sizeof(raw0)/2;n++)
  16.                 {
  17.                         raw0[n]&=(~0x8000);
  18.                 }*/
  19.                 irsend.sendRaw(raw0,24,38);
  20.       delay(40);
  21.     }
  22.   }
  23. }
复制代码


还是不行
回复 支持 反对

使用道具 举报

发表于 2013-8-11 18:41:42 | 显示全部楼层
去掉負數然後7000往後?
我抓空調的結果是這樣的
回复 支持 反对

使用道具 举报

发表于 2013-8-12 09:54:10 | 显示全部楼层
Unknown encoding一般都比较难的,看看这个吧http://www.geek-workshop.com/for ... thread&tid=5095
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-12 10:45:52 | 显示全部楼层
Ansifa 发表于 2013-8-12 09:54
Unknown encoding一般都比较难的,看看这个吧http://www.geek-workshop.com/forum.php?mod=viewthread&tid= ...

除了这种方式没有别的办法了? 我一直想测试一下我的红外发射器是不是有问题,因为之前弄电视也没成功,是夏谱的电视,解出也也是unknow encoding
回复 支持 反对

使用道具 举报

发表于 2013-8-12 11:27:24 | 显示全部楼层
Unkown是因为没有对应编码,你“必须”找到原始码,并发送原始码才可以。

怎么操作,论坛里好多人都写了例子了,你多搜索下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-12 13:00:05 | 显示全部楼层
瘦网虫 发表于 2013-8-12 11:27
Unkown是因为没有对应编码,你“必须”找到原始码,并发送原始码才可以。

怎么操作,论坛里好多人都写了 ...

太好了,你在啊.看了你的贴子了,没怎么弄明白.能给个链接吗?另外,是不是用"逻辑分析仪"可以比较容易的找出来.我在淘宝上看了,那个都要2-300的 你那个35的是哪个,有木有连接,给我一个.谢谢.
回复 支持 反对

使用道具 举报

发表于 2013-8-12 15:58:39 | 显示全部楼层
楼上的,按价格从低到高排序,瞬间就出来了。
回复 支持 反对

使用道具 举报

发表于 2013-8-12 16:00:09 | 显示全部楼层
http://www.geek-workshop.com/thread-3084-1-1.html

你把我的几个帖子顺序看完,

仔细看!!

肯定可以解决问题的。
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 15:01 , Processed in 0.051752 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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