第三十三篇、基于Arduino uno,获取hcsr501人体红外感应传感器的原始值并判断是否有人 您所在的位置:网站首页 sr501传感器 第三十三篇、基于Arduino uno,获取hcsr501人体红外感应传感器的原始值并判断是否有人

第三十三篇、基于Arduino uno,获取hcsr501人体红外感应传感器的原始值并判断是否有人

2023-06-28 01:52| 来源: 网络整理| 查看: 265

0、结果

说明:先来看看串口调试助手显示的结果,没有人的时候,串口打印的是0,有人的时候会打印有人,此时串口打印的是1,当连续若干时间为0,也就是若干时间没有检测到人,则打印没人。如果是你想要的,可以接着往下看。

1、外观

说明:虽然hcsr501人体红外感应传感器形态各异,但是原理和代码都是适用的。

2、连线

说明:只需要连接三根线。 uno————hcsr501人体红外感应传感器

 3、源程序

说明:采用非阻塞方式编写,一定时间检测一次是否有人,并能判断是否有人离开,并将对应功能进行函数化,方便移植。

/* 这个传感器可以检测是否有人或者动物,就是红外热感应 注意:这个传感器输出的信号不是持续且稳定的, 第一个旋钮可以改变检测到有人的时候持续的时间最短1秒,最长应该有三分钟; 第二个旋钮可以改变反映的时间,也就是灵敏度。 所以调节最高的灵敏度,最低的持续时间,人一直在的时候,识别1秒,然后切换到了4到5秒识别不到, 所以当人出现的时候,变成1的时候,监测30秒之后是否还是1,如果还是1,那就是人还在,否则人离开。 接线: VCC------VCC GND------GND 7------OUT */ /****************************************hcsr501 part****************************************/ #define hcsr501Pin 7 //设置对应的引脚 #define hcsr501TimeInterval 1000 //检测一次的时间间隔 #define existTimeInterval 20000 unsigned long hcsr501Times = 0, existTimes = 0; //记录设备运行时间 int hcsr501Val = 0, existVal = 0; /****************************************set up and loop part*********************************/ void setup() { Serial.begin(9600); //设置串口波特率为9600 pinMode(hcsr501Pin, INPUT); //引脚设置成输入 Serial.println("设备上线!"); } void loop() { judgmentExist(); //判断人是否存在 } /****************************************hcsr501 part****************************************/ /*获取传感器的数据数据*/ void getHcsrData() { if (millis() - hcsr501Times >= hcsr501TimeInterval) { hcsr501Times = millis(); //一定时间执行一次 hcsr501Val = digitalRead(hcsr501Pin); Serial.println(hcsr501Val); //串口打印对应的值 } } /*判断人是否存在*/ void judgmentExist() { getHcsrData() ; //获取传感器的数据数据 if (hcsr501Val == 1 && existVal == 0) { //检测到有人 existVal = 1; Serial.println("有人!"); //串口打印对应的值 } if (hcsr501Val == 1 && existVal == 1) { existTimes = millis(); } if (millis() - existTimes >= existTimeInterval && existVal == 1) { existVal = 0; //一定时间执行一次 Serial.println("没人!"); //串口打印对应的值 } } 4、注意事项

说明:如果有什么问题可以评论@我,我将帮助你。该传感器有两个旋钮,分别用来调节灵敏度和有人时信号持续的时间长短,我建议调到最灵敏,最低持续时间。传感器上面白色的盖子拿下来可以看到引脚。白色盖子的作用是增强信号,拿下来就识别不到人了。

5、基本原理

        HC-SR501人体红外感应传感器是一种基于被动红外技术(PIR)的人体探测器件。其原理是利用人体本身发出的红外辐射作为检测目标。

        具体来说,HC-SR501传感器内部包含一组感知器件和信号处理电路。传感器的感知器件是一种特殊的红外线(IR)感知组件,可以检测周围环境中的红外线辐射强度。当一个人或者其他有温度的物体进入到传感器的监测范围内时,就会产生一个动态的红外辐射场,这个场会被感知器件所感应,并转化为电信号。然后,信号处理电路对这个电信号进行处理和分析,判断出是否有人体在传感器范围内活动。

        由于人体的温度显著高于周围环境,因此人体就会产生相对强烈的红外辐射。这使得HCSR501传感器能够通过对红外辐射的检测实现对人体的探测。同时,HCSR501传感器通常还有灵敏度和延迟时间等参数可以调整,以便适应不同的使用环境和需求。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有