Arduino PIR傳感器

2018-11-21 16:53 更新

PIR傳感器可以讓你感知運(yùn)動(dòng)。它們用于檢測(cè)人是否進(jìn)入或離開(kāi)傳感器的范圍。通常出現(xiàn)在家庭或企業(yè)使用的電器和小工具中。它們通常被稱為PIR,“被動(dòng)紅外”,“熱電”或“IR運(yùn)動(dòng)”傳感器。

以下是PIR傳感器的優(yōu)點(diǎn):

  • 體積小
  • 鏡頭范圍廣
  • 易于界面
  • 廉價(jià)
  • 低電量
  • 使用方便
  • 不會(huì)磨損

PIR傳感器


PIR由熱電傳感器制成,圓形金屬罐中央有一個(gè)矩形晶體,可以檢測(cè)紅外輻射的水平。所有東西都發(fā)射出低水平的輻射,而東西越熱發(fā)射的輻射就越多。運(yùn)動(dòng)檢測(cè)器中的傳感器分成兩半。這是為了檢測(cè)運(yùn)動(dòng)(變化)而不是平均IR水平。兩個(gè)半部分相互連接,以便彼此抵消。如果一半看到比另一半更多或更少的紅外輻射,則輸出將擺動(dòng)高或低。

PIR


PIR具有可調(diào)設(shè)置,并在3引腳ground/out/power板上安裝了一個(gè)接頭。

可調(diào)設(shè)置

對(duì)于許多需要在人們離開(kāi)或進(jìn)入該區(qū)域進(jìn)行檢測(cè)的基礎(chǔ)項(xiàng)目或產(chǎn)品,PIR傳感器是非常有用的。請(qǐng)注意,PIR不會(huì)告訴你周圍的人數(shù)或與傳感器的距離。鏡頭通常固定在有一定距離的掃描范圍內(nèi),有時(shí)候它們會(huì)被房子里的寵物帶走

必需的組件

你將需要以下組件:

  • 1 × Breadboard 面包板
  • 1 × Arduino Uno R3
  • 1 × PIR傳感器(MQ3)

程序

按照電路圖進(jìn)行連接,如下圖所示。

電路圖

草圖

在計(jì)算機(jī)上打開(kāi)Arduino IDE軟件。使用Arduino語(yǔ)言進(jìn)行編碼控制你的電路。通過(guò)單擊“New”打開(kāi)一個(gè)新的草圖文件。

Sketch

Arduino代碼

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

代碼說(shuō)明

PIR傳感器有三個(gè)端子:Vcc,OUT和GND。按如下所示連接傳感器: 

  • 將+Vcc連接到Arduino板上的+5v。
  • 將OUT連接到Arduino板上的數(shù)字引腳2。
  • 將GND連接到Arduino上的GND。

您可以通過(guò)位于傳感器板底部的兩個(gè)可變電阻器來(lái)調(diào)節(jié)傳感器靈敏度和延遲時(shí)間。

可變電阻器

一旦傳感器檢測(cè)到任何運(yùn)動(dòng),Arduino將通過(guò)串口發(fā)送一條消息,表示檢測(cè)到運(yùn)動(dòng)。PIR感測(cè)運(yùn)動(dòng)將延遲一定時(shí)間以檢查是否存有新的運(yùn)動(dòng)。如果沒(méi)有檢測(cè)到運(yùn)動(dòng),Arduino將發(fā)送一條新消息,說(shuō)明運(yùn)動(dòng)已經(jīng)結(jié)束。

結(jié)果

如果檢測(cè)到運(yùn)動(dòng),你將在串口上看到一條消息,并在運(yùn)動(dòng)停止時(shí)看到另一條消息。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)