กลับไปหน้ารวมไฟล์
distance-measurement-with-an-ultrasonic-sensor-hy-srf05-bf2923.md

การวัดระยะทางด้วย Ultrasonic Sensor HY-SRF05

Ultrasonic sensor จะวัดระยะทางของวัตถุที่อยู่ใกล้ที่สุด และส่งผลลัพธ์ไปยัง serial port สามารถทำงานได้ตั้งแต่ 2 cm ถึง 3 m โดยจะวัดเวลาที่สัญญาณใช้ในการเดินทางไปถึงวัตถุและกลับมายัง sensor

การเชื่อมต่อ:

  • Vcc -> 5 V
  • Trig -> pin 13 (digital pin)
  • Echo -> pin 12 (digital pin)
  • Out ->
  • GND -> GND

ภาพรวมเทคโนโลยี Sonar

โปรเจกต์ HY-SRF05 Ultrasonic Ranging เป็นบทเรียนพื้นฐานของการ "วัดแบบไม่สัมผัส" (Non-Contact Measurement) แม้จะต่อสายได้ง่าย แต่ก็ช่วยให้ผู้สร้างได้เรียนรู้ฟิสิกส์ของอะคูสติกและคณิตศาสตร์ของความเร็ว เวลา และระยะทาง HY-SRF05 เป็นรุ่นที่พัฒนามาจาก HC-SR04 แบบคลาสสิก โดยมีความแม่นยำสูงกว่าและสามารถทำงานได้ในโหมดการต่อสายที่แตกต่างกันหลายโหมด โปรเจกต์นี้เป็นก้าวแรกในการสร้างหุ่นยนต์อัตโนมัติที่สามารถ "มองเห็น" สิ่งกีดขวางได้

แกนฮาร์ดแวร์และชั้นการตรวจจับ

  • Arduino UNO: ทำหน้าที่เป็นผู้จับเวลาหลัก โดยจะสร้างพัลส์ trigger ที่แม่นยำ 10-microsecond และวัดค่า echo ที่สะท้อนกลับมาด้วยความละเอียดระดับ microsecond
  • HY-SRF04/05 Ultrasonic Sensor: ทำหน้าที่เป็น "Acoustic Transceiver" ของระบบ
    • Transmitter (T): ปล่อยคลื่น ultrasonic ความถี่ 40kHz (มองไม่เห็นและไม่ได้ยิน)
    • Receiver (R): รับฟัง "echo" ที่สะท้อนกลับจากพื้นผิวทึบ
  • ขา (Pins) และโหมด:
    • Trig (Pin 13): ขา Input ที่ใช้สำหรับเริ่มการวัด
    • Echo (Pin 12): ขา Output ที่จะส่งสัญญาณ HIGH เป็นระยะเวลาเท่ากับเวลาการเดินทางของเสียง
    • Out (MODE Pin): บน SRF05 ขานี้สามารถใช้เพื่อตั้งค่าการทำงานแบบ 1-pin หรือ 2-pin ได้

ตรรกะและคณิตศาสตร์เชิงมิติ

การคำนวณระยะทางจะอิงตามความเร็วเสียงสากล (ประมาณ 343 m/s ที่อุณหภูมิห้อง):

  1. วัฏจักรของพัลส์: Arduino จะส่งพัลส์ HIGH ขนาด 10us ไปยังขา Trig จากนั้น sensor จะตอบสนองโดยการปล่อยคลื่น ultrasonic ออกไป 8 รอบ
  2. การจับเวลาการเดินทาง: ขา Echo จะเปลี่ยนเป็น HIGH Arduino ใช้ฟังก์ชัน pulseIn() เพื่อรอจนกว่าขาจะเปลี่ยนเป็น LOW ซึ่งจะให้ "เวลาการเดินทาง" (Time of Flight) ทั้งหมดในหน่วย microsecond
  3. การคำนวณเป็นหน่วย Centimeters:
    • เนื่องจากเสียงเดินทางไปยังวัตถุและ กลับมา เราจึงหารเวลาด้วย 2
    • ใช้ค่าคงที่ 0.0343 (cm ต่อ microsecond) ระยะทางคือ: Distance = (Time / 2) * 0.0343
  4. การรายงานข้อมูล: ค่าสุดท้ายจะถูกพิมพ์ไปยัง Serial Monitor ในรูปแบบที่มนุษย์อ่านง่าย (เช่น "15.4 cm")

ทำไมโปรเจกต์นี้จึงสำคัญ

โปรเจกต์นี้สอนพื้นฐานของ Pulse-Width Timing และ Acoustic Physics แสดงให้เห็นถึงวิธีการแปลงปรากฏการณ์ทางสิ่งแวดล้อมที่มองไม่เห็นให้เป็นตัวแปรดิจิทัลที่จับต้องได้ เมื่อเข้าใจอย่างถ่องแท้แล้ว คุณสามารถใช้ข้อมูลระยะทางนี้เพื่อสั่งการ Alarm (Parking Sensors), ขับเคลื่อนมอเตอร์ (Obstacle Avoiding Robots) หรือแม้แต่วัดระดับของเหลวในถังเก็บน้ำ (IoT Tank Monitor)

ข้อมูล Frontmatter ดั้งเดิม

title: "Distance Measurement with an Ultrasonic Sensor HY-SRF05"
description: "Measure the world around you."
author: "Nicholas_N"
category: "Sensors & Environment"
tags:
  - "sensor"
views: 105199
likes: 10
price: 435
difficulty: "Easy"
components:
  - "1x Arduino UNO"
  - "1x HY-SRF05 Ultrasonic Sensor"
tools: []
apps: []
downloadableFiles: []
documentationLinks: []
passwordHash: "a61e7a6c7b6620308844e79cc15021d3f59ed45cff5c6ff966ea3aff84db03a6"
encryptedPayload: "U2FsdGVkX18LM5AxmfILt/DP4N3Kq1n6Qj76s52lTq6LVW7BJV/zFIEijx+wmZ9kKqc9/C4oIhvJCDxpkE0btGDcizKWdfqaYH8bveXZuqM="
seoDescription: "Learn how to measure distance using Arduino and Ultrasonic Sensor HY-SRF05. Simple and accurate for object detection projects."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/distance-measurement-with-an-ultrasonic-sensor-hy-srf05-bf2923_cover.jpg"
lang: "th"