親子 STEM DIY:利用 Arduino 製作簡單人體感應警報器
分享
想和小朋友一起接觸 Arduino,又希望 DIY 專案有即時、明顯的效果?今次我們利用 Arduino Uno、HC-SR501 人體紅外線感應器、有源蜂鳴器模組及 LED,製作一個簡單的人體感應警報器。
整個項目無需焊接,主要使用麵包板及杜邦線接駁,適合 Arduino 初學者及親子 STEM DIY。完成後,當感應器偵測到移動,Arduino 便會控制蜂鳴器響起,同時亮起 LED。
預計時間:約 30–45 分鐘(視乎年齡及經驗)
建議年齡:8 歲或以上,並由成人陪同
🧰 需要準備甚麼?
- Arduino Uno R3 × 1
- USB 線 × 1
- HC-SR501 人體紅外線感應器 × 1
- 3-pin 有源蜂鳴器模組 × 1
- LED × 1
- 220Ω 電阻 × 1
- 麵包板 × 1
- 杜邦線若干
這個項目使用的是3-pin 有源蜂鳴器模組,並非單純的兩腳裸蜂鳴器。本文示範使用的模組為低電平觸發(LOW-level trigger)。
🔌 接線方法
開始接線前,先拔除 Arduino USB 線。完成接線並檢查 VCC、GND 及訊號線位置後,再接上 USB 供電。
👀 認識 HC-SR501:感應距離及延遲時間點調?
HC-SR501 上面除了白色半球形 Fresnel lens 外,通常還有兩個可調旋鈕及一個 H/L 觸發模式選擇。
① Sensitivity / Detection Distance(靈敏度/感應距離)
調節這個旋鈕,可以改變 PIR 的感應距離及靈敏程度。
小提示:
如果感應範圍太大或太容易觸發,可以嘗試降低 Sensitivity;如果距離太短,則可以逐步調高。實際感應效果會受環境、安裝位置及模組本身影響。
② Time Delay(延遲時間)
這個旋鈕控制感應觸發後,OUT 輸出維持有效狀態的大約時間。
如果將延遲時間調得較長,偵測到移動後,警報效果會維持較久。
③ Trigger Mode:H / L
HC-SR501 部分版本設有 H / L 觸發模式選擇:
- H(Repeatable Trigger):感應期間可以重新觸發,輸出時間可因持續偵測而延長。
- L(Non-repeatable Trigger):觸發後維持一段設定時間,期間不會重新計時。
初學者建議先保持模組原有設定,完成基本接線及測試後,再嘗試調校。
HC-SR501 人體紅外線感應器
- VCC → Arduino 5V
- GND → Arduino GND
- OUT → Arduino D7
3-pin 有源蜂鳴器模組
- VCC → Arduino 5V
- GND → Arduino GND
- I/O / Signal → Arduino D8
外接 LED
- Arduino D13 → 220Ω 電阻 → LED 長腳(正極)
- LED 短腳(負極)→ Arduino GND
如果不想接外置 LED,也可以直接使用 Arduino Uno 上的內置 LED(D13)作為視覺提示。

🛠️ 實際完成效果
以下是我們實際接線及測試中的 DIY 成品。實物照片可以更直觀地看到 Arduino、麵包板、PIR 感應器、蜂鳴器及 LED 的實際組合方式。

