วันจันทร์ที่ 26 มีนาคม พ.ศ. 2561

ใบงานที่ 5 HC-SR04 with Buzzer

นางสาวจริญญา แสงวงศ์ 1 สทค 2 รหัส 026
นางสาวจิรนันท์ จานศิลา 1 สทค 2 รหัส 028

 การใช้งานเซนเซอร์วัดระยะทาง HC-SR04 ร่วมกับ Buzzer

HC-SR04

หลักการทำงาน

HC-SR04 เป็นเซนเซอร์โมดูลสำหรับตรวจจับวัตถุและวัดระยะทางแบบไม่สัมผัส [1-2] โดยใช้คลื่นอัลตราโซนิก ซึ่งเป็นคลื่นเสียงความถี่สูงเกินกว่าการได้ยินของมนุษย์ วัดระยะได้ตั้งแต่ 2 – 400 เซนติเมตร หรือ 1 – 156 นิ้ว สามารถต่อใช้งานกับไมโครคอนโทรลเลอร์ได้ง่าย ใช้พลังงานต่ำ เหมาะกับการนำไปประยุกต์ใช้งานด้านระบบควบคุมอัตโนมัติ หรืองานด้านหุ่นยนต์ หลักการทำงาน จะเหมือนกันกับการตรวจจับวัตถุด้วยเสียงของค้างคาว ตามรูปที่ โดยจะประกอบไปด้วยตัว รับ-ส่ง อัลตราโซนิก ตัวส่งจะส่งคลื่นความถี่ 40 kHz ออกไปในอากาศด้วยความเร็วประมาณ 346 เมตรต่อวินาที และตัวรับจะคอยรับสัญญาณที่สะท้อนกลับจากวัตถุ เมื่อทราบความเร็วในการเคลื่อนที่ของคลื่นเวลาที่ใช้ในการเดินทางไป-กลับ (t) ก็จะสามารถคำนวณหาระยะห่างของวัตถุ (S) ได้จาก  S = 346 × 0.5t  
            รุ่น HC-SR04 เป็นรุ่นที่ถูกนิยมใช้งานมากที่สุด การสื่อสารกับไมโครคอนโทรลเลอร์จะใช้วิธีทริกสัญญาณ ขาใช้งานจะมี ขา คือขา VCC Trig Echo และ GND ในรุ่นนี้รองรับแรงดันไฟเลี้ยงที่ 5V กรณีที่แรงดันไฟเลี้ยงน้อยกว่า 5V โมดูลจะไม่สามารถทำงานได้ตามปกติ


รูปที่ 1 หลักการตรวจจับและวัดระยะห่างระหว่างวัตถุด้วยคลื่นเสียง
รูปที่ 1 หลักการตรวจจับและวัดระยะห่างระหว่างวัตถุด้วยคลื่นเสียง

เพื่อให้การคำนวณหาระยะเป็นไปด้วยความง่าย โมดูลเซนเซอร์นี้จึงได้ประมวลผลให้เรียบร้อยแล้ว และส่งผลลัพธ์ของการคำนวณเป็นสัญญาณพัลส์ที่มีความกว้างสัมพันธ์กับระยะทางที่วัดได้



การต่อใช้งานโมดูล
โมดูลนี้มีจุดต่อใช้งานทั้งหมด จุด การใช้งานบอร์ด Arduino การทดลองในเบื้องต้นสามารถต่อวงจรอย่างง่ายได้โดยใช้โปรโตบอร์ดและสายไฟต่อวงจรตามรูปที่ ทั้งนี้ต้องตรวจสอบคุณสมบัติของพอร์ตของไมโครคอนโทรลเลอร์จากดาต้าชีท [3] ว่าสามารถทนระดับแรงดันลอจิก High (5V) ได้
  1. ขา VCC สำหรับต่อแรงดันไฟเลี้ยงไม่เกิน 5V
  2. ขา Trig เป็นขาอินพุตรับสัญญาณพัลส์ความกว้าง 10 ไมโครวินาทีเพื่อกระตุ้นการสร้างคลื่นอัลตราโซนิกความถี่ 40KHz ออกสู่อากาศจากตัวส่ง
  3. ขา Echo เป็นขาเอาต์พุตสำหรับส่งสัญญาณพัลส์ออกจากโมดูลไปยังไมโครคอนโทรลเลอร์ เพื่อตรวจจับความกว้างของสัญญาณพัลส์และคำนวณเป็นระยะทาง
  4. ขา GND สำหรับต่อจุดกราวด์ร่วมแรงดันและสัญญาณ

