人体时刻发出9.6微米的红外波段的辐射,人体红外感应模块HC-SR501就是为此而设计的。
本文来自于牛人技术网某大神。
1. 传感器特点
传感器采用PCB板封装,有三个针脚引出,其中两端的是用来供电的正极和负极而中间的则是电平信号输出。感应的灵敏度可以通过PCB板上的电位器来进行条件一般在7米左右的感应距离,最大是10米。
工作电压:3~5V
静态电流:50μA
硬件接口:数字信号输出
工作温度:0℃~+70℃
电平输出:4V
无信号输出:0.4V
感应角度:110度
感应距离:7米
外形尺寸:28x36mm
2. 接线
图二 树莓派和HC-SR501接线图3. 程序部分
# -*- coding:utf-8 -*-
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO_PIR = 11 //定义GPIO接口
print "PIR Module Test (CTRL-C to exit)"
GPIO.setup(GPIO_PIR,GPIO.IN) #设置GPIO模式为输入模式
Current_State = 0
Previous_State = 0
try:
print "Waiting for PIR to settle ..."
while GPIO.input(GPIO_PIR)==1://设置GPIO为1
Current_State = 0
print "开始准备..."//此处可以终止测试
while True ://测试对象状态
Current_State = GPIO.input(GPIO_PIR)
if Current_State==1 and Previous_State==0:
print "测试有红外对象 "
Previous_State=1
elif Current_State==0 and Previous_State==1:
#重新进入准备状态
print "继续准备中... "
Previous_State=0
time.sleep(0.01)//等待10毫秒
except KeyboardInterrupt:
print "退出"
GPIO.cleanup()//重置GPIO接口
粗略转载,已在树莓派上实现,python缩进格式可能有问题,以后要修改再慢慢改吧。
网友评论