ใบงานที่ 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);
}
}
วิดีโอ
ความคิดเห็น
แสดงความคิดเห็น