บทที่ 19: การเขียนโปรแกรมอ่านค่าจากเซนเซอร์ตรวจจับความเคลื่อนไหว

เซนเซอร์ตรวจจับความเคลื่อนไหว (PIR Motion Sensor) เป็นเซนเซอร์ที่ใช้หลักการตรวจจับรังสี Infrared จากวัตถุที่มีการเคลื่อนไหวผ่านอุปกรณ์รวมแสง มายังตัว Pyro Electric ซึ่งจะเปลี่ยนพลังงานความร้อน จากรังสี Infrared เป็นพลังงานไฟฟ้าและให้สัญญาณออกมาเป็นแบบดิจิตอล

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

สำหรับบอร์ด Arduino Learning Kit มี PIR motion sensor ติดตั้งไว้อยู่ในลักษณะเป็นช่องสำหรับถอดเสียบได้ เพื่อให้ผู้ใช้งานสามารถถอดออกมาปรับค่าต่าง ๆ ที่อยู่ด้านใต้โมดูล ซึ่งในการใช้งานจะต้องปรับ DIP Switch ของตัว PIR motion sensor ให้อยู่ในตำแหน่ง ON เสียก่อน ส่วนขาที่ใช้ติดต่อกับไมโครคอนโทรลเลอร์ ดูได้จากตารางด้านล่าง

| OUTPUT | |
|---|---|
| Arduino Uno | 7 |
| Arduino Nano | 12 |
| ESP32(ESP-WROM-32) | 14 |
ตารางที่ 19. 1 ขาที่ต่อใช้งาน
เขียนโปรแกรมอ่านค่าจากเซนเซอร์ตรวจจับความเคลื่อนไหว
-
เขียนโปรแกรมตามตัวอย่างด้านล่าง

-
ทำการ upload โปรแกรมที่เขียนขึ้นลงบน Arduino หรือ ESP32 จากนั้นเปิดหน้าต่าง Serial Monitor ทดลองใช้มือโบกผ่าน PIR Motion sensor แล้วดูผลการเปลี่ยนแปรง

อธิบายการทำงานของโค้ด
ในการทำงานของโค้ดข้างบน จะเขียนแบบง่ายๆ ไม่ซับซ้อน โดยจะตรวจเช็กค่าเอาต์พุตของ PIR motion sensor ถ้าค่าที่อ่านได้เป็นลอจิก HIGH นั่นหมายความว่ามีการตรวจจับความเคลื่อนไหวเกิดขึ้น โปรแกรมจะแสดงข้อความ *** Detected *** ออกมาทาง Serial Monitor แต่ถ้าค่าที่อ่านได้เป็นลอจิก LOW แสดงว่าไม่มีการตรวจจับความเคลื่อนไหวเกิดขึ้น โปรแกรมจะพิมพ์ . ออกทางหน้าจอ Serial Monitor
แบบฝึกหัดสำหรับทบทวนความเข้าใจและประยุกต์ใช้งานจริง
-
เขียนโปรแกรมสั่งเปิดไฟอัตโนมัติ เมื่อมีคนอยู่ในห้อง โดยใช้ PIR motion sensor เป็นตัวจับความเคลื่อนไหว และ Relay1 ทำหน้าที่เป็นสวิตช์เปิด-ปิดไฟ โดยมีเงื่อนไขว่า ระบบจะทำงานตั้งแต่เวลา 16:00 น. – 06:30 น.




Leave a Reply