วันอังคารที่ 27 มีนาคม พ.ศ. 2561

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


นางสาวพรรณพิลาศ ศรีสมศักดิ์ 6031280015 1สทค1
 นางสาวรัตนาพร    กลิ่นผล 6031280040     1สทค2


HC-SR04

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

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

โมดูลนี้มีจุดต่อใช้งานทั้งหมด 4 จุด การใช้งานบอร์ด STM32F4DISCOVERY การทดลองในเบื้องต้นสามารถต่อวงจรอย่างง่ายได้โดยใช้โปรโตบอร์ดและสายไฟต่อวงจรตามรูปที่ 2 ทั้งนี้ต้องตรวจสอบคุณสมบัติของพอร์ตของไมโครคอนโทรลเลอร์จากดาต้าชีท [3] ว่าสามารถทนระดับแรงดันลอจิก High (5V) ได้

รูปที่ 2 การต่อใช้งานโมดูลอัลตราโซนิก HC-SR04
          ตามคุณลักษณะของเซนเซอร์ จะต้องสร้างสัญญาณพัลส์ความกว้างไม่น้อยกว่า 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                         (2)
ระยะทาง (inch) = ความกว้างของสัญญาณ Echo * 106 /148                      (3) 


Buzzer บลัซเซอร์

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

Buzzer บลัซเซอร์



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

  1. โฟโต้บอร์ด 1 บอร์ด
  2. HC-SR04 1 ตัว
  3. บอร์ด Arduino  1 บอร์ด
  4. ตัวต้านทาน 220𝛀 1 ตัว
  5. สายไฟ ผู้ - ผู้  8 เส้น
  6. สายอัปโหลด
  7. ไฟ LED 1 ดวง
  8.  Buzzer 1 ตัว

รูปวงจร

Code

const int trigPin = 9; const int echoPin = 10; const int buzzer = 11; const int led = 13; float duration , distance; void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(buzzer, OUTPUT); pinMode(led, 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*0.034)/2; Serial.print("Distance:"); Serial.print(distance); Serial.println("Cm."); Serial.print("Distance:"); Serial.print(distance*0.39370); Serial.println("inch"); delay(100); if (distance <5 ){ digitalWrite(buzzer, HIGH); digitalWrite(led, HIGH); } if (distance <30 ){ digitalWrite(buzzer, LOW); digitalWrite(led, LOW); } if (distance <=30){ digitalWrite(buzzer, HIGH); delay(1000); digitalWrite(led, HIGH); delay(1000); digitalWrite(buzzer, LOW); delay(1000); digitalWrite(led, LOW); delay(1000); } if (distance <=21){ digitalWrite(buzzer, HIGH); delay(500); digitalWrite(led, HIGH); delay(500); digitalWrite(buzzer, LOW); delay(500); digitalWrite(led, LOW); delay(500); } if (distance <=10 ){ digitalWrite(buzzer, HIGH); delay(200); digitalWrite(led, HIGH); delay(200); digitalWrite(buzzer, LOW); delay(200); digitalWrite(led, LOW); delay(200); } }


คำอธิบายวงจร


- ระยะวัตถุ ตั้งแต่ 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 (นิ้ว)

วิดีโอประกอบ



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

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