树莓派下使用红外模块(红外接收模块,红外遥控器)的详细教程

前两天在淘宝上买了个红外接收模块和红外遥控器回来,准备折腾一下。以前也没有玩过红外这种东西,所以一点也不了解,好在群里有几个大哥非常热心的给我讲解,最终终于把想搞的东西搞出来了。在此非常感谢帮助过我的几位大哥,感谢感谢


首先我们看一下红外接收模块图片,淘宝卖家也不知道具体型号,只说应该是HX1838,模拟上标记有S和-符号,S表示信号接口,接GPIO引脚,-是负极接口,接GND,中间的是VCC接口,接3.3V或者5V应该都可以(建议接3.3V)

3_看图王(1).jpg


接下来是遥控器的图片,这种应该是最普通的测试用遥控器,淘宝上才几块钱一个

2_看图王.jpg


下面是树莓派接线实景图,VCC接的是3.3V,信号接口接的是BCM的18号,也就是GPIO.1

1.jpg


接好线后,我们拿遥控器对着红外接收模块按下任意键(注意不要被东西遮挡),如果红外接收器上的红灯亮起的话,说明模块是正常的。


接下来是编码过程,编码前我们简单的介绍一下,红外接收模块跟遥控器之间的数据传输,主要用的是NEC协议,当然红外还有其它协议,不过我们今天这个模块用的是NEC协议的。NEC协议的具体内容我就不讲了,因为我也不懂。我只能大概说一下从群里几位大哥那里学习了解到的东西。


首先,NEC协议分成几段:

1、引导码

2、用户码

3、用户码反码

4、按键码

5、按键码反码


下面是我画的2张图,大家可以简单的看一下。

123.jpg

333.jpg

下面就是最重要的模块,按键信号接收代码。那么我们做红外接收最重要的是什么?就是当用户按下遥控器的时候,接收用户的按键信号,判断用户按下的是什么键,然后作出相应的操作,下面是python源码:


#!/usr/bin/python
#coding=utf8
import RPi.GPIO as gpio
import time
import datetime

#定义gpio引脚号
#BCM,物理引脚27号
pin=27
Lowtime=[0]*32
Hightime=[0]*32
msg=("用户码:","用户码反码:","按键码:","按键码反码:")
data=[0]*4
keeptime=0

gpio.setmode(gpio.BCM)
gpio.setup(pin, gpio.IN)

print "开始等待按键信号……"

while True:
	# 高电平,表示没有按键信号
	while gpio.input(pin)==1:
		continue

	# 低电平,表示按键信号出现,空循环等待直到出现高电平
	while gpio.input(pin)==0:
		continue

    # 开始读取数据,总共32个比特位,包括:用户码,用户码反码,按键码,按键码反码
	for i in range(0,32):
		# 记录低电平时刻
		while gpio.input(pin)==0:
			continue
		Lowtime[i]=datetime.datetime.now()

		# 记录高电平时刻
		while gpio.input(pin)==1:
			continue
		Hightime[i]=datetime.datetime.now()

    # 循环读取4个字节,每个字节8个比特位,分别是:用户码,用户码反码,按键码,按键码反码
    # 反码就是用255去减,比如原数据是50,那么它的反码就是255 - 50 = 205
    # 本代码使用的是NEC协议
    # 同一个遥控器,用户码是固定的
    # 如果要做红外遥控操作,则可以对用户码、用户码反码、按键码、按键码反码进行校验,校验通过就可以做自己的事情了,如果不校验的话,有可能会出现同一个按键每次的代码不相同的情况
	# 如果做的操作不区分按键的话,纯粹是判断有没有按键信号的话,那就可以不做校验也没问题
	for i in range(0,4):
		data[i]=0
		for j in range(0,8):
			keeptime=Hightime[i*8+j]-Lowtime[i*8+j]
			if keeptime.microseconds>1100:
				data[i]|=1<


源码下载:树莓派红外接收事例代码.zip

  1. 本网站所收集的部分资料来源于互联网,本站不对其真实性负责,也不构成任何其他建议。如果您发现有侵犯您权益的内容,请与我们取得联系,我们会及时修改或删除。
  2. 传递知识、传递力量,欢迎各位网友对本站的文章进行转载和分享。
  3. 本站QQ群交流群:904314688  群号:904314688
发表评论
 
评论列表(目前共有 条评论)
暂时还没有评论哦~

文章搜索

商家广告


版权所有:秋风雅居 (www.198933.com) ©2024 All Rights Reserved.

粤ICP备20031662号