POP-X2 Rover บทที่ 5 ติดตั้งและใช้งาน ZX-HCSR04

โมดูลวัดระยะทางด้วยอัลตร้าโซนิค ZX-HCSR04

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

ติดตั้ง ZX-HCSR04 กับ POP-X2 Rover

1. เตรียมอุปกรณ์ตามรูป

2. นำชิ้นต่อมุมฉากยึดกับ ZX-HCSR04 โดยร้อยสกรู 3×10 มม.และขันยึดด้วยนอต 3 มม.

3. นำสกรู 3×10 มม. อีก 2 ตัวร้อยเข้าที่ด้านหน้าของ POP-X2 Rover ใช้นอต 3 มม.ขันเข้าไปเบาๆ

4. นำชุด ZX-HCSR04 เสียบเข้ากับสกรูที่ร้อยรอไว้ แล้วขันนอตยึดให้แน่น

5. นำสาย JST3AA-8 ต่อจาก ZX-HCSR04 เข้ากับบอร์ด POP-X2

ขา Trig
ต่อกับขา 17

ขา Echo ต่อกับขา 19

ชุดคำสั่งอ่านค่าระยะทางจาก ZX-HCSR04

คำสั่ง sonar()

รูปแบบ

sonar()

คืนค่าระยะทางที่วัดได้หน่วยเป็นเซนติเมตร โดยจะต้องต่อขา Trig เข้ากับขา 17 ขา Echo เข้ากับขา 19

รูปแบบ

sonar(tp,ec)    

คืนค่าระยะทางที่วัดได้หน่วยเป็นเซนติเมตร โดย

tp ตำแหน่งขาที่ต่อขา Trig

ec ตำแหน่งขาที่ต่อขา Echo

ตัวอย่าง

x=sonar(26,28);

// อ่านค่าระยะทางเป็นเซนติเมตร โดยระบุขา Trig = 26 และ Echo = 28

คำสั่ง sonarTime()

รูปแบบ

sonarTime()

เป็นอ่านค่าระยะเวลาที่ตรวจจับการสะท้อนได้ เป็นค่าดิบ ข้อดีคือมีความละเอียดมากกว่าคำสั่ง sonar() โดยขาที่ trig จะต่อกับขา 17 และ echo ต่อกับขา 19

ตัวอย่างที่ 16 อ่านค่าระยะทางแสดงผลที่ GLCD

 
 
#include <popx2.h>
void setup() {
  glcdMode(1);
  setTextSize(5);
}
void loop() {
  glcd(1, 1, "%d ", sonar());
}
การทำงาน

คำสั่งนี้จะอ่านค่าจาก ZX-HCSR04 ให้ผลลัพธ์เป็นเซนติเมตรออกมา นำไปแสดงที่ glcd โดยกำหนดขนาดตัวอักษรเป็น 5 เท่าเพื่อเห็นระยะทางชัดๆ กันเลย

คำสั่งตรวจสอบเงื่อนไข while

รูปแบบ

while (เงื่อนไข) {

ทำคำสั่งจนกว่าเงื่อนไขจะเป็นเท็จ

}

สามารถออกจากลูปของ while แบบทันทีได้ด้วยคำสั่ง break;

 

ตัวอย่างที่ 17 เคลื่อนที่และหยุดเมื่อพบสิ่งกีดขวาง

 
 
#include <popx2.h>
void setup() {
}
void loop() {
  OK();
  fd(50);
  while (sonar() > 8);
  bk(100); delay(50); ao();
}
การทำงาน

ตอนเริ่มต้นรอให้กดปุ่ม OK ก่อน จากนั้นสั่งให้รถเคลื่อนที่ไปด้านหน้า แล้วตรวจจับว่าระยะทางที่อ่านได้น้อยกว่า 8 เซนติเมตรหรือยัง ถ้าระยะทางน้อยกว่า 8 เซนติเมตร จะสั่งให้รถหยุดกะทันหัน โดยการสั่งถอยหลังช่วงเวลาสั้นๆ แล้วสั่งหยุด

ตัวอย่างที่ 18 เคลื่อนที่ต่อเนื่องหลบหลีกสิ่งกีดขวาง

 

 
 
#include <popx2.h>
void setup() {
  OK();
}
void loop() {
  fd(50);
  if(sonar()<8){
    bk(50);
    beep();
    delay(300);
    tl(50);
    delay(1200);  
  }
}
การทำงาน

ก่อนจะให้รถทำงานจะต้องกดปุ่ม OK ก่อน จากนั้นรถจะเคลื่อนที่ไปด้านหน้า และตรวจสอบว่าค่าระยะทางน้อยกว่า 8 เซนติเมตรหรือไม่ ถ้าน้อยกว่า ให้ถอยหลังส่งเสียงบี๊ปพร้อมหน่วงเวลา 0.3 วินาที เมื่อถอยหลังแล้วให้เลี้ยวซ้ายอีก 1.2 วินาที จากนั้นวนทำซ้ำเคลื่อนที่ตรงไปข้างหน้าต่อไป

สำหรับเรื่องการตรวจวัดระยะทางด้วยอัลตร้าโซนิกยังมีตัวอย่างไม่มากนัก จะมีตัวอย่างเพิ่มเติมหลักจากติดตั้งอุปกรณ์ตัวอื่นๆ เพิ่มเติมแล้วครับ คอยติดตามการติดตั้งและใช้งานอุปกรณ์ตัวอื่นๆ ต่อไปครับ

Facebook Comments Box

Press Ctrl+C to copy the following code.
"