硬件连接:
VS1838B型红外接收器:左接GPIO18,中接GND,右接VCC
红外发射二极管:一个接GND,一个接GPIO17
附上树莓派的GPIO图
软件部分:
sudo nano /boot/config.txt
将dtoverlay=lirc-rpi前面的#去掉- 运行
lsmod
命令,查看列表中是否有“lirc_rpi”,若没有,运行sudo modprobe lirc_rpi加载驱动 - 运行
sudo apt-get install lirc
,安装lirc。LIRC (Linux Infrared remote control)是一个linux系统下开源的软件包。
这个软件可以让你的Linux系统能够接收及发送红外线信号。 - 重启
sudo reboot
sudo mode2 –d /dev/lirc0
,按遥控上的键,此时应有脉冲出现。我选择的是NEC协议的红外遥控器
space 16300
pulse 95
space 28794
pulse 80
space 19395
sudo nano /etc/lirc/hardware.conf
,修改以下信息
...
LIRCD_ARGS="--uinput"
...
DRIVER="default"
...
DEVICE="/dev/lirc0" ```
再运行 sudo vim /etc/modules
,添加下面两行信息:
lirc_dev
lirc_rpi gpio_in_pin=18 gpio_out_pin=17
重启sudo reboot
,使得配置文件生效
7.irrecord –list-namespace
看一下能用的键名有哪些
8. irrecord -d /dev/lirc0 ~/lircd.conf
执行红外编码录制命令,然后跟着指令一步一步走,这个程序会自动算出你按下的遥控器按键的编码和时长,并录制下来记录在~/lircd.conf
文件中
9. sudo cp ~/lircd.conf /etc/lirc/lircd.conf
将录制好的~/lircd.conf文件覆盖lirc软件的相应文件
10. sudo /etc/init.d/lirc restart
,重启LIRC软件
irsend LIST /home/pi/lircd.conf ""
,查看录制好可以使用的按键名
注意,将会看到类似以下的内容
irsend: 000000000000c837 KEY_VOLUMEDOWN
irsend: 00000000000048b7 KEY_VOLUMEUP
irsend: 00000000000008f7 KEY_VIDEO_PREV
irsend: 0000000000008877 KEY_VIDEO_NEXT
或者使用 irw
命令,按下刚才学习到的键,屏幕上会有相应的输出
11. 保证红外发射二极管连接正确的情况下,发射命令:
irsend SEND_ONCE /home/pi/lircd.conf KEY_1
KEY_1是我选择的学习之后的键
12.然后我在单片机上写了一个接收红外信号的程序,此时能接收到KEY_1,大功告成!