极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9681|回复: 0

红外转发心得

[复制链接]
发表于 2014-4-14 09:12:27 | 显示全部楼层 |阅读模式
坛子里有很多关于红外遥控的教材,具体在使用时还是遇到问题,当然也有提及的,我的红外转发弄了两周,还是在坛友的启发咸菜试验成功的.这里还是再将解决方法复述下供坛友参考.
1、下载IRremote库,将其解压至libraries下,
2、随库有案例,先用IRecvDump,用COM调试口读出遥控器的按钮值;
3、试过好几个遥控器,并不像案例说的那么乐观,我收到的几乎都是“Unknown encoding:”,后随0x******(32bit);
4、按理解8位16进制数应该是NEC码,但是不能遥控成功;
5、在坛友的启发下改用irsend.sendRaw(rawCodes,48,38)语句,转发成功,做法是
    IRecvDump中读按钮值中随之有RAW值,括号里表示码长,
    将这串值考到程序中,做一个数组如:
    unsigned int rawCodes[48]=
        {
  650, 1900, 600, 1900, 1850, 650, 1900, 600, 650, 1850, 650, 1850, 1900, 600,1900, 650,
  600, 1850, 650, 1850, 1900, 650, 1850, 650, 1850, 650, 600, 1900, 1850, 650, 600, 1900,
  600, 1900, 600, 1900, 1850, 650, 1850, 650, 1850, 650, 600, 1900, 1850, 650, 600, 28354,
        };//rawCodes是数组名,方括号中表示数组长度,将考过来的第一个数从头上换到尾上,同时将数组中可能出现的负号删去,并在数据间隔间用逗号分隔,整理好的数组就是上面这个样;
在loop中调用
      irsend.sendRaw(rawCodes,48,38);
      delay(100);
      irsend.sendRaw语句中的rawCodes就是数组,48是数组的长度,38是红外发射的频率,表示发38Khz频率的码。

用这种方法估计可以胜任任何遥控器。
回复

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 01:01 , Processed in 0.032743 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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