หน้าเว็บ

วันศุกร์ที่ 19 กันยายน พ.ศ. 2557

วัดระยะทางด้วยคลื่นอัลตร้าโซนิก

แนะนำโมดูลวัดระยะทางด้วยคลื่นอัลตร้าโซนิก HC-SR04

UniconProject06-fig26_CO-[Converted]

<อ้างอิงจากวารสาร The Prototype Electronics ฉบับที่ 40>


     HC-SR04 เป็นโมดูลวัดระยะทางที่ใช้หลักการสะท้อนของคลื่นอัลตร้าโซนิก ราคาประหยัด โดยตัว HC-SR04 มีแหล่งกำเนิดคลื่นอัลตร้าโซนิกส่งไปสะท้อนกับวัตถุที่อยู่ข้างหน้ากลับมายังตัวรับสัญญาณ โดยระยะทางที่วัดได้จะสัมพันธ์กับระยะเวลาที่คลื่นอัลตร้าโซนิกเคลื่อนที่ไปกระทบวัตถุและสะท้อนกลับมายังตัวรับ เมื่อรู้ระยะเวลาที่คลื่นอัลตร้าโซนิกสะท้อนกลับมา จึงนำมาคำนวณหาเป็นระยะทางระหว่างโมดูล HC-SR04 กับวัตถุได้ โดยโมดูล HC-SR04 วัดระยะทางในช่วง 2 ถึง 500 ซม. (5 เมตร) มีความละเอียดอยู่ที่ 0.3 ซม. ใช้ไฟเลี้ยง +5V
     ในรูปที่ 1 แสดงส่วนประกอบทั้งหมดของชุดโมดูล HC-SR04 เพื่อใช้ในการติดต่อกับบอร์ดไมโครคอนโทรลเลอร์ โดยเฉพาะอย่างยิ่งกับบอร์ด Unicon


รูปที่ 1 โมดูล HC-SR04 พร้อมกับสาย JST3AC-8 จำนวน 2 เส้น เพี่อใช้เชื่อมต่อกับบอร์ด Unicon และบอร์ดไมโครคอนโทรลเลอร์อื่นๆ

การติดต่อกับบอร์ด Unicon

     การเชื่อมต่อกับบอร์ด Unicon ของโมดูล HC-SR04 ใช้สายสัญญาณแบบ JST3AC-8 จำนวน 2 เส้น ดังรูปที่ 2 โดยปลายสายด้านหัวต่อ IDC ตัวเมียของสาย JST3AC-8 เส้นที่ 1 ต่อกับคอนเน็กเตอร์ของโมดูล HC-SR04 ที่ขาไฟเลี้ยง (+V), กราวด์ (GND) และ Trigger ส่วนเส้นที่ 2 ให้ต่อสายสัญญาณ (สีขาว เส้นกลาง) กับขา Echo ส่วนหัวต่อ IDC ตัวเมียของสายสีแดงและดำที่เหลือให้ปล่อยลอยไว้ ส่วนปลายสายด้านที่เป็นหัวต่อ JST ให้นำไปเสียบจุดต่อพอร์ต 2 สำหรับขา Trigger และพอร์ต 3 สำหรับขา Echo บนบอร์ด Unicon

UniconProject06-fig26_CO-[Converted]
รูปที่ 2 วงจรเชื่อมต่อเพื่อใช้งานโมดูล HC-SR04 กับบอร์ด Unicon

    ในการสื่อสารข้อมูลกับโมดูล HC-SR04 ใช้ขาสัญญาณ 2 ขา คือ Trigger และ Echo โดยขา Trigger มีไว้สำหรับสั่งงานให้โมดูล HC-SR04 ส่งคลื่นอัลตร้าโซนิกออกไปข้างหน้า เมื่อคลื่นอัลตร้าโซนิกสะท้อนกลับมาจากวัตถุเป้าหมาย จะส่งสัญญาณพัลส์ออกมาทางขา Echo โดยสัญญาณนี้จะมีความกว้างที่สัมพันธ์กับระยะทางที่วัดได้ ดังนั้น ไมโครคอนโทรลเลอร์จะต้องส่งสัญญาณพัลส์ที่มีความกว้างพัลส์อย่างน้อย 10 ไมโครวินาทีไปยังขา Trigger ของโมดูล HC-SR04 แล้วรอรับสัญญาณพัลส์ที่ส่งกลับมาทางขา Echo เพื่อวัดความกว้างของสัญญาณพัลส์ ดังรูปที่ 3

 UniconProject06-fig27_CO-[Converted]
