PIR Sensor HC-SR501 Arduino Nano Tutorial - คำแนะนำทีละขั้นตอน

Pir Sensor Hc Sr501 Arduino Nano Tutorial Kha Naeana Thi La Khan Txn



Arduino Nano เป็นบอร์ดที่ใช้ไมโครคอนโทรลเลอร์ขนาดกะทัดรัด สามารถประมวลผลได้หลายคำสั่งและสร้างการตอบสนองที่ต้องการ การใช้ Arduino Nano GPIO พินสามารถเชื่อมต่อเซ็นเซอร์ได้หลากหลาย หนึ่งในเซ็นเซอร์ประกอบด้วย PIR ( HC-SR501 ). บทความนี้จะกล่าวถึงการเชื่อมต่อเซ็นเซอร์ PIR กับบอร์ด Arduino Nano

รู้เบื้องต้นเกี่ยวกับ PIR Motion Sensor (HC-SR501)

เซ็นเซอร์ตรวจจับการเคลื่อนไหว PIR หรือที่เรียกว่า a พี ใจร้อน ฉัน อินฟราเรด เซ็นเซอร์เป็นอุปกรณ์อิเล็กทรอนิกส์ชนิดหนึ่งที่ใช้กันทั่วไปเพื่อตรวจจับการมีอยู่ของมนุษย์หรือสัตว์ในระยะที่กำหนด HC-SR501 เป็นเซ็นเซอร์ตรวจจับการเคลื่อนไหว PIR รุ่นยอดนิยมที่ขึ้นชื่อเรื่องความน่าเชื่อถือและใช้งานง่าย







ทำงานโดยใช้เครื่องตรวจจับอินฟราเรดแบบพาสซีฟเพื่อตรวจจับการเปลี่ยนแปลงของอุณหภูมิ ซึ่งอาจเกิดจากการเคลื่อนไหวของคนหรือสัตว์ หากตรวจพบการเคลื่อนไหวของวัตถุ สัญญาณจะถูกส่งไปยังอุปกรณ์ต่างๆ เช่น ระบบรักษาความปลอดภัยหรือแผงควบคุมไฟ เซ็นเซอร์ตรวจจับการเคลื่อนไหว PIR มักใช้ในระบบรักษาความปลอดภัยภายในบ้าน ระบบไฟอัตโนมัติ และการใช้งานอื่นๆ ที่จำเป็นในการตรวจจับการมีอยู่ของบุคคลหรือสัตว์



การทำงานของ PIR Motion Sensor (HC-SR501)

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



เมื่อเซ็นเซอร์ไม่ได้ใช้งาน เซ็นเซอร์จะตรวจสอบอุณหภูมิอย่างต่อเนื่องในขอบเขตการมองเห็น หากเซ็นเซอร์ตรวจพบการเปลี่ยนแปลงของอุณหภูมิ เช่น อาจเกิดจากการเคลื่อนไหวของคนหรือสัตว์ เซ็นเซอร์จะส่งสัญญาณไปยังอุปกรณ์ที่เชื่อมต่อ เมื่อใช้สัญญาณนี้ เราสามารถสร้างการตอบสนอง เช่น เปิดไฟหรือเปิดใช้งานการเตือน





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



  • ความไว กำหนดว่าต้องมีการเปลี่ยนแปลงอุณหภูมิมากน้อยเพียงใดเพื่อกระตุ้นเซ็นเซอร์ PIR สามารถตั้งค่าได้ตามการเคลื่อนไหวที่เราต้องการตรวจจับ เช่น การเคลื่อนไหวของเมาส์หรือใบไม้
  • เวลาล่าช้า กำหนดระยะเวลาที่เซ็นเซอร์ยังคงทำงานหลังจากตรวจพบการเปลี่ยนแปลงของอุณหภูมิ

พินเอาท์ HC-SR501

พินเซ็นเซอร์ PIR ประกอบด้วย:

  • วี.ซี.ซี : นี่คือพินพลังงานของเซ็นเซอร์ PIR เชื่อมต่อกับแหล่งจ่ายไฟ 5V
  • จีเอ็นดี : นี่คือพินกราวด์ เชื่อมต่อกับ GND หรือขั้วลบของแหล่งพลังงาน
  • ออก : นี่คือขาออก โดยจะส่งสัญญาณดิจิทัลไปยังอุปกรณ์ที่เชื่อมต่อเมื่อเซ็นเซอร์ตรวจพบการเคลื่อนไหว
  • ปรับการหน่วงเวลา : นี่คือหมุดปรับความไว สามารถปรับความไวของเซนเซอร์ได้
  • ปรับความไว : นี่คือหมุดปรับการหน่วงเวลา สามารถใช้เพื่อปรับระยะเวลาที่เซ็นเซอร์ยังคงทำงานอยู่หลังจากตรวจพบการเปลี่ยนแปลงของอุณหภูมิ

PIR HC-SR501 มีขาออก 3 ขา VCC และ GND สองพินเป็นพินพลังงานในขณะที่พินกลางหรือพินที่สามใช้สำหรับสัญญาณทริกเกอร์ดิจิตอลเอาต์พุต

การเชื่อมต่อ PIR Motion Sensor (HC-SR501) กับ Arduino Nano