🎥 實際測試:人體感應警報器運作效果
接線完成並上載程式後,可以直接測試感應效果。當 HC-SR501 偵測到移動,Arduino 會讀取感應器的 HIGH 訊號,然後控制低電平觸發的蜂鳴器模組輸出 LOW,使蜂鳴器響起,同時亮起 LED。
實際操作影片:展示人體感應器偵測移動後,蜂鳴器及 LED 的反應。
💻 Arduino 程式碼
以下程式配合本文使用的低電平觸發有源蜂鳴器模組。PIR 偵測到移動時會輸出 HIGH,而 Arduino 會將 D8 設為 LOW,令蜂鳴器啟動。
const int pirPin = 7;
const int buzzerPin = 8;
const int ledPin = 13;
void setup() {
pinMode(pirPin, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
int motion = digitalRead(pirPin);
if (motion == HIGH) {
digitalWrite(buzzerPin, LOW); // Low-level trigger: ON
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(buzzerPin, HIGH); // OFF
digitalWrite(ledPin, LOW);
}
}
🔍 原理是甚麼?
HC-SR501 是一款 PIR(Passive Infrared)人體紅外線感應模組。它並不是「認出某個人」,而是感應環境中的紅外線輻射變化。當有人或其他熱源移動並造成紅外線變化時,模組會在 OUT 腳輸出訊號。
- HC-SR501 偵測到移動。
- OUT 輸出 HIGH。
- Arduino 偵測到 HIGH 後,將 D8 設為 LOW。
- 由於本文使用的蜂鳴器模組是低電平觸發,因此蜂鳴器響起。
- D13 同時輸出 HIGH,LED 亮起。
⏱️ 第一次通電為甚麼可能會亂響?
HC-SR501 第一次通電後通常需要一段初始化時間。約 30–60 秒內,感應器可能出現較不穩定或誤觸發的情況,屬於常見現象。第一次測試時可以先讓感應器通電並等待一會兒,再開始正式測試。
👨👩👧 親子 STEM 可以學到甚麼?
- 電子接線:認識 VCC、GND、訊號線及 LED 正負極。
- Arduino 基礎:了解數碼輸入及數碼輸出。
- 感應器原理:理解 PIR 如何透過紅外線變化偵測移動。
- 程式邏輯:學習 if / else 及 digitalRead()、digitalWrite()。
- 問題排查:學習檢查電源、接線及程式是否正確。
💡 完成後可以怎樣升級?
- 加入 LCD 顯示器,顯示偵測狀態。
- 改用 ESP32-C3,進一步研究 Wi-Fi 及手機通知。
- 加入磁簧開關(Reed Switch),製作門窗開關提示器。
- 調整程式,加入延遲、計時或不同的警報邏輯。
⚠️ DIY 安全提示
- 本項目正常操作主要使用低電壓 DC 供電,不涉及家用市電接線。
- 接線前先拔除 Arduino USB 線,完成後檢查 VCC、GND 及有沒有短路,再通電。
- 兒童進行 DIY 時應由成人陪同及檢查接線。
- 小型電子零件應遠離幼童,以免誤吞。
- 蜂鳴器聲音較大,測試時不要長時間靠近耳朵。
❓ 常見問題
Q1:一定要用外接 LED 嗎?
不一定。Arduino Uno 本身已有 D13 內置 LED,可以直接用作狀態指示。如果希望效果更明顯,才加上外接 LED 及 220Ω 電阻。
Q2:為甚麼蜂鳴器的程式是 LOW 才會響?
因為本文使用的 3-pin 有源蜂鳴器模組屬於低電平觸發設計。D8 輸出 LOW 時啟動,輸出 HIGH 時關閉。不同蜂鳴器模組的觸發方式可能不同,購買或接線前應確認實際模組。
Q3:HC-SR501 是否可以偵測到人?
它主要是偵測紅外線輻射的變化,並不是進行人物身份辨識。人在感應範圍內移動時,通常會造成可被 PIR 感應的紅外線變化。
Q4:第一次開機後為甚麼可能沒有立即正常工作?
HC-SR501 通常需要一段初始化時間。剛通電時出現短暫不穩定或誤觸發並不罕見,可以先等待約 30–60 秒再測試。
🏪 想試 Arduino STEM DIY?
如果你正在尋找 Arduino、PIR 感應器、蜂鳴器、LED、麵包板或其他 STEM / DIY 電子零件,可以到新昌電腦深水埗鴨寮街實體店了解及選購。
新昌電腦有限公司
香港九龍深水埗鴨寮街 246 號地下
WhatsApp:+852 9319 5163
總結
這個 Arduino 人體感應警報器是一個簡單而具即時效果的 STEM DIY 專案。由接線、感應器輸入到蜂鳴器及 LED 輸出,整個過程可以讓初學者實際理解 Arduino 如何接收感測資料,再透過程式作出反應。
對親子 DIY 而言,最有趣的地方正是完成後可以立即測試:一有人移動,蜂鳴器響起,LED 同時亮起。