Arduino UNO开发板
HC-SR501人体红外传感器
面包板、跳线、LED等配件
自然界中任何的物体都会辐射出红外线,只不过物体不同,辐射出来的红外线波长不相同而已。HC-SR501人体红外传感器就是根据人体辐射出的波长大约在10000nm左右的红外线,从而感应出人体的接近与远离。下表为不同颜色的波长分布:
| 光线 | 波长 |
|---|---|
| 紫光 | 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 |
其实还可以根据不同光线的波长进行调节红外传感器,进而让传感器检测不同波长的光线。
HC-SR501人体红外传感器各元件的作用介绍:
时间延迟调节:旋钮形式,用于调节检测到当前红外后的延迟时间
感应距离调节:旋钮形式,用于调节模块的灵敏度
检测模式跳线:选择单次检测或连续检测
VCC:用于给模块提供电源,一般为5V
GND:接地引脚
输出针脚:输出数字信号
| HC-SR501 | Arduino |
|---|---|
| VCC | 5V |
| 输出引脚 | D7 |
| GND | GND |
编写获取HC-SR501数据程序
void setup()
{
pinMode(7, INPUT);
Serial.begin(9600);
}
loop()函数获取数据
void loop()
{
pirValue = digitalRead(7);
Serial.print(pirValue);
delay(1000);
}
打开串口监视框查看数据,测试的时候慢慢靠近HC-SR501模块,看打印出什么
需求分析:
整合程序:
void setup()
{
pinMode(13, OUTPUT);
pinMode(7, INPUT);
digitalWrite(13, LOW);
Serial.begin(9600);
}
void loop()
{
pirValue = digitalRead(7);
digitalWrite(13, pirValue);
}
全部程序:
void setup()
{
pinMode(13, OUTPUT);
pinMode(7, INPUT);
digitalWrite(13, LOW);
Serial.begin(9600);
}
void loop()
{
pirValue = digitalRead(7);
if (pirValue == 0)
{
digitalWrite(13, LOW);
}
else if (pirValue == 1)
{
digitalWrite(13, HIGH);;
}
delay(500);
}