准备工作
- 树莓派1个
- 红外感应模块1个
- LED灯一个
- 杜邦线5根
模块介绍
红外感应模块
这个模块在某宝某东上面一抓一大把,就长这么个样子:
再来说下引脚:
具体内部实现原理及各个参数这里就不多数了,对于刚刚入手就想先跑板子的娃儿来说暂时用不到(其实在下也不是很明白,后边有空再仔细瞅瞅)。接线呢,就三根线,1接地2接其他PIN脚3接5V。
上一张我的实物:
发光二极管
这个呢也很容易找到,也就是LED,就酱色的:
需要注意的是这个分正负极,长的引脚是正极。
如果说引脚不小心被剪了,咋办呢?
莫急,那就看这个管体内,金属极较小的部分就是正极。
另外在接线的时候需要接入上拉电阻保护。但是我在实际点亮的时候发现,接入电阻后灯光很弱,索性就去掉了,直接接引脚了。
编程
这里就用python来写代码。
1、首先安装 树莓派上封装好的python 的GPIO包
pip install rpi.gpio
2、查看板子的引脚图,选出需要配置的引脚
这里需要说明的是,物理引脚BOARD编码和你树莓派上的管脚是正好对应的,BOARD编码和BCM一般都在python库中使用。最好使用BOARD编码,因为这样你的代码就可以再其他板子上运行了,当然这也是见仁见智。
3、这里选12 号引脚GPIO.1作为信号输入 23号引脚作为LED配置,具体接线如下:
- LED正极接23号引脚
- LED负极接25号引脚
- 红外模块VCC接2号引脚
- 红外模块OUT接12号引脚
- 红外模块GND接14号引脚
4、代码实现
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(23,GPIO.OUT)
GPIO.setup(12,GPIO.IN)
num = 0
def led(): #led闪烁
GPIO.output(23, 0)
time.sleep(0.5)
GPIO.output(23, 1)
time.sleep(0.5)
GPIO.output(23, 0)
try:
while True:
while GPIO.input(12):
num+=1
print("通过%s人"%num)
led()
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup();
5、运行
sudo python3 test.py
打完收功!当然代码和电路还有许多地方需要调整优化,目前只是初步实现最简单的输入输出控制。