การใช้งานเซนเซอร์ Ultrasonic HC-SR04 ร่วมกับ Arduino
บทความนี้จะพาคุณไปทำความรู้จักกับเซนเซอร์วัดระยะทาง Ultrasonic Sensor HC-SR04 โดยเราจะอธิบายหลักการทำงาน คุณสมบัติต่างๆ และตัวอย่างโปรเจกต์การใช้งานร่วมกับบอร์ด Arduino พร้อมผังการต่อวงจรและโค้ดตัวอย่างที่คุณสามารถนำไปประยุกต์ใช้ได้ทันที
รายละเอียดเบื้องต้น
เซนเซอร์ HC-SR04 ใช้คลื่นเสียงโซนาร์ (Sonar) ในการวัดระยะทางไปยังวัตถุ สามารถวัดระยะได้ตั้งแต่ 2 ซม. ถึง 400 ซม. (0.8 นิ้ว ถึง 157 นิ้ว) โดยมีความแม่นยำอยู่ที่ 0.3 ซม. ซึ่งเพียงพอสำหรับโปรเจกต์งานอดิเรกส่วนใหญ่ ตัวโมดูลประกอบด้วยตัวส่ง (Transmitter) และตัวรับ (Receiver) คลื่นอัลตราโซนิกในตัวเดียว
📋 คุณสมบัติและสเปกทางเทคนิค
- แรงดันไฟเลี้ยง: +5V DC
- กระแสไฟฟ้าขณะสแตนด์บาย: < 2mA
- กระแสไฟฟ้าขณะทำงาน: 15mA
- มุมที่ทำงานได้ดี: < 15°
- ระยะการวัด: 2 ซม. – 400 ซม. (1 นิ้ว – 13 ฟุต)
- ความละเอียด: 0.3 ซม.
- มุมในการวัด: 30 องศา
- ความกว้างพัลส์อินพุตทริกเกอร์: 10uS TTL pulse
- สัญญาณเอาต์พุต Echo: พัลส์ TTL ที่แปรผันตามระยะทาง
🧠 หลักการทำงานของเซนเซอร์
เซนเซอร์อัลตราโซนิกใช้หลักการสะท้อนของเสียงในการคำนวณระยะทาง ดังนี้:
- ตัวส่งสัญญาณ (Trig pin) ปล่อยคลื่นเสียงความถี่สูง (40 kHz) ออกไป
- คลื่นเสียงเดินทางผ่านอากาศไปกระทบวัตถุแล้วสะท้อนกลับมา
- ตัวรับสัญญาณ (Echo pin) รับคลื่นเสียงที่สะท้อนกลับมานั้น
เราสามารถคำนวณระยะทางได้จากเวลาที่คลื่นเสียงใช้ในการเดินทางไปและกลับ โดยใช้ความเร็วเสียงในอากาศเป็นเกณฑ์ (ประมาณ 343 เมตร/วินาที ที่อุณหภูมิ 20 องศาเซลเซียส)
สูตรการคำนวณ: ระยะทาง = (ความเร็วเสียง * เวลา) / 2
📍 Pinout ของ HC-SR04
| ขา (Pin) | หน้าที่ |
|---|---|
| VCC | ต่อไฟเลี้ยง +5V |
| Trig | ส่งพัลส์เพื่อเริ่มการวัด (Trigger Input) |
| Echo | ส่งพัลส์กลับมาตามระยะทาง (Echo Output) |
| GND | ต่อสายกราวด์ร่วม |
🔌 การต่อใช้งานร่วมกับ Arduino
ในโปรเจกต์ตัวอย่างนี้ เราจะให้อ่านค่าระยะทางจากเซนเซอร์แล้วแสดงผลผ่าน Serial Monitor บนคอมพิวเตอร์
อุปกรณ์ที่ต้องใช้:
- บอร์ด Arduino UNO
- เซนเซอร์ Ultrasonic (HC-SR04)
- Breadboard และสายจัมเปอร์
การเชื่อมต่อสายไฟ:

| HC-SR04 | Arduino Pin |
|---|---|
| VCC | 5V |
| Trig | Pin 11 |
| Echo | Pin 12 |
| GND | GND |
💻 Arduino Code
คัดลอกโค้ดนี้ไปวางในโปรแกรม Arduino IDE และอัปโหลดลงบอร์ดของคุณ:
/*
* โค้ดตัวอย่างการใช้งาน Ultrasonic Sensor HC-SR04
*/
int trigPin = 11; // ขา Trigger
int echoPin = 12; // ขา Echo
long duration, cm, inches;
void setup() {
// เริ่มการสื่อสาร Serial
Serial.begin (9600);
// กำหนดหน้าที่ของขา Input และ Output
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// ส่งพัลส์ HIGH ขนาด 10 ไมโครวินาทีเพื่อกระตุ้นเซนเซอร์
// ส่ง LOW นำหน้าสั้นๆ เพื่อให้สัญญาณสะอาด
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// อ่านสัญญาณพัลส์จาก Echo pin
// ซึ่งจะสะท้อนเวลาที่ใช้ในการเดินทางของเสียง (ไมโครวินาที)
duration = pulseIn(echoPin, HIGH);
// แปลงหน่วยเวลาเป็นระยะทาง
// ระยะทางในหน่วยเซนติเมตร: (เวลา/2) / 29.1
cm = (duration/2) / 29.1;
// ระยะทางในหน่วยนิ้ว: (เวลา/2) / 74
inches = (duration/2) / 74;
// แสดงผลค่าที่ได้ทาง Serial Monitor
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(250); // หน่วงเวลา 0.25 วินาทีก่อนการวัดรอบถัดไป
}
✨ สรุปท้ายบทความ
เซนเซอร์ HC-SR04 เป็นอุปกรณ์ที่ราคาประหยัดและใช้งานง่าย เหมาะสำหรับสร้างหุ่นยนต์หลบหลีกสิ่งกีดขวาง ระบบตรวจจับที่จอดรถ หรือโปรเจกต์วัดระดับน้ำ หวังว่าคู่มือนี้จะช่วยให้คุณเริ่มต้นใช้งานเซนเซอร์ตัวนี้ได้อย่างรวดเร็วนะครับ!