Arduino 简明教程

Arduino - PIR Sensor

PIR 传感器让您能够对运动进行感知。它们用于检测人是否在传感器的范围内进出。它们通常出现在家中或企业中使用的装置和小工具中。它们经常被称为 PIR、“被动红外”、“热释电”或“红外运动”传感器。

以下是 PIR 传感器的优势:

  1. Small in size

  2. Wide lens range

  3. Easy to interface

  4. Inexpensive

  5. Low-power

  6. Easy to use

  7. Do not wear out

pir sensor

PIR 由热释电传感器制成,传感器是一个圆形金属罐,中间有一个矩形晶体,可以检测红外辐射水平。任何东西都会发出低水平辐射,并且东西越热,发出的辐射就越多。运动探测器中的传感器被分成两半。这是检测运动(变化)而不是平均红外水平。这两个部分连接在一起,以便它们相互抵消。如果半部分比另一半看到更多或更少的红外辐射,则输出将高或低摆动。

pir

PIR 具有可调节设置,并且在 3 针接地/输出/电源焊盘中安装了一个接头。

pir adjustable settings

对于需要检测有人离开或进入指定区域的大多数基本项目或产品而言,PIR 传感器非常好。请注意,PIR 不会告诉您附近的人数或他们与传感器的距离。镜头通常固定在一定距离的某个扫掠范围,并且有时会被家中的宠物触发。

Components Required

您将需要以下组件:

  1. 1 × Breadboard

  2. 1 × Arduino Uno R3

  3. 1 × PIR 传感器 (MQ3)

Procedure

按照电路图进行操作,并按如下图像所示进行连接。

pir sensor circuit connection

Sketch

在计算机上打开 Arduino IDE 软件。使用 Arduino 语言进行编码将控制您的电路。单击“新建”以新建一个草图文件。

sketch

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);
      }
   }
}

Code to Note

PIR 传感器有三个端子 - Vcc、OUT 和 GND。按照如下方式连接传感器:

  1. 将 +Vcc 连接到 Arduino 板上的 +5v。

  2. 将 OUT 连接到 Arduino 板上的数字引脚 2。

  3. 将 GND 引脚连接到 Arduino 上的 GND。

通过传感器电路板底部的两个可变电阻可以调节传感器的灵敏度和延迟时间。

delay time adjust

传感器检测到任何动作后,Arduino 将通过串行端口发送一条消息来表明侦测到一个动作。PIR(红外热释电传感器)动作感知会延迟一段时间以检查是否有新的动作。如果没有检测到动作,Arduino 会发送一条新消息来说结束动作。

Result

如果检测到动作,您会在串行端口上看到一条消息,如果动作停止,您还会看到另一条消息。