วิธีใช้เซ็นเซอร์ตรวจจับความเคลื่อนไหว HC-SR501 PIR กับ Arduino

How to Use the HC-SR501 PIR Motion Sensor with Arduino

HC-SR501 เป็นโมดูลเซ็นเซอร์ความเคลื่อนไหวอินฟราเรดแบบพาสซีฟ (PIR) ยอดนิยมที่ตรวจจับการเคลื่อนไหวโดยการวัดการเปลี่ยนแปลงรังสีอินฟราเรดในสภาพแวดล้อม มักใช้ในการเปิดใช้งานการเคลื่อนไหวระบบรักษาความปลอดภัยและโครงการ IoT บทช่วยสอนนี้จะแนะนำคุณผ่านการตั้งค่าและใช้ HC-SR501 กับ Arduino


สิ่งที่คุณต้องการ

  1. HC-SR501 โมดูลเซ็นเซอร์เคลื่อนไหว PIR
  2. คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
  3. เครื่องหั่นขนมปังและสายจัมเปอร์
  4. คอมพิวเตอร์ที่ติดตั้ง Arduino IDE

ขั้นตอนที่ 1: ทำความเข้าใจกับเซ็นเซอร์ HC-SR501

โมดูล HC-SR501 มีความไวที่ปรับได้และการตั้งค่าเวลาหน่วงเวลาทำให้มันมีความหลากหลายสำหรับแอปพลิเคชันการตรวจจับการเคลื่อนไหวที่หลากหลาย มันทำงานกับพลังงาน 5V และส่งสัญญาณสูงเมื่อตรวจพบการเคลื่อนไหว

HC-SR501 Pinout

เข็มหมุด การทำงาน
VCC แหล่งจ่ายไฟ (5V)
ออก สัญญาณเอาต์พุตดิจิตอล
gnd พื้น

การตั้งค่าที่ปรับได้

  1. ความไว: ปรับช่วงการตรวจจับ (สูงสุด 7 เมตร)
  2. เวลาหน่วง: ปรับระยะเวลาของสัญญาณสูงหลังจากตรวจพบการเคลื่อนไหว (ประมาณ 5 วินาทีถึง 5 นาที)

ขั้นตอนที่ 2: การเดินสาย HC-SR501 ไปยัง Arduino

นี่คือวิธีเชื่อมต่อ HC-SR501 กับ Arduino Uno:

HC-SR501 PIN พิน Arduino
VCC 5V
ออก พิน 2
gnd gnd

ขั้นตอนที่ 3: อัปโหลดรหัส

นี่คือตัวอย่างร่างเพื่อตรวจสอบการตรวจจับการเคลื่อนไหวและแสดงสถานะบนจอภาพอนุกรม:

const int pirPin = 2; // Connect HC-SR501 OUT to pin 2

void setup() {
  pinMode(pirPin, INPUT);
  Serial.begin(9600);
  Serial.println("HC-SR501 PIR Motion Sensor Test");
}

void loop() {
  int motionStatus = digitalRead(pirPin); // Read the sensor output

  if (motionStatus == HIGH) {
    Serial.println("Motion detected!");
  } else {
    Serial.println("No motion detected.");
  }

  delay(500); // Update every 500ms
}

ขั้นตอนที่ 4: ทดสอบการตั้งค่า

  1. เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
  2. เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
  3. อัปโหลดรหัสโดยคลิก อัพโหลด.
  4. เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น 9600.
  5. ย้ายภายในช่วงของเซ็นเซอร์และสังเกตสถานะการเคลื่อนไหวที่พิมพ์บนจอภาพอนุกรม

ตัวเลือก: การควบคุม LED ด้วยการเคลื่อนไหว

คุณสามารถแก้ไขรหัสเพื่อเปิด LED เมื่อตรวจพบการเคลื่อนไหว:

เดินสายไฟ LED

พิน LED พิน Arduino
ขั้วบวก (+) PIN 13
แคโทด (-) gnd

รหัสดัดแปลง

const int pirPin = 2; // Connect HC-SR501 OUT to pin 2
const int ledPin = 13; // Connect LED to pin 13

void setup() {
  pinMode(pirPin, INPUT);
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
  Serial.println("HC-SR501 PIR Motion Sensor Test");
}

void loop() {
  int motionStatus = digitalRead(pirPin); // Read the sensor output

  if (motionStatus == HIGH) {
    digitalWrite(ledPin, HIGH); // Turn on LED
    Serial.println("Motion detected!");
  } else {
    digitalWrite(ledPin, LOW); // Turn off LED
    Serial.println("No motion detected.");
  }

  delay(500); // Update every 500ms
}

แอปพลิเคชันของ HC-SR501

  1. แสงที่เปิดใช้งานการเคลื่อนไหว
  2. สัญญาณเตือนผู้บุกรุก
  3. ระบบอัตโนมัติในบ้านอัจฉริยะ
  4. อุปกรณ์ IoT ที่ขับเคลื่อนด้วยความใกล้ชิด

การแก้ไขปัญหา

  • ไม่พบการเคลื่อนไหว: ตรวจสอบให้แน่ใจว่าเซ็นเซอร์ใช้พลังงานอย่างถูกต้องและมีการปรับความไวอย่างเหมาะสม
  • ทริกเกอร์เท็จ: ลดเสียงรบกวนด้านสิ่งแวดล้อม (เช่นแหล่งความร้อน) และหลีกเลี่ยงการได้รับแสงแดดโดยตรง
  • การอ่านที่ไม่แน่นอน: ตรวจสอบการต่อสายดินที่เหมาะสมและแหล่งจ่ายไฟที่มั่นคง

บทสรุป

คุณสามารถเชื่อมต่อเซ็นเซอร์การเคลื่อนไหว HC-SR501 PIR กับ Arduino ได้สำเร็จ เซ็นเซอร์อเนกประสงค์นี้เหมาะสำหรับการตรวจจับการเคลื่อนไหวในโครงการต่าง ๆ ทดลองกับคุณสมบัติเพิ่มเติมเช่นการปรับความไวหรือการรวมเข้ากับส่วนประกอบอื่น ๆ เพื่อสร้างระบบที่ใช้การเคลื่อนไหวขั้นสูง!

แสดงความคิดเห็น

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.