การเชื่อมต่อเซ็นเซอร์ตรวจจับการเคลื่อนไหว PIR เช่น HC-SR501 กับไมโครคอนโทรลเลอร์ Arduino Nano เป็นกระบวนการที่ไม่ซับซ้อนซึ่งสามารถทำได้ด้วยส่วนประกอบเพียงไม่กี่ชิ้น ในการเริ่มต้น ให้เชื่อมต่อพิน VCC และ GND บนเซ็นเซอร์ PIR เข้ากับพิน 5V/VIN และ GND บน Arduino Nano ตามลำดับ จากนั้น ต่อขา OUT บนเซ็นเซอร์ PIR เข้ากับขาอินพุตดิจิทัลใดๆ บน Arduino Nano

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

ส่วนประกอบที่จำเป็นคือ:

  • Arduino นาโน
  • เซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR (HC-SR501)
  • นำ
  • ตัวต้านทาน 220 โอห์ม
  • สายเชื่อมต่อ
  • เขียงหั่นขนม

แผนผัง

ภาพแสดงแผนภาพการเดินสายไฟของเซ็นเซอร์ PIR กับบอร์ด Arduino Nano:

รหัส
เปิด ไป (สภาพแวดล้อมการพัฒนาแบบบูรณาการ). เลือกกระดานนาโนแล้วคลิกปุ่มอัปโหลดหลังจากเขียนโค้ดด้านล่าง

int LED_PIN = 3 ; /* กำหนดพินแล้ว สำหรับ นำ */
int PIR_Sensor_Pin = 5 ; /* เข็มหมุด สำหรับ เซ็นเซอร์ PIR */
int pirState = จริง ; /* สมมติว่าตรวจไม่พบการเคลื่อนไหว */
int วาล = 0 ; /* ตัวแปรเพื่อเก็บสถานะพิน */
int ขั้นต่ำ mSecsLowForInactive = 2543 ; /* ถือว่าตรวจไม่พบการเคลื่อนไหว ถ้า ไม่พบกิจกรรมใดๆ สำหรับ 2 วินาที */
int timeLow ที่ไม่ได้ลงนามนาน;
บูลีน takeLowTime;
int สอบเทียบเวลา = 10 ; /* เวลา สำหรับ การสอบเทียบเซ็นเซอร์ตามแผ่นข้อมูล */
การตั้งค่าเป็นโมฆะ ( ) {
โหมดพิน ( LED_PIN, เอาต์พุต ) ; /* LED ประกาศ เช่น เอาต์พุต */
โหมดพิน ( PIR_Sensor_Pin, อินพุต ) ; /* ตรวจพบพินเซนเซอร์ เช่น ป้อนข้อมูล */
Serial.begin ( 9600 ) ;
Serial.print ( 'เซ็นเซอร์สอบเทียบ' ) ;
สำหรับ ( int ฉัน = 0 ; ฉัน  minimummSecsLowForInactive ) {
ไพรสเตต = จริง ;
Serial.println ( 'สิ้นสุดการเคลื่อนไหว!' ) ;
ล่าช้า ( ห้าสิบ ) ;
}
}
}

รหัสเริ่มต้นด้วยการกำหนดพินอินพุตสำหรับเซ็นเซอร์ PIR และพินเอาต์พุตสำหรับ LED ตัวแปร int วาล ถูกกำหนด ตัวแปรนี้จะเก็บสถานะของพินเอาต์พุต PIR

ต่อไปโดยใช้ โหมดพิน ฟังก์ชัน LED และพินเซนเซอร์ถูกกำหนดให้เป็นเอาต์พุตและอินพุตตามลำดับ ใช้เงื่อนไข if หาก Arduino Nano ได้รับอินพุตสูงจากเซ็นเซอร์ LED จะเปิดขึ้น ในทำนองเดียวกัน หากตรวจไม่พบการเคลื่อนไหว สัญญาณ LOW จะถูกส่งไปยัง Arduino ส่งผลให้ LED ปิด

เอาต์พุต

เอาต์พุตด้านล่างจะแสดงขึ้นเมื่อเซ็นเซอร์ PIR ตรวจพบการเคลื่อนไหว เซ็นเซอร์ตัวแรกจะปรับเทียบตัวเองหลังจากนั้นจะสามารถตรวจจับการเคลื่อนไหวใดๆ

ฮาร์ดแวร์

LED ดับเพราะตรวจไม่พบการเคลื่อนไหว

ขณะนี้รถกำลังเคลื่อนที่และไฟ LED จะสว่างขึ้นเมื่อตรวจพบการเคลื่อนไหว

บทสรุป

Arduino Nano สามารถเชื่อมต่อกับเซ็นเซอร์ต่างๆ เช่น PIR ใช้เซ็นเซอร์นี้ตรวจจับการเคลื่อนไหวของวัตถุใดๆ ก็ได้ เซ็นเซอร์ PIR กับ Arduino มีการใช้งานที่หลากหลาย เช่น ระบบรักษาความปลอดภัยในบ้านหรือไฟถนน บทความนี้ครอบคลุมรหัส Arduino ที่สมบูรณ์และขั้นตอนที่เกี่ยวข้องในการตรวจจับการเคลื่อนไหวของวัตถุ