
- Arduino 教程
- Arduino - 首頁
- Arduino - 概述
- Arduino - 開發板描述
- Arduino - 安裝
- Arduino - 程式結構
- Arduino - 資料型別
- Arduino - 變數與常量
- Arduino - 運算子
- Arduino - 控制語句
- Arduino - 迴圈
- Arduino - 函式
- Arduino - 字串
- Arduino - 字串物件
- Arduino - 時間
- Arduino - 陣列
- Arduino 函式庫
- Arduino - I/O 函式
- Arduino - 高階 I/O 函式
- Arduino - 字元函式
- Arduino - 數學庫
- Arduino - 三角函式
- Arduino 高階應用
- Arduino - Due & Zero
- Arduino - 脈寬調製 (PWM)
- Arduino - 隨機數
- Arduino - 中斷
- Arduino - 通訊
- Arduino - 積體電路間通訊 (I2C)
- Arduino - 序列外圍介面 (SPI)
- Arduino 專案
- Arduino - 閃爍LED
- Arduino - 漸變LED
- Arduino - 讀取模擬電壓
- Arduino - LED 條形圖
- Arduino - 鍵盤登出
- Arduino - 鍵盤訊息
- Arduino - 滑鼠按鍵控制
- Arduino - 鍵盤序列埠
- Arduino 感測器
- Arduino - 溼度感測器
- Arduino - 溫度感測器
- Arduino - 水位檢測器/感測器
- Arduino - PIR感測器
- Arduino - 超聲波感測器
- Arduino - 連線開關
- 電機控制
- Arduino - 直流電機
- Arduino - 伺服電機
- Arduino - 步進電機
- Arduino 與聲音
- Arduino - 音調庫
- Arduino - 無線通訊
- Arduino - 網路通訊
- Arduino 有用資源
- Arduino - 快速指南
- Arduino - 有用資源
- Arduino - 討論
Arduino - PIR感測器
PIR 感測器允許您感知運動。它們用於檢測人是否移入或移出感測器的範圍。它們通常在家用或商用電器和裝置中發現。它們通常被稱為 PIR、 “被動紅外”、“熱釋電”或“紅外運動”感測器。
以下是 PIR 感測器的優點:
- 體積小巧
- 廣角鏡頭
- 易於介面
- 價格低廉
- 低功耗
- 易於使用
- 不會磨損

PIR 由熱釋電感測器製成,它是一個圓形金屬罐,中間有一個矩形晶體,可以檢測紅外輻射水平。所有物體都會發出低水平的輻射,物體越熱,發出的輻射就越多。運動檢測器中的感測器分為兩半。這是為了檢測運動(變化)而不是平均紅外水平。這兩半連線在一起,以便相互抵消。如果其中一半看到的紅外輻射比另一半多或少,則輸出將變高或變低。

PIR 具有可調節設定,並在 3 針接地/輸出/電源焊盤上安裝了接頭。

對於許多需要檢測人員何時離開或進入區域的基本專案或產品,PIR 感測器非常適合。請注意,PIR 不會告訴您周圍有多少人或他們與感測器的距離。鏡頭通常固定在一定距離的特定掃描範圍內,有時會被家裡的寵物觸發。
所需元件
您將需要以下元件:
- 1 × 麵包板
- 1 × Arduino Uno R3
- 1 × PIR 感測器 (MQ3)
步驟
按照電路圖,進行如下所示的連線。

草圖
在您的計算機上開啟 Arduino IDE 軟體。使用 Arduino 語言進行編碼將控制您的電路。點選“新建”開啟一個新的草圖檔案。

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); } } }
程式碼說明
PIR 感測器有三個端子 - Vcc、OUT 和 GND。連線感測器如下:
- 將 +Vcc 連線到 Arduino 開發板上的 +5v。
- 將 OUT 連線到 Arduino 開發板上的數字引腳 2。
- 將 GND 連線到 Arduino 開發板上的 GND。
您可以透過位於感測器板底部的兩個可變電阻器來調節感測器的靈敏度和延遲時間。

一旦感測器檢測到任何運動,Arduino 將透過序列埠傳送一條訊息,說明檢測到運動。PIR 感知運動將延遲一段時間以檢查是否有新的運動。如果沒有檢測到運動,Arduino 將傳送一條新訊息,說明運動已結束。
結果
如果檢測到運動,您將在序列埠上看到一條訊息,並在運動停止時看到另一條訊息。
廣告