树莓派资料
显示屏资料
系统下载
树莓派Pico
首页 动态 发帖 版块 我的
 退出
游客  
等级:
金币:
经验值:

树莓派使用人体感应传感器HC-SR501+LED打造自动感应

  7811 
 0
 4
mo   mo 

传感器工作原理介绍

HCSR501人体感应传感器原理图


HCSR501人体感应传感器,也叫热释电传感器,工作原理是在范围内检测动物或人体自身散发出的红外线时,会发出一个脉冲信号(脉冲宽度固定)。当有人体时会产生红外线交替出现在“盲区”和“高灵敏区”,就一直有脉冲信号输出(实测人静止不动时不会输出)。所以此款传感器检测的是移动的人体。该模块添加了放大器BISS0001,这样就将脉冲信号转化为更直观的高/低电平,通俗的理解:有人时输出高电平,无人时输出低电平。并在放大电路上设置电位器可调节输出信号的灵敏度范围(比如探头产生n个脉冲,模块才输出高电平),还可调节高电平的持续输出时间。(如下图所示)

Image

(如下图所示:传感器探头的正前方角度为100°,距离为2-7M,左右最大3-4米。 其中模块的内部可以自定义DIY添加热敏和光敏探头,其目的可让传感器在特定的环境下才能工作。比如光敏可实现白天传感器不会工作,只有夜晚传感器才会工作。更有效的增加了传感器的可玩性)

Image

硬件连接

通过上述的介绍,我们已知传感器实际有人时输出高电平,无人时输出低电平。那么我们可以写一个Python程序来监测传感器的引脚的信号输出情况,有高电平时显示有人,无高电平时显示无人!这样就非常好理解了!


下图的接线方式:通过树莓派来接入传感器的信号引脚,监测传感器是否有信号输出,从而来控制LED灯亮起。

HC-SR501人体感应传感器树莓派开发板LED灯
VCC5V
GNDGND短脚为负极
OUTGPIO.7 (BCM4)GPIO.0 (BCM17) 正极


Image

Python程序代码

将下列代码直接在树莓派python上运行,查看状态 (程序注释了含义,有兴趣可自己研究更改)

import RPi.GPIO as GPIO

# 设置GPIO模式为BCM(BOARD模式)
GPIO.setmode(GPIO.BCM)

# 设定BCM4和BCM17为输入和输出引脚
BCM4 = 4
BCM17 = 17
GPIO.setup(BCM4, GPIO.IN)  # BCM4为输入
GPIO.setup(BCM17, GPIO.OUT)  # BCM17为输出

try:
    while True:
        # 检查BCM4引脚的状态
        if GPIO.input(BCM4):  # 如果是高电平
            print("检测到有人")
            GPIO.output(BCM17, GPIO.HIGH)  # 输出BCM17引脚为高电平
        else:  # 如果是低电平或未连接
            print("范围内正常")
            GPIO.output(BCM17, GPIO.LOW)  # 使BCM17引脚复位为低电平

except KeyboardInterrupt:
    # 当按下Ctrl+C时,退出程序
    print("\n程序已中断...")
finally:
    # 关闭GPIO资源
    GPIO.cleanup()


效果:当传感器范围内有人出现时,显示“检测到有人”,LED并点亮。  无人时 显示范围内正常,LED灯关闭

Image



标签:
作者签名:    楼主  2024-06-21 21:54:16
回复列表
Powered by RASPI _VERSION
© 2017-2024 树莓派极客版权
您的IP: 18.188.253.166 , 2024-09-08 09:04:37
Powered by RASPI _VERSION
© 2017-2024 树莓派极客版权