红外遥控器的解码

2020-01-22 12:01发布

红外遥控器的解码
实测距离10米时不会错误或需要重复按遥控器 (*^__^*) ……


接收头 (原文件名:接收头.jpg.jpg)


正确解码 (原文件名:20110103426.jpg)
第一行显示的是:地址码+地址码+操作码+操作码反码  接受数据正确时第二行显示OK  旁边的数字是连_发次数


错误解码 (原文件名:20110103427.jpg)
第一行显示的是:地址码+地址码+操作码+操作码反码  接受数据错误时第二行显示error  旁边的数字是连_发次数


51开发板配的万能遥控器 (原文件名:20110103428.jpg)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
97条回答
xiaowei0588
1楼-- · 2020-01-24 05:55
很好!
pan90
2楼-- · 2020-01-24 08:05
mark
beijisnow
3楼-- · 2020-01-24 12:13
回复【1楼】qq335702318 | 昌少
-----------------------------------------------------------------------
楼主你好

#define IR_L_timer_min 3 //数据0 最短时长
#define IR_L_timer_max 7 //数据0 最长时长
#define IR_H_timer_min 8 //数据1 最短时长
#define IR_H_timer_max 12 //数据1 最长时长

关于时长的定义是否太宽松了?
0:  4-6
1:  9-11
这样是否跟精确呢?



(原文件名:Untitled.jpg)
qq335702318
4楼-- · 2020-01-24 15:11
回复【21楼】beijisnow
-----------------------------------------------------------------------
程序里面,关于这个时长的比较是没有使用>=或<=的。因此如果定为0:  4~6;   1:  9~11时实际相当于0: 5;   1: 10;
实际上范围是0:  5±1;       1:  10±1

   .......

     if((IR_time>IR_L_timer_min)&(IR_time<IR_L_timer_max)) //数据“0” 0.56ms低电平+0.56ms高电平
   .......
else if((IR_time>IR_H_timer_min)&(IR_time<IR_H_timer_max)) //数据“1” 0.56ms低电平+1.69ms高电平
   .......
outt60777
5楼-- · 2020-01-24 15:33
 精彩回答 2  元偷偷看……
tyqhaha
6楼-- · 2020-01-24 20:46
用的什么片子?

一周热门 更多>