pic02_HC-SR04

รูปที่ 2 การต่อใช้งานโมดูลอัลตราโซนิก HC-SR04

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


pic03_HC-SR04_timing
รูปที่ 3 สัญญาณที่ขา Trig และขา Echo ของโมดูลเซนเซอร์อัลตราโซนิก HC-SR04


การตรวจจับความกว้างของสัญญาณใช้โมดูล PWM Capture ซึ่งให้เอาต์พุตออกมาเป็นเวลาในหน่วยวินาที และใช้สมการ (2) หรือ (3) เพื่อคำนวณหาระยะทางระหว่างวัตถุที่ตรวจพบ
ระยะทาง (cm) = ความกว้างของสัญญาณ Echo * 106 /58                
ระยะทาง (inch) = ความกว้างของสัญญาณ Echo * 106 /148     


BUZZER

บลัซเซอร์ Buzzer เป็นลำโพงแบบแม่เหล็กหรือ แบบเปียโซที่มีวงจรกำเนิดความถี่ (oscillator) อยู่ภายในตัว ใช้ไฟเลี้ยง 3.3 - 5 V สามารถสร้างเสียงเตือนหรือส่งสัญญาณที่เป็นรูปแบบต่าง ๆ เมื่อป้อนแรงดันสามารถกำเนิดเสียงได้ด้วยตัวเอง แต่ไม่สามารถเปลี่ยนความถี่ของเสียงได้ 

เราอาจจะเคยได้ยินเสียงบลัซเซอร์อยู่บ่อย ๆ เช่น เสียง ปี๊บที่อยู่ในคอมพิวเตอร์ก็ใช้บลัซเซอร์ในการส่งสัญญาณให้ทราบสถานะของคอมพิวเตอร์ให้ทราบว่ามีปัญหาอะไร และอาจนำไปใช้ในระบบแจ้งเตือนของระบบความปลอดภัยในอุปกรณ์หรือเครื่องจักรที่มีการทำงานอยู่ บัซเซอร์ หลายแบบและหลายระดับเพื่อความเหมาะสมของงานต่าง ๆ ที่มีใช้อยู่หลากหลาย มีให้เลือกใช้ได้หลายหลายยี่ห้อ อาทิเช่น Werma, ICC, Moflash, Omron, Schneider Electric, TDK...


รูปภาพที่เกี่ยวข้อง


              

อ้างอิงข้อมูลจากhttp://aimagin.com/blog/อัลตราโซนิก-hc-sr04/?lang=th
http://www.thaimicrotron.com/CCS-628/Referrence/Speaker.htm
http://www.mindphp.com/คู่มือ/73-คืออะไร/3714-buzzer-บลัซเซอร์-คืออะไร.html




 การใช้งานเซนเซอร์วัดระยะทาง HC-SR04 ร่วมกับ Buzzer

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

1.บอร์ด Arduino                      1 ตัว
2.สาย USB                              1 เส้น
3.โฟโต้บอร์ด                          อัน
4.ไฟ LED                               1 ดวง
5.ตัวต้านทาน 220 Ω           1 ตัว
6. HC-SR04                            1 ตัว
7.BUZZER                             1 ตัว
8.สายไฟผู้-ผู้                           8 เส้น
9.โปรแกรม Arduino
10.PC / NoteBook





รูปวงจร (Fritzing)





คลิก Download เพื่อดาวน์โหลดรูปไปแก้เพิ่มเติม แต่ทั้งนี้ต้องมีโปรแกรม Fritzing อยู่ในเครื่องคอม ฯ ของเราก่อนนะคะ หากไม่มีสามารถโหลดได้ที่ DownloadProgramFritzing 



Code : โปรแกรม Arduino

