HC-SR501 เป็นโมดูลเซ็นเซอร์ความเคลื่อนไหวอินฟราเรดแบบพาสซีฟ (PIR) ยอดนิยมที่ตรวจจับการเคลื่อนไหวโดยการวัดการเปลี่ยนแปลงรังสีอินฟราเรดในสภาพแวดล้อม มักใช้ในการเปิดใช้งานการเคลื่อนไหวระบบรักษาความปลอดภัยและโครงการ IoT บทช่วยสอนนี้จะแนะนำคุณผ่านการตั้งค่าและใช้ HC-SR501 กับ Arduino
สิ่งที่คุณต้องการ
- HC-SR501 โมดูลเซ็นเซอร์เคลื่อนไหว PIR
- คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
ขั้นตอนที่ 1: ทำความเข้าใจกับเซ็นเซอร์ HC-SR501
โมดูล HC-SR501 มีความไวที่ปรับได้และการตั้งค่าเวลาหน่วงเวลาทำให้มันมีความหลากหลายสำหรับแอปพลิเคชันการตรวจจับการเคลื่อนไหวที่หลากหลาย มันทำงานกับพลังงาน 5V และส่งสัญญาณสูงเมื่อตรวจพบการเคลื่อนไหว
HC-SR501 Pinout
เข็มหมุด | การทำงาน |
---|---|
VCC | แหล่งจ่ายไฟ (5V) |
ออก | สัญญาณเอาต์พุตดิจิตอล |
gnd | พื้น |
การตั้งค่าที่ปรับได้
- ความไว: ปรับช่วงการตรวจจับ (สูงสุด 7 เมตร)
- เวลาหน่วง: ปรับระยะเวลาของสัญญาณสูงหลังจากตรวจพบการเคลื่อนไหว (ประมาณ 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: ทดสอบการตั้งค่า
- เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
- เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
- อัปโหลดรหัสโดยคลิก อัพโหลด.
- เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น
9600
. - ย้ายภายในช่วงของเซ็นเซอร์และสังเกตสถานะการเคลื่อนไหวที่พิมพ์บนจอภาพอนุกรม
ตัวเลือก: การควบคุม 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
- แสงที่เปิดใช้งานการเคลื่อนไหว
- สัญญาณเตือนผู้บุกรุก
- ระบบอัตโนมัติในบ้านอัจฉริยะ
- อุปกรณ์ IoT ที่ขับเคลื่อนด้วยความใกล้ชิด
การแก้ไขปัญหา
- ไม่พบการเคลื่อนไหว: ตรวจสอบให้แน่ใจว่าเซ็นเซอร์ใช้พลังงานอย่างถูกต้องและมีการปรับความไวอย่างเหมาะสม
- ทริกเกอร์เท็จ: ลดเสียงรบกวนด้านสิ่งแวดล้อม (เช่นแหล่งความร้อน) และหลีกเลี่ยงการได้รับแสงแดดโดยตรง
- การอ่านที่ไม่แน่นอน: ตรวจสอบการต่อสายดินที่เหมาะสมและแหล่งจ่ายไฟที่มั่นคง
บทสรุป
คุณสามารถเชื่อมต่อเซ็นเซอร์การเคลื่อนไหว HC-SR501 PIR กับ Arduino ได้สำเร็จ เซ็นเซอร์อเนกประสงค์นี้เหมาะสำหรับการตรวจจับการเคลื่อนไหวในโครงการต่าง ๆ ทดลองกับคุณสมบัติเพิ่มเติมเช่นการปรับความไวหรือการรวมเข้ากับส่วนประกอบอื่น ๆ เพื่อสร้างระบบที่ใช้การเคลื่อนไหวขั้นสูง!