本系列文章为作者原创,未经作者书面同意,不得转载!
现在很多有老人的家庭都会在卫生间安装一种感应灯,当人进入卫生间时,灯就会发光,过一会儿就自动关闭了。这种灯比传统的声控灯要科学一下,尤其晚上,不会打扰到家人,非常方便。
001.png
今天就教大家来制作一盏人体感应灯!
我们还是先来将我们要做的人体感应灯的功能定义一下,做项目嘛,需求要先明确:人体感应灯能够在4米范围内感知人体,然后自动开启照明,人离开30秒后自动关闭照明。
1 本章您将学到
在这个项目中,您将学到的:
学会使用人体红外传感器
学习模拟信号输入操作
2 工具和组件
2.1 工具列表
本项目不需要额外的工具。
2.2 元器件列表
元器件
型号
数量
备注
主控板
arduino Uno
1
人体红外传感器
HC-SR501
1
电阻
220欧姆
1
面包板
1
杜邦线
若个
数据线
Uno数据线
1
2.3 工具和元器件介绍
2.3 工具和元器件介绍
2.3.1 HC-SR501人体红外传感器
HC-SR501-01.png
2.3.1.1 工作原理
自然界中任何的物体都会辐射出红外线,只不过物体不同,辐射出来的红外线波长不相同而已。
小知识:
常见颜色光的波长分布:
光线
波长
紫光
0.4-0.43μm
蓝光
0.43-0.47μm
青光
0.47-0.50μm
绿光
0.50-0.56μm
黄光
0.56-0.59μm
橙光
0.59-0.62μm
红光
0.62-0.76μm
红外
0.76-100μm
人的体温一般在37度左右,所以会发出特定波长10UM左右的红外线,HC-SR501人体红外传感器就是根据人体辐射出的波长大约在10000nm左右的红外线,从而感应出人体的接近与远离。
人体发射的10UM左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。下图就是HC-SR501人体红外传感器上的费列尔透镜:
HC-SR501-03.png
费列尔透镜:
根据菲涅耳原理制成,菲涅耳透镜分为折射式和反射式两种形式,其作用一是聚焦作用,将热释的红外信号折射(反射)在PIR(热释电红外传感器)上;二是将检测区内分为若干个明区和暗区,使进入检测区的移动物体能以温度变化的形式在PIR上产生变化热释红外信号,这样PIR就能产生变化电信号,使热释电人体红外传感器(PIR)灵敏度大大增加。
HC-SR501-04.png
红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生电信号。
HC-SR501-02.png
2.3.1.2 技术参数
技术参数
模块指标
使用电压
DC 5V-20V
静态电流
65微安
电平输出
高3.3V,低0V
延时时间
可调(0.3秒~18秒)
封锁时间
0.2秒
触发方式
L不可重复,H可重复,默认值为H(跳帽选择)
感应范围
小于120度锥角,7米以内
工作温度
-15~+70度
2.3.1.3 触发方式
通过模块上的跳线选择:L不可重复,H可重复。
不可重复触发方式:即感应输出高电平后,延时时间一结束,输出将自动从高电平变为低电平。
可重复触发方式: 即感应输出高电平后,在延时时间段内,如果有人体在其感应范围内活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。
下图是跳线位置,图中的跳线选择在:L不可重复。
HC-SR501-06.png
2.3.1.4 感应时间延迟调节及感应距离调节
时间延迟调节:旋钮形式,用于调节检测到当前红外信号后的延迟时间,感应模块在每一次感应输出后(高电平变为低电平),可以紧跟着设置一个封锁时间,在此时间段内感应器不接收任何感应信号。此功能可以实现(感应输出时间和封锁时间)两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(默认封锁时间2.5S),调节延时旋钮顺时针旋转,感应延时加长(约300S),反之,感应延时减短(约 0.5S)。
感应距离调节:旋钮形式,用于调节模块的灵敏度,调节旋钮顺时针旋转,感应距离增大(约 7 米),反之,感应距离减小(约 3 米)。
HC-SR501-07.png
2.3.1.5 光敏控制
HC-SR501模块预留有光敏电阻位置,可设置光敏控制,白天或光线强时不感应。光敏控制为可选功能,出厂时未安装光敏电阻。
HC-SR501-08.png
2.3.1.6 引脚说明
HC-SR501-05.png
VCC:供电 5-20V DC
输出引脚:模拟输出
GND:接地,电源负极
2.3.1.7 安装方式
HC-SR501人体红外传感器只能安装在室内,其误报率与安装的位置和方式有极大的关系,正确的安装应满足下列条件:
红外线热释电传感器应离地面2.0-2.2米。
红外线热释电传感器远离空调, 冰箱,火炉等空气温度变化敏感的地方。
红外线热释电传感器探测范围内不得隔屏、家具、大型盆景或其他隔离物。
红外线热释电传感器不要直对窗口,否则窗外的热气流扰动和人员走动会引起误报,有条件的最好把窗帘拉上。红外线热释电传感器也不要安装在有强气流活动的地方。
另外,红外线热释电传感器对人体的敏感程度还和人的运动方向关系很大。热释电红外传感器对于径向移动反应最不敏感,,而对于横切方向 (即与半径垂直的方向)移动则最为敏感. 在现场选择合适的安装位置是避免红外探头误报、求得最佳检测灵敏度极为重要的一环。
3 电路设计
3.1 电路图
根据我们的项目需求,设计电路图如下:
电路图.png
3.2 电路原理
这个电路图比较简单,大家需要注意的还是LED灯的限流电阻。
4 程序设计
4.1 主程序设计
/*
*名称:人体红外感应灯
*功能:
*作者:YXK
*时间:2018.6.6
*/
const int sensorPin = A0; //定义SR501人体红外的引脚
const int ledPin = 10; //定义LED灯的引脚
int sensorValue = 0; //声明传感器数据变量
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin,LOW);
pinMode(sensorPin, INPUT);
}
void loop()
{
sensorValue = analogRead(sensorPin); //读取传感器数据
if(sensorValue > 300){ //判断是否有人接近
digitalWrite(ledPin,HIGH); //点亮LED灯
delay(30000); //延时30秒
digitalWrite(ledPin,LOW); //关闭LED灯
}
}
4 安装调试
由于电路比较简单,我就不上我的最终连接图了,大家按照电路图进行连接,上传程序即可。
5 总结扩展
人体红外传感器HC-SR501其实可以用来创作的空间很大,比如,做一个人体感应报警器,您可以参考本文自己来设计,活学活用!
如果您喜欢本文,您可以点击一下下面的喜欢按钮,您也可以关注我,谢谢您的支持!