人体红外感应模块

HC-SR501是基于红外线技术的自动控制模块 ,采用德国原装进口LHI778 探头设计,灵敏度高,可靠性强,超低电压工作模式 ,广泛应用于各类自动感应电器设备 ,尤其是干电池供电的自动控制产品。
特点
- 感应模块通电后有一分钟左右的初始化时间,在此期间模块会间隔地输出0-3 次,一分钟后进入待机状态。
- 应尽量避免灯光等干扰源近距离直射模块表面的透镜,以免引进干扰信号产生误动作 ;使用环境尽量避免流动的风,风也会对感应器造成干扰。
- 感应模块采用双元探头,探头的窗口为长方形,双元(A 元 B 元)位于较长方向的两端,当人体从左到右或从右到左走过时,红外光谱到达双元的时间、距离有差值,差值越大,感应越灵敏,当人体从正面走向探头或从上到下或从下到上方向走过时,双元检测不到红外光谱距离的变化,无差值,因此感应不灵敏或不工作;所以安装感应器时应使探头双元的方向与人体活动最多的方向尽量相平行,保证人体经过时先后被探头双元所感应 。为了增加感应角度范围,本模块采用圆形透镜,也使得探头四面都感应,但左右两侧仍然比上下两个方向感应范围大、灵敏度强,安装时仍须尽量按以上要求。

调节距离电位器顺时针旋转,感应距离增大(约 7 米),反之,感应距离减小(约 3 米)
调节延时电位器顺时针旋转,感应延时加长(约300S),反之,感应延时减短(约 0.5S)
连接图

Arduino 代码
int PinSensor = A5; // 指定PIR模拟端口 A5
int PinLED = 13; // 指定LED端口 13
int Val = 0; // 存储获取到的PIR数值
void setup()
{
pinMode(PinSensor, INPUT);
pinMode(PinLED, OUTPUT);
Serial.begin(9600);
}
void loop()
{
Val = analogRead(PinSensor); // 读取A0口的电压值并赋值到val
Serial.println(Val); // 串口发送val值
if (Val > 150) // 判断PIR数值是否大于150,
{
digitalWrite(PinLED, HIGH); //大于表示感应到有人
}
else
{
digitalWrite(PinLED, LOW); //小于表示无感应到有人
}
}