林定祥 发表于 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=
      {
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频率的码。

用这种方法估计可以胜任任何遥控器。
页: [1]
查看完整版本: 红外转发心得