สอนการใช้งาน Ultrasonic Module HC-SR04 กับ Arduino UNO

บทความนี้จะสอนใช้งาน Arduino UNO เชื่อมต่อกับโมดูลเซ็นเซอร์ Ultrasonic Module HC-SR04 ตรวจจับสิ่งกีดขวาง และเมื่อตัวเซ็นเซอร์ตรวจเจอสิ่งกีดขวางก็จะทำให้ LED ติด จะมีวิธีการทำอย่างไรกันนั้น ไปดูกันเลยครับ

เซ็นเซอร์วัดระยะทาง Ultrasonic Module  HC-SR04

Ultrasonic Sensor Module HC-SR04 เป็นอุปกรณ์ใช้วัดระยะทางโดยไม่ต้องมีการสัมผัสกับตำแหน่งที่ต้องการวัด วัดได้ตั้งแต่ 2 cm ถึง 400 cm โดยส่งสัญญาณอัลตร้าโซนิคความถี่ 40 kHz ไปที่วัตถุที่ต้องการวัดและรับสัญญาณที่สะท้อนกลับมา พร้อมทั้งจับเวลาเพื่อนำมาใช้ในการคำนวณระยะทาง

สเปค

  • แรงดันที่ใช้ในการทำงาน 5V
  • กระแสไฟฟ้าที่ใช้ 15mA
  • คลื่นความถี่ในการทำงาน 40kHz
  • ระยะสูงสุดที่สามารถวัดได้ 4 m (400 cm)
  • ระยะต่ำสุดที่สามารถวัดได้ 0.02 m (2 cm)
  • ความแม่นยำ ±3mm – องศาในการวัด 15 องศา
  • Trigger Input Signal : 10us TTL Pulse

อุปกรณ์ที่ต้องใช้

  1. Arduino UNO R3 board + USB CABLE
  2. Ultrasonic Detector Module HC-SR04 Distance Sensor
  3. สาย Jumper 20 cm Male to Male
  4. บอร์ดทดลอง – 400 จุด
  5. LED เลือกสีตามใจชอบ
  6. ตัวต้านทาน

หมายเหตุ หลอด LED กับตัวต้านทาน ขึ้นอยู่กับผู้ใช้ว่าจะสีอะไร และตัวต้านทานกี่โอห์ม ศึกษาเพิ่มเติม → คลิก

การต่อวงจร

Ultrasonic  ⇒  Arduino UNO

Trig      →    Pin 13

Echo     →   Pin 12

Vcc        →    5V

Gnd       →    GND

LED    ⇒  Arduino UNO

ขา + (ยาว)     →    Pin 11

ขา –  (สั้น)      →    GND

การติดตั้งโปรแกรม Arduino IDE  →  คลิก

ทำความรู้จักกับ บอร์ด ARDUINO UNO R3  →  คลิก

ตัวอย่างโค้ด

const int pingPin = 13;
int inPin = 12;
int LED_Pin = 11;

void setup() {
Serial.begin(9600);
pinMode(LED_Pin, OUTPUT);
}

void loop()
{
long duration, cm;

pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
pinMode(inPin, INPUT);
duration = pulseIn(inPin, HIGH);

cm = microsecondsToCentimeters(duration);

Serial.print(cm);
Serial.print(“cm”);
Serial.println();
delay(100);
if( cm <= 100){
digitalWrite(LED_Pin, HIGH);
}
else{
digitalWrite(LED_Pin, LOW);
}
}

long microsecondsToCentimeters(long microseconds)
{
//ความเร็วของเสียงคือ 340 m/s หรือ 29 ไมโครวินาทีต่อเซนติเมตร ค่าปิงเคลื่อนที่ไปและกลับ ดังนั้นในการหาระยะทางของวัตถุ เราจึงใช้ระยะทางที่เดินทางครึ่งหนึ่ง
return microseconds / 29 / 2;
}

ดาวโหลดโค้ด  → คลิก

ขั้นตอนในโปรแกรม Arduino IDE

1. ดาวน์โหลดโค้ดที่ผมอัพไว้ให้เมื่อข้างต้น และเปิดไฟล์ขึ้นมา ดังรูป

2. หลังจากนั้นให้เข้าไปเมนู Tools → Board : “xxxxxxx” →  Arduino AVR Boards  →  Arduino uno

3. ไปที่เมนู Tools อีกครั้ง เลือก Port ที่บอร์ด Arduino UNO เชื่อมต่ออยู่ ในที่นี้เป็น COM10

4. กดอัปโหลดโปรแกรมลงบอร์ด รอจนเสร็จ

จากโค้ดตัวอย่าง

เปิด Serial Monitor ขึ้นมาเพื่อดูค่า ถ้า Ultrasonic Module  HC-SR04 ตรวจเจอวัตถุด้านหน้าได้ในระยะน้อยกว่าหรือเท่ากับ 100 cm จะส่งค่าสัญญาณมาให้ Arduino UNO และจะสั่งให้หลอดไฟ LED ติด แต่ถ้าไม่มีเอาวัตถุมาบังหน้า Ultrasonic Module  HC-SR04 จะอยู่ในระยะประมาณ 220 cm ตัวเซ็นเซอร์จะส่งสัญญาณมาให้ arduino หลอดไฟ LED ก็จะดับ ดังรูป

ตรวจเจอวัตถุด้านหน้า

ตรวจไม่เจอวัตถุด้านหน้า

Banner Content

0 Comments

Leave a Comment

Popular Posts