รูปที่ 3 แสดงการติดต่อระหว่างบอร์ด Unicon กับโมดูล HC-SR04 เพื่อวัดระยะทาง

    เมื่อวัดความกว้างของสัญญาณพัลส์จากขา Echo ในหน่วยไมโครวินาทีแล้ว นำไปคำนวณเป็นระยะทางในหน่วยเซนติเมตรหรือนิ้วได้ดังนี้
         ระยะทาง (เซนติเมตร) = (ระยะเวลาในหน่วยไมโครวินาที / 29) / 2
         ระยะทาง (นิ้ว) = (ระยะเวลาในหน่วยไมโครวินาที / 74) / 2

เขียนโค้ด


     ตัวอย่างโปรแกรมสำหรับติดต่อกับโมดูล HC-SR04 ของบอร์ด Unicon แสดงในโปรแกรมที่ 1 ฟังก์ชั่นหลักของโปรแกรมนี้คือ getDistance();  โดยการทำงานของฟังก์ชั่นนี้ เริ่มต้นด้วยการกำหนดให้ขาพอร์ต 30 เป็น
เอาต์พุตดิจิตอล แล้วส่งสัญญาณพัลส์กว้าง 10 ไมโครวินาทีออกไป จากนั้นกำหนดให้ขาพอร์ต 6 เป็นอินพุตดิจิตอล เพื่อรอรับสัญญาณพัลส์กลับมาจากขา Echo ของโมดูล HC-SR04 โดยใช้ฟังก์ชั่น pulseIn(); จากนั้นนำค่าความกว้างของพัลส์ที่วัดได้มาทำการคำนวณเป็นระยะทางในหน่วยเซนติเมตรและนิ้ว
     จากนั้นจึงนำค่าที่วัดได้ไปแสดงผลที่จอแสดงผล GLCD-XT ทั้งในหน่วยเซนติเมตรและหน่วยนิ้ว

UniconProject06-Program07
โปรแกรมที่ 6 ไฟล์ Unicon_HCSR04.ino สำหรับติดต่อกับโมดูลวัดระยะทางด้วยคลื่นอัลตร้าโซนิก HC-SR04 ของบอร์ด Unicon

 

ทดสอบวัดระยะทาง

     เมื่อรันโปรแกรม ที่จอแสดงผล GLCD-XT จะแสดงข้อความและค่าของการวัดในหน่วยเซนติเมตรและนิ้วทันที ทดลองใช้มือบังที่ด้านหน้าของโมดูล HC-SR04 แล้วเลื่อนมือเข้าใกล้และถอยห่างออกจากโมดูล สังเกตค่าการวัดที่ได้ ดังรูปที่ 4 อาจตรวจสอบความแม่นยำในการวัดด้วยการใช้ไม้บรรทัดหรือตลับเมตรวัดเทียบได้
     จากการทดสอบในพื้นที่โล่งกับวัตถุที่มีรูปร่างแน่นอนเพียง 1 ชิ้น โดยมีการปรับระยะทดสอบอย่างต่อเนื่องพบว่า
โมดูล HC-SR04 วัดระยะทางได้ระหว่าง 2 เซนติเมตร ถึง 5 เมตร แต่ระยะทำการที่ให้ผลค่อนข้างแน่นอนคือ 4 เซนติเมตร ถึง 3 เมตร

UniconProject06-fig28-[Converted] 
รูปที่ 4 แสดงผลการทำงานของโมดูล HC-SR04 บนบอร์ด Unicon

ไม่มีความคิดเห็น: