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

ผู้จัดทำ

นางสาวจีรพร  ศรีบุญ  006
นางสาวพิมพ์พิชชา  แสงแจ่ม  037


ทฤษฎี Buzzer

            BUZZER เป็นอุปกรณ์ไฟฟ้าที่นำผลของแม่เหล็กไฟฟ้ามาดึงดูดให้แกนอามาเจอร์ (Armature) เคลื่อนที่มาเคาะกับกระดิ่ง (Bell) ทำให้เกิดเสียงดังได้ โครงสร้างภายในประกอบด้วยแท่งเหล็กรูปตัวยู (U-Shaped) พันขดลวดรอบๆ แท่งเหล็กนี้ต่ออนุกรมกับหน้าสัมผัสซึ่งเปิดปิดได้โดยการเคลื่อนที่ของก้านอามาเจอร์การใช้งานต้องต่อกระดิ่งไฟฟ้าอนุกรมกับสวิทช์กดปุ่ม (Push Button) และแหล่งจ่ายไฟฟ้า เช่น แบตเตอรี่ เมื่อกดสวิตช์กระแสไฟฟ้าจะผ่านหน้าสัมผัสและขดลวด ทำให้เกิดการดึงดูดอามาเจอร์ให้เคลื่อนที่มาเคาะกระดิ่งทำให้เกิดเสียงดัง ในขณะที่อามาเจอร์เคลื่อนที่ก็จะตัดวงจรไฟฟ้าออกไปด้วย ดังนั้นเมื่อก้านอามาเจอร์เคาะกระดิ่ง แล้วก็จะดีดไปตำแหน่งเดิมทันที่ และต่อวงจรไฟฟ้าอีกครั้ง เมื่อใดที่ปล่อยมือจากสวิตช์กระบวนการที่เกิดขึ้นก็จะหยุดลง 


แรงเคลื่อนแม่เหล็กของขดลวดทั้งสองเป็นแบบอนุกรม ดังนั้นการเป็นแม่เหล็กของแกนเหล็กจึงเพิ่มขึ้นมากกว่าของขดลวดเพียงชุดเดียว

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

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

รูปวงจร




Download คลิก

คำอธิบาย Code


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



Code


const int trigPin = 9;
const int echoPin = 10;
int buzzer = 5;
int LED1 = 2;

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.39270);
   Serial.println("นิ้ว");
  delay(500);
  if(distance >= 31)//ระยะวัตถุ ตั้งแต่ 31 ซม.
  {
    digitalWrite (LED1,LOW);
    digitalWrite (buzzer,LOW);
  }
  if(distance <= 30 && distance >= 21)//ระยะวัตถุ ตั้งแต่ 21-30 ซม.
  {
    digitalWrite (LED1,HIGH);
    digitalWrite (buzzer,HIGH);
    delay (1000);
    digitalWrite (LED1,LOW);
    digitalWrite (buzzer,LOW);
    delay (1000);
  }
 else
 {
 digitalWrite (LED1,LOW);
 digitalWrite (buzzer,LOW);
 }
  if(distance <= 20 && distance >= 11)//ระยะวัตถุ ตั้งแต่ 11-20 ซม.
  {
    digitalWrite (LED1,HIGH);
    digitalWrite (buzzer,HIGH);
    delay (500);
    digitalWrite (LED1,LOW);
    digitalWrite (buzzer,LOW);
    delay (500);
  }
 else
 {
 digitalWrite (LED1,LOW);
 digitalWrite (buzzer,LOW);
 }
 if(distance <= 10 && distance >= 6)//ระยะวัตถุ ตั้งแต่ 6-10 ซม.
  {
    digitalWrite (LED1,HIGH);
    digitalWrite (buzzer,HIGH);
    delay (200);
    digitalWrite (LED1,LOW);
    digitalWrite (buzzer,LOW);
    delay (200);
  }
 else
 {
 digitalWrite (LED1,LOW);
 digitalWrite (buzzer,LOW);
 }
 if(distance < 6)//ระยะวัตถุ ตั้งแต่ 5 ซม.
  {
    digitalWrite (LED1,HIGH);
    digitalWrite (buzzer,HIGH);
 }
 else
 {
  digitalWrite (LED1,LOW);
 digitalWrite (buzzer,LOW);
 }
}

Download คลิก

วิดีโอ


ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ใบงานที่ 6 การควบคุม servo motor (SG90) ด้วย Arduino UNO R3

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

ใบงานที่ 7 Measure Distance with Arduino and Ultrasonic Sensor