ให้เขียนโปรแกรมให้ทำงานดังต่อไปนี้
- ถ้า ระยะวัตถุ ตั้งแต่ 21-30 ซม. ให้ Buzzer ส่งเสียงเตือนเป็นจังหวะ ติด 1 วินาที - ดับ 1 วินาที 
- ถ้า ระยะวัตถุ ตั้งแต่ 11-20 ซม. ให้ Buzzer ส่งเสียงเตือนเป็นจังหวะ ติด 0.5 วินาที - ดับ 0.5 วินาที
- ถ้า ระยะวัตถุ ตั้งแต่ 6-10 ซม. ให้ Buzzer ส่งเสียงเตือนเป็นจังหวะ ติด 0.2 วินาที - ดับ 0.2 วินาที
- ถ้า ระยะวัตถุ ตั้งแต่ 5 ซม. ลงมา ให้ Buzzer ส่งเสียงเตือนติดยาวตลอด
- ถ้า ระยะวัตถุ ตั้งแต่ 31 ซม. ให้ Buzzer ไม่เสียงเตือน
และให้ LED แสดงผลตามจังหวะเสียงของ Buzzer
ทั้งนี้ให้ Serial Monitor แสดงค่าระยะทาง หน่วยเป็น cm และ inch (นิ้ว)




/*
 * HC-SR04 example sketch
 *
 * https://create.arduino.cc/projecthub/Isaac100/getting-started-with-the-hc-sr04-ultrasonic-sensor-036380
 *
 * by Isaac100
 */

const int trigPin = 9;
const int echoPin = 10;
int buzzer = 11;
int LED1 = 13;
float duration, distance;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(LED1, OUTPUT);
  pinMode(buzzer, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  duration = pulseIn(echoPin, HIGH);
  distance = (duration*.0343)/2;
  Serial.print("ระยะวัตถุ: ");
  Serial.print(distance);
  Serial.println ("ซม.");
  Serial.print("ระยะวัตถุ: ");
  Serial.print(distance* 0.39370);
  Serial.println ("นิ้ว.");
  delay(20);


  if(distance <= 30 && distance >= 21) // ระยะวัตถุตั้งแต่ 21-30 ซม.
  {
    digitalWrite (buzzer,HIGH);
    digitalWrite (LED1,HIGH);
    delay (1000);
    digitalWrite (buzzer,LOW);
    digitalWrite (LED1,LOW);
    delay (1000);
  }
  else if (distance <= 21 && distance >= 11) // ระยะวัตถุตั้งแต่ 11-20 ซม.
  {
    digitalWrite (buzzer,HIGH);
    digitalWrite (LED1,HIGH);
    delay (500);
    digitalWrite (buzzer,LOW);
    digitalWrite (LED1,LOW);
    delay (500);
  }

  else if (distance <= 11 && distance >= 6) // ระยะวัตถุตั้งแต่ 6-10 ซม.
  {
    digitalWrite (buzzer,HIGH);
    digitalWrite (LED1,HIGH);
    delay (200);
    digitalWrite (buzzer,LOW);
    digitalWrite (LED1,LOW);
    delay (200);
  }

  else if (distance < 6 ) // ระยะวัตถุน้อยกว่า 5 ซม.
  {
    digitalWrite (buzzer,HIGH);
    digitalWrite (LED1,HIGH);
  }

  else if (distance > 31) // ระยะวัตถุตั้งแต่ 31 ซม. ขึ้นไป
  {
    digitalWrite (buzzer,LOW);
    digitalWrite (LED1,LOW);
  }


}






คลิก DownloadCode เพื่อนำไปแก้ไขเพิ่มเติม แต่ทั้งนี้ต้องมีโปรแกรม Arduino อยู่ในเครื่องคอม ฯ ของเราก่อนนะคะ หากไม่มีสามารถโหลดได้ที่ DownloadArduino 



VDO :






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

แสดงความคิดเห็น

ใบงานที่ 8 Ultrasonic Object Radar System

นางสาวจริญญา แสงวงศ์ 1 สทค 2 รหัส 6031280026 นางสาวจิรนันท์ จานศิลา 1 สทค 2 รหัส 6031280028    Ultrasonic Object Radar System ...