
红外传感器
引脚从上到下分别为
IO GND VCC
lirc的安装与使用
使用红外,首先需要安装树莓派的lirc模块
LIRC (Linux Infrared remote control)是一个linux系统下开源的软件包。这个软件可以让Linux系统接收及发送红外线信号。
注意事项:
安装:
1 | sudo apt-get install lirc |
修改以下几处:
1 | sudo leafpad /etc/lirc/hardware.conf |
终端执行
1 | sudo leafpad /etc/modules |
添加下面两行到模块配置文件:
1 | lirc-dev |
如测试时报错-ERROR: could not insert ‘lirc_rpi’: No&nbs
解决办法:
1 | sudo vi /boot/config.txt |
找到:
1 | #dtoverlay=lirc-rpi |
把前面的“#”号去掉, 然后重启系统即可
测试红外线接收功能
首先关闭lirc软件,然后执行如下命令:
1 | sudo /etc/init.d/lirc stop |
这时候提示
1 | no such file or directory |
经过查看发现 /dev 下面没有 lirc0 这个module,发现在/boot/config.txt里面dtoverlay=lirc-rpi
取消注释,然后reboot,问题解决。
再次执行
1 | mode2 -d /dev/lirc0 |
如果弹出
1 | Partial read 8 bytes on /dev/lirc0pi@raspberrypi:~ $ |
发生错误,解决方案:
1 | changed the following two lines in |
(尝试过程中第一次仍然无效,但是第二次重装系统后正常,目前未知原理)
如果显示下面内容
1 | pulse 629 |
则说明接收正常.
#协议
采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的”0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的”1
协议:
上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如下图。
| 引导码 | 用户识别码 |用户识别码反码 | 操作码 | 操作码反码 |
一个命令只发送一次,即使遥控器上的按键一直按着。但是会每110mS发送一次代码,直到遥控器按键释放。
重复码比较简单:一个9mS的AGC脉冲、2.25mS间隔、560uS脉冲。
读取并校验接收、对应到的红外信号
