ถ้าคุณเคยสงสัยว่าค้างคาวจะบินในที่มืดได้ยังไง หรือทำไมโรบอทถึงหลีกเลี่ยงสิ่งกีดขวาง คำตอบก็คือการใช้ Ultrasonic Sensor หรือ "เซนเซอร์อัลตราโซนิก" นั่นเอง Sensor นี้เหมือนหูของค้างคาวที่ส่งคลื่นเสียงที่มนุษย์ฟังไม่ได้ แล้วรอฟัง Echo ที่สะท้อนกลับมา วันนี้เราจะมาเรียนรู้เรื่อง HC-SR04 ซึ่งเป็นตัวเซนเซอร์ยอดนิยมที่ใช้กับ Arduino ได้แล้วจะสามารถสร้างสิ่งอดขมนุนต่างๆ ได้
ภาพรวม: HC-SR04 คืออะไร
HC-SR04 เป็น Ultrasonic Sensor ขนาดเล็ก ใช้งานง่าย และราคาไม่แพง โดยหลักการทำงานคือ ส่งคลื่นเสียง (Ultrasonic wave) ที่ความถี่ประมาณ 40 kHz ออกไปกระแทกวัตถุ แล้ว Sensor จะรับฟังเสียงที่สะท้อนกลับมา จากนั้นคำนวณเวลาที่เสียงใช้ไปแล้วกลับ เพื่อหาระยะห่างระหว่างตัว Sensor กับวัตถุ ยิ่งใกล้ยิ่งคืนเวลาแบบรวดเร็ว ยิ่งไกลเวลาก็ยิ่งนาน
อุปกรณ์ที่ต้องใช้
ถ้าคุณต้องการลองใช้ HC-SR04 กับ Arduino บ้าน คุณจะต้องเตรียมอุปกรณ์พื้นฐานเหล่านี้ไว้ ครบถ้วนพร้อมพบทั่ว เริ่มจาก Arduino Board (แนะนำ Arduino Uno) ที่เป็นใจกลางของโปรเจค HC-SR04 Sensor จำนวน 1 ตัว เพื่อวัดระยะห่าง Breadboard และ Jumper wire เพื่อเชื่อมต่ออุปกรณ์ต่างๆ แล้วยังมี USB Cable เพื่ออัปโหลดโค้ดและให้ไฟเลี้ยง Arduino นอกจากนี้ขอแนะนำว่าให้มี LED หรือ Buzzer เพื่อสร้างสัญญาณแจ้งเตือนเมื่อวัตถุเข้ามาใกล้
วัสดุหลัก:
• Arduino Uno Board
• HC-SR04 Sensor
• Breadboard
• Jumper Wire
วัสดุเสริม (ไม่บังคับ):
• LED (สีแดง/สีเขียว)
• Buzzer (เสียงแจ้งเตือน)
• 220Ω Resistor
• USB Cable
หลักการทำงาน: เสียงแทนการมองเห็น
HC-SR04 ทำงานโดยใช้หลักการ Echo Location เหมือนที่ค้างคาวใช้สำหรับวิศวกรรม Sensor มี 2 ส่วนหลัก: Transmitter (ตัวส่ง) ที่ปล่อยคลื่นเสียงความถี่สูง (Ultrasonic wave) ออกไป และ Receiver (ตัวรับ) ที่รับฟังเสียงที่กระเด้งกลับ กระบวนการทั้งหมดเป็นดังนี้ Arduino ส่งสัญญาณให้ HC-SR04 ปล่อยเสียง Ultrasonic ออกไป คลื่นเสียงเดินทางไปกระแทกวัตถุ และสะท้อนกลับมาหา Sensor จากนั้น Sensor จะวัดเวลาที่เสียงใช้ไป ยิ่งไกลเวลาก็ยิ่งนาน จากเวลานี้ Arduino จะคำนวณระยะห่างโดยใช้สูตร: ระยะห่าง = (เวลา × ความเร็วเสียง) / 2 ตัวหารด้วย 2 เพราะว่าเสียงต้องวิ่งไปและกลับ
จุดสำคัญที่ต้องรู้:
• HC-SR04 สามารถวัดระยะห่างได้ไกลสุดประมาณ 2-400 ซม.
• ความถี่การส่ง: ประมาณ 40 kHz (มนุษย์ฟังไม่ได้)
• ต้องใช้ 4 ขา: VCC (ไฟ+5V), GND (กราวด์), TRIG (สัญญาณส่ง), ECHO (รับสัญญาณ)
• ตอบสนองเร็ว และมีความแม่นยำค่อนข้างดี
ใช้ได้ทำอะไรบ้าง
HC-SR04 เป็นเซนเซอร์ที่มีหลายโปรเจคสามารถประยุกต์ใช้ได้ เช่น ก่อนอื่นคือ Robot Obstacle Avoidance - สร้างโรบอทที่สามารถบินหรือเดินได้โดยหลีกเลี่ยงสิ่งกีดขวางอัตโนมัติ ประโยชน์ของการใช้ Sensor นี้ก็คือ โรบอทจะรู้ว่ามีของขวางข้างหน้าและเปลี่ยนทิศทางเสียก่อนชน นอกจากนี้ยังมี Distance Measurement - ใช้วัดระยะห่างของสิ่งต่างๆ เช่น วัดระดับน้ำในถัง วัดความสูงของชั้นวาง หรือแม้แต่ระยะห่างของรถยนต์ Parking Distance Alert - ติดตั้งบนรถเพื่อแจ้งเตือนคนขับเมื่อเข้าใกล้สิ่งกีดขวาง Health Monitoring - ใช้วัดระยะห่างของวัตถุเพื่อตรวจสอบการเคลื่อนไหว เหมาะสำหรับระบบรักษาความปลอดภัย
ขั้นตอนการติดตั้งและเชื่อมต่อ
การเชื่อมต่อ HC-SR04 กับ Arduino ไม่ยุ่งยากเลย เพียงแค่ทำตามขั้นตอนต่อไปนี้ ขั้นแรก ให้เชื่อมต่อ VCC ของ Sensor เข้ากับ 5V บน Arduino GND ของ Sensor เข้า GND บน Arduino TRIG ของ Sensor เข้า Digital Pin 8 ของ Arduino (หรือ Pin อื่นตามใจชอบ) และ ECHO ของ Sensor เข้า Digital Pin 9 ของ Arduino หลังจากนั้นปลั๊ก USB Cable เข้า Arduino เพื่อให้ไฟเลี้ยง เพียงเท่านี้ก็พร้อมโหลดโค้ดแล้ว
โค้ดพื้นฐานเริ่มต้น
นี่คือโค้ด Arduino ที่ใช้อ่านค่าระยะห่างจาก HC-SR04 โค้ดนี้จะส่งสัญญาณ Trigger ไปยัง Sensor รับ Echo กลับมา คำนวณเวลา แล้วแสดงระยะห่างผ่าน Serial Monitor
const int trigPin = 8; const int echoPin = 9; void setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); long duration = pulseIn(echoPin, HIGH); int distance = duration * 0.034 / 2; Serial.print("Distance: "); Serial.print(distance); Serial.println(" cm"); delay(500); }
โค้ดนี้จะ: ส่ง Trigger signal 10 ไมโครวินาที รอรับ Echo กลับ คำนวณระยะห่าย จากสูตร (ระยะ = เวลา × 0.034 / 2) และแสดงผลทาง Serial Monitor ทุกครั้งครึ่งวินาที
บทสรุป: เริ่มต้นเสียว
HC-SR04 เป็นเซนเซอร์ที่ยอดเยี่ยมสำหรับมือใหม่ในโลก Arduino และสิ่งประดิษฐ์ที่เป็นไปได้นั้นไม่มีขีดจำกัด ตั้งแต่โรบอทอย่างง่ายไปจนถึงระบบรักษาความปลอดภัยที่ซับซ้อน ถ้าคุณเพิ่งเริ่มต้น ลองเริ่มจากการอ่านค่าระยะห่างแล้วแสดงผลผ่าน Serial Monitor หลังจากที่เข้าใจแล้ว ก็สามารถเพิ่มเติมว่านัสสัญญาณ LED, Buzzer หรือหัวเคลื่อนที่ได้ต่อไป ความสุขในการสร้างสิ่งนั้นเกิดจากการลองผิดลองถูก เพราะฉะนั้นอย่าเกรงใจที่จะทดลอง!
ต้องการเรียนรู้เพิ่มเติมเกี่ยว Sensor และ Arduino?
ติดตามบทความและคำแนะนำอื่นๆ จาก Globalbyteshop Blog