查看: 127246|回复: 80

Arduino教程(提高篇)——红外遥控(接收篇)

  [复制链接]

该用户从未签到

发表于 2012-7-5 12:17 | 显示全部楼层 |阅读模式
本帖最后由 奈何col 于 2012-8-6 20:55 编辑

此篇我们一起学习玩红外遥,作者将对红外遥控原理和例程进行简单的说明,若有不足或遗漏希望大家指出和修正。
一:红外遥控原理:
      红外遥控是由红外发射和红外接收系统组成
未命名.jpg

1、红外接收:接收电路是一种集成红外线接收和放大一体的一体化红外接收器模块,能够完成从红外线接收到输出与TTL电平信号兼容的所有工作,他适用于红外线遥控和红外线数据传输。接收器做成的红外接收模块只有三个引脚,信号线,VCC,GND。与arduino和其他单片机连接通信非常方便。
原件连接示意图如下:
vs1838.jpg
这里我们使用的了OPEN JUMPER的红外接收套件,直接连接到传感器扩展板即可使用

2、红外发射:红外发射的遥控器发射的38K红外载波信号是由遥控器里的编码芯片对其进行编码。下面用TC9012芯片了解下编码方式。它是以一段引导码,用户码,数据码,数据反码组成,利用脉冲的时间间隔来区别是0还是1信号(高电平低电平之比约为1:1时被认为是信号0,),而编码就是由这些0 、1信号组成。同一个遥控器的用户码是不变的,用数据吗不同来分辨遥控器按的键不同。当按下遥控器按键时,遥控器发送出红外载波信号,红外接收器接收到信号时程序对载波信号进行解码,通过数据码的不同来判断按下的是哪个键。单片机由接收到的01信号进行解码,由此判断遥控器按下的是什么键。
(编码方式详细参考附件) TC9012红外遥控集成芯片.pdf (282.5 KB, 下载次数: 3861)
打赏作者鼓励一下!

该用户从未签到

 楼主| 发表于 2012-8-22 01:21 | 显示全部楼层
lmaq 发表于 2012-8-21 22:19
总是收到 4294967295 或 0   很难收到 正常的键值是什么问题啊

接收到4294967295(十六进制是FFFFFFFF)说明按键一直按着没松开,接收到0,说明在接收过程中什么原因导致数据没有正常接收完。
打赏作者鼓励一下!

该用户从未签到

发表于 2013-3-18 19:27 | 显示全部楼层
海神 发表于 2013-3-18 14:00
你的程序库没有安装对~

谢谢,就是这个问题,解决了

该用户从未签到

发表于 2012-7-14 11:17 | 显示全部楼层
先学习了~

该用户从未签到

发表于 2012-8-6 11:37 | 显示全部楼层
如何对万能遥控器进行解码呢
  • TA的每日心情
    开心
    2018-11-15 08:21
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2012-8-21 22:19 | 显示全部楼层
    总是收到 4294967295 或 0   很难收到 正常的键值是什么问题啊

    该用户从未签到

     楼主| 发表于 2012-8-22 01:21 | 显示全部楼层
    tywood 发表于 2012-8-6 11:37
    如何对万能遥控器进行解码呢

    下载库文件,开例程就可以啊~~~
    打赏作者鼓励一下!

    该用户从未签到

    发表于 2012-8-27 13:19 | 显示全部楼层
    楼主,弱弱的问下,如果接受到的红外信号,解码不出来怎么办?(用家里空调的遥控器,同一按钮每次解码出来的值不一样,而且不能识别类型(不是平常的NEC,SONY,RC5,RC6等等))....这样的话应该怎么办呢?想遥控空调

    该用户从未签到

     楼主| 发表于 2012-9-13 11:12 | 显示全部楼层
    爱上Arduino 发表于 2012-8-27 13:19
    楼主,弱弱的问下,如果接受到的红外信号,解码不出来怎么办?(用家里空调的遥控器,同一按钮每次解码出来 ...

    库里面解码程序都是按 一般的解码方式解码出来,一般的遥控器编码都一样,但现在很多遥控器编码的波形不同,这个你可以用逻辑分析仪示波器之类的分析下遥控器按键编码,然后再改改相应库额~
    打赏作者鼓励一下!

    该用户从未签到

    发表于 2012-9-14 09:41 | 显示全部楼层
    为什么IR_Send38KHZ(280,1); 是9ms? 我看程序里面不是1-9us,0-9us,这样280个周期是280*18us=5ms?

    该用户从未签到

    发表于 2012-9-27 09:19 | 显示全部楼层
    IRremote.h: No such file or directory。。。
    囧,识别不出头文件啊,真心求教肿么回事。。谢谢大大了
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    动手用blinker做台灯
    动手用blinker做台灯
    分享一个使用blinker做的台灯,使用的是esp8266,可以使用天猫精灵进行控制(亮度、开
    户外穿戴定位手表制作
    户外穿戴定位手表制作
    户外穿戴定位手表制作 五一刚过;最近还是
    Arduino烧入失败显示avrdude: stk500_getsync() attempt 1 of 10: not in sy...
    Arduino烧入失败显示avrdu
    我的arduino烧录的时候烧录失败显示下面这些东西
    Arduino MEGA 与UNO 通过nRF24L模块通讯
    Arduino MEGA 与UNO 通过n
    之前在深水宝很“实惠”的店铺买了一些原件,随手砍了esp8266以及nRF24L*3 因为缺
    开贴讲讲NRF24L01P,让你彻底搞懂它的工作原理,持续更...
    开贴讲讲NRF24L01P,让你
    *****************************************
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表