
Ultrasonic Ranging Module HC-SR04 โมดูลเพื่อใช้ในการวัดระยะทางโดยไม่มีการสัมผัส
วันนี้เรามาคุยกันเรื่องของการวัดระยะทางโดยไม่ต้องมีการสัมผัสกับพื้นผิวของวัตถุที่ต้องการวัดระยะนะครับ อุปกรณ์ตัวนี้ราคาถูกสุดๆ จึงมีความเหมาะสมกับผู้เริ่มต้นใช้งาน Arduino Board เพื่อศึกษาการทำงานเบื้องต้นของ Arduino ครับ และแน่นอนมันใช้กับบอร์ดได้ทุกชนิดนะครับ ทั้งที่เป็น Arduino หรือ เป็นไมโครคอนโทรลเลอร์อย่างอื่น
ก่อนอื่นมาคุยกันถึงหลักการที่ใช้ในการวัดระยะทางโดยไม่ต้องใช้ไม้บรรทัดกันก่อนครับ
หลักการแบบสั้นๆ นะครับ การทำงานของ Ultrasonic sensor ก็เหมือนกับค้างคาวที่บินในเวลากลางคืนครับ คือใช้การส่งคลื่นเสียงที่หูมนุษย์ไม่สามารถได้ยินออกไปสะท้อนวัตถุที่ต้องการวัดระยะ แล้วจับเวลาเสียงสะท้อน เพื่อคำนวณระยะทางครับ
คราวนี้มาแบบยาวๆ เพื่อความเข้าใจกันมากขึ้นครับ อุปกรณ์ตัวนี้เริ่มต้นทำงานโดยการส่งสัญญาณเริ่มต้นยาว 10 ไมโครวินาที ไปสั่งให้แหล่งกำเนิดเสียงทำงาน จากนั้นจะส่งคลื่นเสียงความถี่ 40 kHz ออกไป 8 พัสส์ แล้วรอฟังเสียงสะท้อนครับ ตัวซ้ายจะเป็นตัวส่งคลื่นเสียงออกไป ส่วนตัวขวาในรูปจะเป็นตัวรับความถี่ที่สะท้อนกลับมาครับ
เนื่องจากเสียงที่ส่งออกไปถึงแม้จะไม่ได้ยินเพราะเกิน 20 kHZ ที่หูมนุษย์จะรับฟังได้ แต่เนื่องจากยังคงเป็นคลื่นเสียง ดังนั้นความเร็วของเสียงจึงแปรผันตามอุณหภูมิด้วยตามสูตรนี้ครับ
C ≈ 331.5 + 0.61 θ (m/s)
ดังนั้นแน่นอนครับ เวลาผู้ผลิตเขียนโปรแกรมออกแบบไว้ก็อยู่ที่อุณภูมิทำงานที่อาจจะแตกต่างจากบ้านเรา ก็ทำให้ค่าที่วัดได้มีความผิดพลาดไปบ้างครับ
อีกส่วนที่จะต้องรู้ก็คือช่วงวัด และมุมที่สามารถวัดได้ครับ และเนื่องจากคุณสมบัติของอุปกรณ์ที่ใช้ในการกำเนิดเสียง และรูปร่างของตัวลำโพง (Horn) ก็ทำให้อุปกรณ์ตัวนี้มีมุมวัด 15 องศา (Measuring Angle) ครับ โดยสามารถวัดระยะห่างได้ตั้งแต่ 2 ซม. จนถึง 4 เมตร
ระยะทางก็คำนวณได้จากสูตรนี้ครับ
ระยะทาง = ความยาวของสัญญาณสะท้อน x 340 (m/s) / 2
และแน่นอนครับคุณภาพของสัญญาณ ความแม่นยำก็ขึ้ันกับวัสดุ + ลักษณะของพื้นผิวที่ใช้วัดด้วยครับ
คราวนี้มาถึงวิธีการใช้งานกันครับ
ตัว Ultrasonic sensor มีอยู้ด้วยกัน 4 pin คือ VCC GND Trig และ Echo ครับ
VCC ต่อที่ขา 4
GND ต่อที่ขา 7
Trig ต่อที่ขา 5
Echo ต่อที่ขา 6
ตัว VCC จะถูกใช้เป็นตัวควบคุมการเริ่มทำงาน หรือ หยุดทำงานของอุปกรณ์ จากนั้นสัญญาณเริ่มต้นในการปล่อยพัลส์จะถูกส่งไปที่ ขา Trig และ สัญญาณ Echo จะถูกส่งกลับไปที่ตัว Arduino เพื่อคำนวณระยะทางต่อไป
ฟังดูก็ไม่ค่อยยากเท่าไหร่ แถมโชคดีที่มีคนเอา Library มาปล่อยให้ใช้กันฟรีๆ ดาว์นโหลดได้ที่นี่ครับ
https://github.com/elrodri/Ultrasonic-HC-SR04
หลังจากดาวน์โหลดมาแล้วก็ติดตั้ง library ลงในโฟลเดอร์ Arduino ให้ถูกต้องนะครับ รายละเอียดให้ดูตามนี้ครับ
เมื่อติดตั้งถูกต้องแล้วก็เริ่มใช้งานโดยการเปิด Example ที่ให้มาพร้อมกับ Library ที่ดาว์นโหลดมาจากเว็บครับดังนี้ครับ
// Ultrasonic - Library for HR-SC04 Ultrasonic Ranging Module. // Rev.4 (06/2012) // J.Rodrigo ( http://www.jra.so ) // more info at http://www.ardublog.com // Wiki: https://github.com/elrodri/Ultrasonic-HC-SR04/wiki/Plug-&-Play #include Ultrasonic Ultrasonic(5,6); // (Trig PIN,Echo PIN) void setup() { Serial.begin(9600); pinMode(4, OUTPUT); // VCC pin pinMode(7, OUTPUT); // GND ping digitalWrite(4, HIGH); // VCC +5V mode digitalWrite(7, LOW); // GND mode } void loop() { Serial.print(ultrasonic.Ranging(CM)); // CM or INC Serial.println(" cm" ); delay(100); } |
เสร็จแล้วก็สั่ง Upload ตามปกติครับ จะได้ผลการวัดใน serial monitor ตามนี้ครับ
ก็เป็นอันว่าเสร็จเรียบร้อย ถ้าจะมีอะไรผิดพลาดก็มีอยู่ 2 ส่วนใหญ่ๆที่ต้องตรวจเช็คนะครับ
1. ถ้าวัดแล้วผิด หรือ ไม่มีค่าออกหน้าจอ Serial monitor ก็อาจจะเป็นเพราะต่อสายไม่ถูก
2. ถ้า upload ไม่ได้ก็อาจะะเป็นเพราะลง library ไม่ถูกต้อง ตัว Ultrasonic.h หาไม่เจอครับ
ข้อมูลเพิ่มเติมของ Ultraosonic HC-SR04 หาได้จาก link ด้านล่างนะครับ
http://www.ia.omron.com/support/guide/50/further_information.html
http://www.micropik.com/PDF/HCSR04.pdf
ขอโฆษณาหน่อย อุปกรณ์ HC-SR04 นี้มีมาให้กับ Starter Kit II Starter Kit V Starter Kit VI หรือ จะซื้อแยก ก็ได้ครับ HC - SR04
โดย Mountain "A"
หน้าที่เข้าชม | 6,528,486 ครั้ง |
ผู้ชมทั้งหมด | 2,030,475 ครั้ง |
เปิดร้าน | 21 พ.ค. 2556 |
ร้านค้าอัพเดท | 26 เม.ย. 2561 |