โปรเจกต์ การ Interfacing Arduino uno กับ PIR motion sensor
ใน tutorial พื้นฐานนี้ เราจะมาดูวิธีการ interface Arduino uno กับ PIR motion sensor ( HC-SR501 ) มาเริ่มกันเลย !!!
ใน tutorial พื้นฐานนี้ เราจะมาดูวิธีการ interface Arduino uno กับ PIR motion sensor ( HC-SR501 ) มาเริ่มกันเลย !!!
ก่อนอื่นเราจำเป็นต้องรู้ว่า motion sensor คืออะไรและทำงานอย่างไร?
Passive infrared sensor (PIR) หรือที่เรียกว่า motion sensor คืออุปกรณ์อิเล็กทรอนิกส์ที่ตรวจจับการเคลื่อนไหวโดยใช้เซนเซอร์ pyroelectric หนึ่งคู่ในการตรวจจับพลังงานความร้อนในสภาพแวดล้อมรอบข้าง เซนเซอร์ทั้งสองตัวนี้วางอยู่เคียงข้างกัน และเมื่อความต่างของสัญญาณระหว่างเซนเซอร์ทั้งสองเปลี่ยนไป (สมมติว่ามีคนเดินเข้ามาในห้อง) เซนเซอร์ก็จะเริ่มทำงาน โดยพื้นฐานแล้วมันทำหน้าที่ดักจับการเคลื่อนไหว มีขั้วต่อสามขั้วคือ Gnd, Vcc และ signal pin พร้อมด้วย 3V regulator, time delay controller, sensitivity controller และ BIS001

ขั้วต่อของ PIR - Gnd, Vcc และ signal pin โดย Gnd ถือเป็นพินลบและเชื่อมต่อกับ ground ของระบบ Vcc ทำหน้าที่จ่ายไฟให้กับพินซึ่งโดยปกติจะเป็น 5V ส่วน signal pin คือ output pin

Arduino Uno : Arduino Uno คือบอร์ด microcontroller ที่ใช้พื้นฐานจาก ATmega328 มี digital input/output pins จำนวน 20 พิน (ซึ่ง 6 พินสามารถใช้เป็น PWM outputs และอีก 6 พินสามารถใช้เป็น analog inputs), resonator ขนาด 16 MHz, พอร์ตเชื่อมต่อ USB, ช่องเสียบสายไฟ (power jack), ส่วนหัวสำหรับ in-circuit system programming (ICSP) และปุ่ม reset
ตอนนี้เราสามารถเริ่มลงมือกับวงจรได้แล้ว :
การเชื่อมต่อ PIR - เชื่อมต่อ Gnd pin ของ sensor เข้ากับ ground ของ Arduino เชื่อมต่อ Vcc pin ของ sensor เข้ากับ 5V ของ Arduino และเชื่อมต่อ signal / output pin เข้ากับ digital pin 5 ของบอร์ด Arduino
การเชื่อมต่อ Led - ต่อขั้วบวกของ led เข้ากับ digital pin 9 ของ Arduino ขั้วลบควรเชื่อมต่อกับขาข้างใดข้างหนึ่งของ resistor และขาอีกข้างของ resistor ควรเชื่อมต่อกับ Gnd ของ Arduino
อ้างอิงจาก circuit diagram เพื่อความเข้าใจที่ชัดเจนยิ่งขึ้น นอกจากนี้ยังมีการอัปโหลด circuit diagram ไว้ในส่วนของ hardware เพื่อให้คุณสามารถดาวน์โหลดได้

Code :
const int led = 9; // ต่อขั้วบวกของ Led เข้ากับ digital pin 9
const int sensor = 5; // ต่อ signal pin ของ sensor เข้ากับ digital pin 5
const int state = LOW;
const int val = 0;
void setup() { // Void setup จะทำงานเพียงครั้งเดียวหลังจากจ่ายไฟหรือ reset บอร์ด Arduino
pinMode(led, OUTPUT); // กำหนดให้ Led เป็น output ในส่วนนี้
pinMode(sensor, INPUT); // กำหนดให้ PIR motion sensor เป็น input ในส่วนนี้
Serial.begin(9600);
}
void loop(){ // Void loop จะทำงานซ้ำไปเรื่อยๆ และประกอบไปด้วยโปรแกรมหลัก
val = digitalRead(sensor);
if (val == HIGH) {
digitalWrite(led, HIGH);
delay(500); // หน่วงเวลาของ led คือ 500
if (state == LOW) {
Serial.println(" Motion detected");
state = HIGH;
}
}
else {
digitalWrite(led, LOW);
delay(500);
if (state == HIGH){
Serial.println("The action/ motion has stopped");
state = LOW;
}
}
}
สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้