Posted in

โปรเจกต์ Arduino กับเซนเซอร์ตรวจจับความเคลื่อนไหว (PIR Motion Sensor)

โปรเจกต์ 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) เพื่อส่งเสียงแจ้งเตือนได้ทันที!