搜索
bottom↓
回复: 17

如何解HS5104红外遥控发射器的编码

[复制链接]

出0入0汤圆

发表于 2005-8-1 17:40:59 | 显示全部楼层 |阅读模式
如果用单片机来对红外遥控发射器的解码,该如何12位编码中的分别“0”“1”。

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2005-8-2 08:30:59 | 显示全部楼层
利用外部中断加定时器的方法可以解决。

进入外部中断后,定时器就要开始计时,计时到700us左右的时候就开始读取外部中断引脚的电平,对HS5104,它的编码和中断引脚读取的码相反,所以读取后还要取反。

出0入0汤圆

发表于 2006-2-3 14:27:30 | 显示全部楼层
cool说的没错,我已经完成过对5104解码

出0入0汤圆

发表于 2006-2-3 17:36:12 | 显示全部楼层
不知道这个编码很特殊吗?

出0入0汤圆

发表于 2006-11-6 09:06:19 | 显示全部楼层
我在最近开发的产品中有用到这种遥控器,个人感觉很不可靠的。我之前解NEC的码很稳定,从没误动作。但解这种码搞了几天还不行,我也是采用楼上的方法,但发现抗干扰能力很弱,不按遥控器也会误动作,很是头疼。另外如果键一直按着如何处理?请做过的XD说说。

出0入0汤圆

发表于 2006-11-6 10:58:12 | 显示全部楼层
请做过的XD说说,在线等。。。

出0入0汤圆

发表于 2006-11-6 11:55:56 | 显示全部楼层
要先知道遥控器发出来的波形中每个电平的定义```



然后就是检测每个电平的问题了

出0入0汤圆

发表于 2006-11-6 14:42:59 | 显示全部楼层
遥控器发射的编码是很有规律的,周期固定为1.688毫秒,1/4T高电平+3/4T低电平为“0”,3/4T高电平+1/4T低电平为“1”。

所以遥控接收头出来的信号,1/4T低电平+3/4T高电平为“0”,3/4T低电平+1/4T高电平为“1”。

解码的方法是:接收头引脚接CPU的外部中断脚,设为下降沿触发,中断发生后启动定时器计时,定时器设为800us溢出中断,定时中断发生后读引脚电平,读到低代表“1”,读到高代表“0”,这样就可以把编码读出来。



编码共有12位,前面五位为3位起始码+2位用户码,后面跟7位指令码。我用的遥控器前五位固定为“11011”。



解这个码关键在于如何找到同步信号,NEC的有个引导码,之后是32位用户码和指令码,由于有引导码作同步,用户码和指令码又有较验,很难出错,再加上连续按键它的发射信号会有所不同,便于识别。



我用上述方法解5104码,遇到两个问题:

1、不按动遥控器,在干扰严重的地方也有可能误动作(虽然几率很低,但不管理论还是实际

   上都有发生)。

2、无法区分连续按键。因为它一直发射的都是同一个波形,还没想到好办法来区别开来。



继续求做过的XD指导一下。

出0入0汤圆

发表于 2006-11-6 15:55:26 | 显示全部楼层
按从HS5104的PDF中看到的,你应该先检验是否接收到起始码,接收到起始码后再连续取9位数据。没检验到起始码就结束接收动作。



判断数据位是0是1,是在检测到该位的高电平时,延时1/2T读引脚电平`````



接受起始码不能用这方法,要实实在在检测到3/4T高电平、1/4T低电平、3/4T高电平、1/4T低电平、1/4T高电平、3/4T低电平才行。

出0入0汤圆

发表于 2006-12-8 15:49:02 | 显示全部楼层
2、无法区分连续按键。因为它一直发射的都是同一个波形,还没想到好办法来区别开来

?????????????????????????

me too????????????????

出0入0汤圆

发表于 2006-12-8 15:50:37 | 显示全部楼层
七楼有办法了吗?连续码如何解决?太困绕了

出0入0汤圆

发表于 2007-12-18 23:21:55 | 显示全部楼层
请问大家都搞定了么?

出0入0汤圆

发表于 2008-1-18 18:08:13 | 显示全部楼层
简单啦,检测7MS隔间作为同步。12位数据出来后,跟上一次接收相比较,如果相同就视为有效。再设一个计数器,每接收一贞数据,计数器加1。如果按键释放就清计数器。
  这样,就什么都稳定。也识别了长按问题。
  如果还不明白,可以到中山单片机论坛去讨论。
http://www.zsmcu.net/

出0入0汤圆

发表于 2008-1-18 20:19:35 | 显示全部楼层
AVR-MEGA128 安步当车  和楼上几位

麻烦你再出来一下,跟大家好好说说,毕竟你做出来了。
我做的也是误码太多,还易干扰。

谢谢

出0入0汤圆

发表于 2008-1-19 13:26:16 | 显示全部楼层
呵呵,我本来没上这个论坛的,今天又偶然回来了。算是是意外。
干扰问题,在红外接收里很少存在。你所谓的干扰,我估计还是因为误码多而造成的。
的确,这误码必是存在的?你想知道为什么?这是因为HS5104的工作电压是在2.5V到5V。如果你的电池是两节的,那么它可能工作在虚电压2.8V左右,但实在是瞬间启动电压会拉低到2.5V(如果电池旧了)。这种情况下,他发出来的码必是不稳定的。
    据我长时间测试,特别是同步码易改变,当电池电压低时,经常会出现100的同步码。换一个新电后,又恢复到110同步码。这种情况,判断同步码就会失误。你可以试试程序里,把100也当作是同步码,加强稳定性。
    如果你的是三节电池供电,不存以在以上问题。
    其次,还存在不稳定的原因,可能是你的程序有问题。首先,确定这接收状态。没信号时,常态高电平(一体化接收输出上拉)。也就是说,这一贞信号没有停止位。做惯接收的朋友,往往习惯了用停止位做一贞鉴别,但在这里,可要注意了。是因为没有停止位,必须要对最后一位(第12位)的宽作特别识别处理。
   我在《中山单片机论坛》或《中国电子制作论坛》呆的时间比较长,有兴趣的可到那里共同讨论。

出0入0汤圆

发表于 2008-11-10 19:15:02 | 显示全部楼层
学习了,顶一下,做个标记

出0入0汤圆

发表于 2010-11-10 21:31:04 | 显示全部楼层
回复【1楼】coole iAVR
-----------------------------------------------------------------------

如何判断数据起始位,开始解码
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-3 03:49

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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