Arduino 简明教程
Arduino - PIR Sensor
PIR 传感器让您能够对运动进行感知。它们用于检测人是否在传感器的范围内进出。它们通常出现在家中或企业中使用的装置和小工具中。它们经常被称为 PIR、“被动红外”、“热释电”或“红外运动”传感器。
以下是 PIR 传感器的优势:
-
Small in size
-
Wide lens range
-
Easy to interface
-
Inexpensive
-
Low-power
-
Easy to use
-
Do not wear out
PIR 由热释电传感器制成,传感器是一个圆形金属罐,中间有一个矩形晶体,可以检测红外辐射水平。任何东西都会发出低水平辐射,并且东西越热,发出的辐射就越多。运动探测器中的传感器被分成两半。这是检测运动(变化)而不是平均红外水平。这两个部分连接在一起,以便它们相互抵消。如果半部分比另一半看到更多或更少的红外辐射,则输出将高或低摆动。
PIR 具有可调节设置,并且在 3 针接地/输出/电源焊盘中安装了一个接头。
对于需要检测有人离开或进入指定区域的大多数基本项目或产品而言,PIR 传感器非常好。请注意,PIR 不会告诉您附近的人数或他们与传感器的距离。镜头通常固定在一定距离的某个扫掠范围,并且有时会被家中的宠物触发。
Arduino Code
#define pirPin 2
int calibrationTime = 30;
long unsigned int lowIn;
long unsigned int pause = 5000;
boolean lockLow = true;
boolean takeLowTime;
int PIRValue = 0;
void setup() {
Serial.begin(9600);
pinMode(pirPin, INPUT);
}
void loop() {
PIRSensor();
}
void PIRSensor() {
if(digitalRead(pirPin) == HIGH) {
if(lockLow) {
PIRValue = 1;
lockLow = false;
Serial.println("Motion detected.");
delay(50);
}
takeLowTime = true;
}
if(digitalRead(pirPin) == LOW) {
if(takeLowTime){
lowIn = millis();takeLowTime = false;
}
if(!lockLow && millis() - lowIn > pause) {
PIRValue = 0;
lockLow = true;
Serial.println("Motion ended.");
delay(50);
}
}
}