ESP32 Micropython编程(Thonny)04---- 人体感应模块

本人持续分享更多关于嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步

最近使用到人体感应模块HC-SR501,这个模块使用十分简单,看下面代码就可以看出了,而且应用广泛,在家里厕所搞一个感应灯的不二之选。

1. 使用代码

from machine import Pin
import time


p13 = Pin(13, Pin.IN)  # 构建人体红外对象
led = Pin(2, Pin.OUT)  # 构建 led 对象, GPIO2,输出


def fun(*args):  # 当检测到人时,板载LED灯亮起
    print("1")
    led.on()
    time.sleep_ms(500)
    led.off()
    
p13.irq(fun,Pin.IRQ_RISING)  # 定义中断,上升沿触发

原理:当检测到人体移动时会使得信号引脚输出高电平,此时有个上升沿的越变,检测此越变即可判断是否有人体在移动。

2. HC-SR501

  • HC-SR501 是一款基于热释电效应的人体热释运动传感器,能检测到人体或者动物上发出的红外线。

  • 注意检测的是是否运动

  • 检测范围
    在这里插入图片描述
    通过物理旋钮可以调节感应范围

  • 背面位置

    在这里插入图片描述

    3. 两种触发模式

    两种触发方式(可跳线选择)

  • 不可重复触发方式:即感应输出高电平后,延时时间段一结束,输出将自动从高电平变成低电平

  • 可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平

4. 两个调节引脚说明

  • 灵敏度:用于调节检测范围,可调节范围 3米 ~ 7米
  • 时间延迟调节:用于调节在检测到移动后,维持高电平输出的时间长短,可以调节范围(0.5-200S)

存在一个小问题:

如果通过此模块检测人体是否一直存在,该如何实现?此模块虽然能检测到人体,但是每当人体移动都会触发高电平。

本人持续分享更多关于嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步

猜你喜欢

转载自blog.csdn.net/amimax/article/details/128758483