Posted in

การใช้งานเซนเซอร์ Ultrasonic HC-SR04 ร่วมกับ Arduino

การใช้งานเซนเซอร์ 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 ที่แปรผันตามระยะทาง

🧠 หลักการทำงานของเซนเซอร์

เซนเซอร์อัลตราโซนิกใช้หลักการสะท้อนของเสียงในการคำนวณระยะทาง ดังนี้:

  1. ตัวส่งสัญญาณ (Trig pin) ปล่อยคลื่นเสียงความถี่สูง (40 kHz) ออกไป
  2. คลื่นเสียงเดินทางผ่านอากาศไปกระทบวัตถุแล้วสะท้อนกลับมา
  3. ตัวรับสัญญาณ (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 เป็นอุปกรณ์ที่ราคาประหยัดและใช้งานง่าย เหมาะสำหรับสร้างหุ่นยนต์หลบหลีกสิ่งกีดขวาง ระบบตรวจจับที่จอดรถ หรือโปรเจกต์วัดระดับน้ำ หวังว่าคู่มือนี้จะช่วยให้คุณเริ่มต้นใช้งานเซนเซอร์ตัวนี้ได้อย่างรวดเร็วนะครับ!