ใบงานที่ 5 HC-SR04 whit Buzzer
นางสาวกิตติญากร ขาวใบไม้ 6031280024
นางสาวกิตติมา อุดมปัญญาศิริกุล 6031280025
ปวส.1/2 คอมพิวเตอร์ซอฟต์แวร์
Buzzer บลัซเซอร์ คือ ลำโพงแบบแม่เหล็กหรือ แบบเปียโซที่มีวงจรกำเนิดความถี่ (oscillator ) อยู่ภายในตัว ใช้ไฟเลี้ยง 3.3 - 5V สามารถสร้างเสียงเตือนหรือส่งสัญญาณที่เป็นรูปแบบต่างๆ
เราอาจจะเคยได้ยินเสียงบลัซเซอร์อยู่บ่อยๆ เช่น เสียง ปี๊บที่อยู่ในคอมพิวเตอร์ก็ใช้บลัซเซอร์ในการส่งสัญญาณให้ทราบสถานะของคอมพิวเตอร์ให้ทราบว่ามีปัญหาอะไร
ใบงานที่ 5 HC-SR04 with Buzzer
ให้เขียนโปรแกรมให้ทำงานดังต่อไปนี้
- ถ้า ระยะวัตถุ ตั้งแต่ 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 (นิ้ว)
อุปกรณ์
- โปรโตบอร์ด
- บอร์ดArduino Uno R3
- สายไฟผู้ผู้
- สายอัพโหลด
- ตัวต้านทาน
- HC-SR04
- หลอดไฟ LED
- Buzzer
รูปวงจร
  
Code
int led1 = 2;
const int trigPin = 9;
const int echoPin = 10;
const int buzzer = 8;
float duration, distance;
void setup() {
  pinMode(buzzer, OUTPUT);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
  pinMode (led1,OUTPUT);
}
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*.039370);
  Serial.println(" นิ้ว");
  delay(500);
  tone(buzzer, 5000);
 if (distance <= 30 && distance >=20) { 
  digitalWrite(buzzer,HIGH);
  digitalWrite(led1,HIGH);
  delay(1000);
  digitalWrite(buzzer,LOW);
  digitalWrite(led1,LOW);
  delay(1000);
}
else if (distance <=21 && distance >= 11) {
  digitalWrite(buzzer,HIGH);
  digitalWrite(led1,HIGH);
  delay(500);
  digitalWrite(buzzer,LOW);
  digitalWrite(led1,LOW);
  delay(500);
}
else if (distance <=6 && distance >= 10) {
   digitalWrite(buzzer,HIGH);
  digitalWrite(led1,HIGH);
  delay(200);
  digitalWrite(buzzer,LOW);
  digitalWrite(led1,LOW);
  delay(200);
}
else if (distance <=5) {
   digitalWrite(buzzer,HIGH);
     digitalWrite(led1,HIGH);
}
else{
   digitalWrite(buzzer,LOW);
   digitalWrite(led1,LOW);
}
}
วิดีโอ

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