OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 关于红外解码和遥控音量的困惑

共8条 1/1 1 跳转至

关于红外解码和遥控音量的困惑

专家
2015-04-26 22:25:04    评分

首先本人不会编程,自学了许久还是不得要领。对于红外遥控解码也是一窍不通,只有采用笨办法,拿来别人的程序照葫芦画瓢,

于是先从单片机教程里找来一个红外遥控解码程序,通过串口获取键码的。暂且称为程序一

后来看到本论坛DIY功放活动中有ayin楼主发表的的代码,其链接为http://forum.eepw.com.cn/thread/268570/1

该代码用keil编译成HEX文件后载入STC89C52单片机,也是通过串口来获取遥控器编码。这称为程序二;

 

同时我使用了两只遥控器,也可称为遥控一(51个按键,是DVD播放机用的)和遥控二(35个按键,是所谓的万能电视遥控器)

 

两个程序对比使用后的体会是:

1、程序一能够对遥控一的所有51个按键进行解码,包括用户码及反码、键码。每个键三个16位数字,形如“00 FF 57”。

但程序一对遥控一只有一个【8】字键能够解码,串口返回“1D 61 DC”三个16位数,其余所有按键无反应进行解码。

把家中其他电视、空调、小米盒子的遥控器都拿来试,也均无反应……

 

2、程序二对遥控一所有按键也能解码,但只有一个16位数字,要命的是,有时同一按键却返回不同的键码,见图,我每个键按了两次,第一行最后一对和第二行第三对(已涂蓝)。

程序二对遥控二的35个按键返回同样的键值“DC”。显然错误。见下图

 

3、现在本人在DIY功放中写入的控制程序也是拿来主义,其中控制静音、音量加、音量减和的代码好像是2B、3C、4D三个值。

其中遥控一的第15键的键值正是4D。但按下去却对音量不产生丝毫影响。

 

问题一;如何才能得到遥控器正确的键值,为什末有的遥控器没有返回任何值?

问题二;不知道怎样才能实现红外遥控功放音量功能?希望得到详细、具体的指导




关键词: 红外     解码     遥控     音量    

菜鸟
2015-04-26 23:08:48    评分
2楼

第一个问题:楼主您先要确定您所使用的每个遥控器的每个按键都有红外发射出来,可以先打开您的手机的拍照功能,遥控器对着手机摄像头位置进行每个按键的测试,查看每个按键是否都有“发光”,这可以确定您所使用的遥控器确实是每个按键都有红外发送出来。硬件没问题之后再查看程序并进行调试 吧。不过好像楼主您使用的程序已经能够识别到您使用的遥控器的每个按键了?目前的情况是否是部分按键能够红外接收串口显示都有反应,但是无法正确解码?

第二个问题:版主witin不是已经给出了红外遥控的参考程序么?其中不是有IR_key的么?具体您先参考版主witin发的内容吖。


院士
2015-04-27 10:32:18    评分
3楼
不错哦

高工
2015-04-27 23:21:38    评分
4楼

建议使用一些比较简陋的遥控器,就是那种轻薄的,楼主可以去看看

http://forum.eepw.com.cn/thread/268629/4#40

视频中的那种红外遥控器

我在家测试的时候,一些家用电器(空调、电视机等)的遥控器很多键值也无法判别出来

可能是红外编解码协议不太一样吧


怎样修改才使得手中的遥控器能够控音

1、获取手中遥控器的键值

可以使用版主witin的代码,从串口中打印出自己手中遥控器的键值

2、修改代码

版主witin的代码红外遥控也有,记得是红外按键扫描被注释掉了,而使用了实体按键扫描

可以启用红外按键扫描,并将源码中红外控制的键值更换为自己手中遥控器的键值

就ok了


助工
2015-04-29 12:36:07    评分
5楼
百度  NEC遥控信号解码。 看看协议,然后再去写程序,不需要定义那么多的东西,只要单片机时间掐得准就行。必须要先看协议,不能略过。不然写出来程序,也没有什么意义。

专家
2015-04-29 21:10:08    评分
6楼
要首先谢谢Snake0301坛友的帮助和提示;

经过两天的努力,突击学习了C51语言和KEIL的一些皮毛,大胆实践,终于实现了红外遥控音量和静音功能。对于古稀之年的我,是值得庆贺一番的。

1、首先对现有一个DVD的遥控器按键成功进行解码;

2、在版主witin的源代码中,打开被注释掉的红外模块,然后对相关语句做了几点模仿性的修改,换成自己现有遥控器的四个方向键键码,其中增加了静音和取消静音两个功能按键。经编译、下载到功放板上后,测试结果。

于是向左的箭头音量减;向右的箭头音量加;向下的箭头静音量减;向上的箭头消除静音。

同时红色LED一闪,一目了然。

至此,问题得到解决。功放DIY的所有基本功能已经全部实现。



助工
2015-05-09 17:14:56    评分
7楼

你太强了   我刚刚想到我的还没有配遥控器呢        我也得现学习啊       俺也鼓捣鼓捣


助工
2015-05-13 21:54:56    评分
8楼

读不出来有几种情况 

一, 很多家用电器 类似空调  电视的遥控器会用厂家专用的编码程序  和解码程序 防止其他遥控的干扰。

二,我们DIY常见的通用红外遥控编码方式 有PHILIP,NEC标准    他们表示高低电平数据的方式都不一样,所以解码的程序需要针对遥控器来写 

以上两点可以解释您下载的程序能解出第一个遥控器的键但是解不出其他遥控器的键的情况

附上两种格式的编码方式


下面是我使用的NEC编码的遥控器和使用示波器捕获到的波形

NEC标准的发码格式

遥控器和红外接收头

(接受的码和发送的码电平是相反的~)

示波器抓到的波形


可以看出引导码    和用户码 用户码反码    往后移动就是我们所需要的键码了。


最后  向老前辈致敬!


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]