โปรเจกต์ Arduino กับเซนเซอร์ตรวจจับความเคลื่อนไหว (PIR Motion Sensor)
ในโปรเจกต์นี้ คุณจะได้เรียนรู้วิธีการสร้างวงจรอย่างง่ายด้วย Arduino และเซนเซอร์ PIR เพื่อตรวจจับความเคลื่อนไหว โดยเราจะตั้งค่าให้ไฟ LED สว่างขึ้นทันทีเมื่อมีการเคลื่อนไหวเกิดขึ้นในบริเวณที่กำหนด
รู้จักกับ PIR Motion Sensor
PIR Motion Sensor เป็นอุปกรณ์ที่เหมาะมากสำหรับการตรวจจับการเคลื่อนไหว คำว่า PIR ย่อมาจาก “Passive Infrared” โดยหลักการทำงานคือเซนเซอร์จะวัดแสงอินฟราเรดที่แผ่ออกมาจากวัตถุในระยะที่มองเห็น
ดังนั้น มันจึงสามารถตรวจจับการเคลื่อนไหวได้จากการเปลี่ยนแปลงของระดับอินฟราเรดในสภาพแวดล้อม ซึ่งเหมาะอย่างยิ่งสำหรับการตรวจจับว่ามีคนเดินเข้ามาในระยะของเซนเซอร์หรือไม่
การปรับแต่งเซนเซอร์: โดยทั่วไปเซนเซอร์จะมีตัวต้านทานปรับค่าได้ (Potentiometer) 2 ตัวติดตั้งอยู่:
- ตัวซ้าย: ปรับหน่วงเวลา (Delay Time)
- ตัวขวา: ปรับความไวในการตรวจจับ (Sensitivity)
🛠 อุปกรณ์ที่ต้องใช้
- Arduino UNO R3 x 1 ชิ้น
- PIR Motion Sensor (HC-SR501) x 1 ตัว
- หลอด LED x 1 ชุด
- สายจัมเปอร์ (Jumper Cables)
🔌 การต่อวงจร (Pinout)

การเชื่อมต่อเซนเซอร์ PIR กับ Arduino นั้นทำได้ง่ายมาก เพราะมีเพียง 3 ขา ดังนี้:
| PIR Sensor Pin | Arduino Pin |
|---|---|
| GND | GND |
| OUT (Signal) | Digital Pin 2 |
| 5V (VCC) | 5V |
*สำหรับหลอด LED ให้ต่อขาบวก (ขายาว) เข้ากับ Pin 13 และขาลบ (ขาสั้น) เข้ากับ GND ของ Arduino
💻 Arduino Code
คัดลอกโค้ดด้านล่างนี้ไปวางในโปรแกรม Arduino IDE และอัปโหลดลงบอร์ดของคุณ:
/*
Arduino with PIR motion sensor
โปรเจกต์ตรวจจับความเคลื่อนไหวอย่างง่าย
*/
int led = 13; // กำหนดขาสำหรับ LED
int sensor = 2; // กำหนดขาสำหรับ Output ของเซนเซอร์
int state = LOW; // สถานะเริ่มต้น (ไม่มีการเคลื่อนไหว)
int val = 0; // ตัวแปรสำหรับเก็บค่าที่อ่านได้จากเซนเซอร์
void setup() {
pinMode(led, OUTPUT); // ตั้งค่า LED เป็น Output
pinMode(sensor, INPUT); // ตั้งค่าเซนเซอร์เป็น Input
Serial.begin(9600); // เริ่มต้นการสื่อสาร Serial
}
void loop(){
val = digitalRead(sensor); // อ่านค่าสัญญาณจากเซนเซอร์
if (val == HIGH) { // หากเซนเซอร์ตรวจพบการเคลื่อนไหว (ค่าเป็น HIGH)
digitalWrite(led, HIGH); // เปิดไฟ LED
delay(100);
if (state == LOW) {
Serial.println("Motion detected!"); // แสดงข้อความเมื่อพบการเคลื่อนไหว
state = HIGH; // อัปเดตสถานะเป็น HIGH
}
}
else {
digitalWrite(led, LOW); // ปิดไฟ LED
delay(200);
if (state == HIGH){
Serial.println("Motion stopped!"); // แสดงข้อความเมื่อการเคลื่อนไหวหยุดลง
state = LOW; // อัปเดตสถานะเป็น LOW
}
}
}
✨ สรุปท้ายบทความ
บทความนี้แสดงให้เห็นถึงการใช้งาน PIR Motion Sensor เบื้องต้นร่วมกับ Arduino ซึ่งคุณสามารถนำไปประยุกต์ใช้ในโปรเจกต์ที่ซับซ้อนขึ้นได้ เช่น ระบบไฟทางเดินอัตโนมัติตอนกลางคืน หรือระบบรักษาความปลอดภัยในบ้านเบื้องต้น
หากคุณต้องการเพิ่มความปลอดภัย สามารถเปลี่ยนจาก LED เป็นโมดูลรีเลย์เพื่อควบคุมหลอดไฟบ้าน หรือต่อกับบัซเซอร์ (Buzzer) เพื่อส่งเสียงแจ้งเตือนได้ทันที!