Lab 6 Melody Buzzer
จุดประสงค์การเรียนรู้
เพื่อให้สามารถสร้างความถี่เสียงจากลำโพงBuzzerโดยใช้Arduino IDE
สาระการเรียนรู้
1. ลำโพงBuzzer
Buzzer เป็นอุปกรณ์กำเนิดเสียงชนิดหนึ่งโดยทำหน้าที่เปลี่ยนแปลงพลังงานไฟฟ้าเป็นพลังงานเสียง Buzzer มีด้วยกัน 2 ชนิดคือ
1. Active Buzzer เป็นลำโพงที่เปล่งความถี่ได้ความถี่เดียว คือ มีเสียง กับไม่มีเสียง ไม่สามารถสร้างเป็นทำนองเมโลดีของเพลงได้
2. Passive Buzzer เป็นลำโพงที่เปล่งความถี่ได้หลายความถี่ สามารถสร้างเป็นเมโลดี้ทำนองเพลงได้
2. คำสั่งการใช้งาน
รูปแบบการใช้งานคำสั่งในภาษาซีของArduino IDEในเนื้อหานี้ จะใช้คำสั่งดังต่อไปนี้
วัสดุอุปกรณ์
1. ไมโครสวิตซ์ ชนิดกดติดปล่อยดับ จำนวน 1 ตัว
2. ตัวต้านทาน 10 กิโลโอห์ม จำนวน 1 ตัว
3. บอร์ด ESP32 Devkit V.1 จำนวน 1 บอร์ด
4. สายMicro USB จำนวน 1 เส้น
5. Breadboard
6. สายแพร Male-Male
7. หลอด LED จำนวน 3 หลอด
8. ตัวต้านทาน 220 โอห์ม จำนวน 3 ตัว
9. ตัวต้านทานปรับค่าได้ Potentiometer จำนวน 1 ตัว
10. ลำโพงBuzzer
วิธีทำการทดลอง
1. ต่อวงจรเพิ่มเติมจากLab1-Lab5 โดยใช้นำลำโพง Buzzer ชนิดPassive จำนวน 1 อัน โดยขั้วลบต่อเข้ากับGNDของESP32 และขั้วบวกต่อที่ขาD18 ของESP32 ตาม Datasheetและรูปการต่อวงจรด้านล่าง
2. ทำการCopy Codeด้านล่างก่อนUpload code Arduino IDE ลงไปใบนบอร์ด ESP32 Devkit v1
ควรเลือกที่Tool -> Board -> ESP32 Arduino ->ESP32 Dev Module (ดังภาพประกอบด้านล่าง)
Arduino IDE Code
#include <ESP32Servo.h>
void setup() {
}
void loop() {
tone(18, 800, 500);
tone(18, 900, 500);
}
3.หลังจากนั้นให้เข้ามาที่ Tool ->Port แล้วเลือกพอร์ตC om portที่เชื่อมกับUSB ดังรูปข้างล่าง
** กรณีใช้งานใน Ubuntu พอร์ตที่ใช้อาจจะเป็นพอร์ตttyUSB0 ซึ่งจะต้องเลือกเป็นพอร์ตชื่อนี้แทนCom port และก่อนกดUpload ให้ทำการเปิดTerminal โดยเข้าไปที่desktop คลิกขวาตรงพื้นที่ว่าง แล้วเลือก Open Terminal หลังจากนั้นให้พิมพ์ข้อความในTerminalดังนี้เพื่อทำการเปิดพอร์ตUSB : sudo chmod 666 /dev/ttyUSB0 หลังจากนั้นให้กดEnter และทำการกรอกรหัสผ่านของเครื่องพร้อมกับกดปุ่มEnterอีกครั้ง หลังจากนั้นก็Upload codeในArduino IDE
4.ทำการกดปุ่มUpload ที่เป็นรูปหัวลูกษร หรือจะกด Ctrl+u ที่คีย์บอร์ดเพื่อทำการUploadโปรแกรมไปที่บอร์ดESP32 ดังรูปข้างล่าง
5.หลังจากที่Uploadโปรแกรมแล้วจะมีเสียงดนตรี 2 ความถี่ คือ ความถี่ 800 Hz ยาว 0.5 วินาที
และความถี่900 Hz ยาว 0.5 วินาที ดังสลับกันแบบวนรอบ
ตอนที่ 2 เพลงมาริโอ
เพลงมาริโอ
#include <ESP32Servo.h>
int snd = 18;
void setup(){
tone(snd, 660, 100);
delay(150);
tone(snd, 660, 100);
delay(300);
tone(snd, 660, 100);
delay(300);
tone(snd, 510, 100);
delay(100);
tone(snd, 660, 100);
delay(300);
tone(snd, 770, 100);
delay(550);
tone(snd, 380, 100);
delay(575);
tone(snd, 510, 100);
delay(450);
tone(snd, 380, 100);
delay(400);
tone(snd, 320, 100);
delay(500);
tone(snd, 440, 100);
delay(300);
tone(snd, 480, 80);
delay(330);
tone(snd, 450, 100);
delay(150);
tone(snd, 430, 100);
delay(300);
tone(snd, 380, 100);
delay(200);
tone(snd, 660, 80);
delay(200);
tone(snd, 760, 50);
delay(150);
tone(snd, 860, 100);
delay(300);
tone(snd, 700, 80);
delay(150);
tone(snd, 760, 50);
delay(350);
tone(snd, 660, 80);
delay(300);
tone(snd, 520, 80);
delay(150);
tone(snd, 580, 80);
delay(150);
tone(snd, 480, 80);
delay(500);
tone(snd, 510, 100);
delay(450);
tone(snd, 380, 100);
delay(400);
tone(snd, 320, 100);
delay(500);
tone(snd, 440, 100);
delay(300);
tone(snd, 480, 80);
delay(330);
tone(snd, 450, 100);
delay(150);
tone(snd, 430, 100);
delay(300);
tone(snd, 380, 100);
delay(200);
tone(snd, 660, 80);
delay(200);
tone(snd, 760, 50);
delay(150);
tone(snd, 860, 100);
delay(300);
tone(snd, 700, 80);
delay(150);
tone(snd, 760, 50);
delay(350);
tone(snd, 660, 80);
delay(300);
tone(snd, 520, 80);
delay(150);
tone(snd, 580, 80);
delay(150);
tone(snd, 480, 80);
delay(500);
tone(snd, 500, 100);
delay(300);
tone(snd, 760, 100);
delay(100);
tone(snd, 720, 100);
delay(150);
tone(snd, 680, 100);
delay(150);
tone(snd, 620, 150);
delay(300);
tone(snd, 650, 150);
delay(300);
tone(snd, 380, 100);
delay(150);
tone(snd, 430, 100);
delay(150);
tone(snd, 500, 100);
delay(300);
tone(snd, 430, 100);
delay(150);
tone(snd, 500, 100);
delay(100);
tone(snd, 570, 100);
delay(220);
tone(snd, 500, 100);
delay(300);
tone(snd, 760, 100);
delay(100);
tone(snd, 720, 100);
delay(150);
tone(snd, 680, 100);
delay(150);
tone(snd, 620, 150);
delay(300);
tone(snd, 650, 200);
delay(300);
tone(snd, 1020, 80);
delay(300);
tone(snd, 1020, 80);
delay(150);
tone(snd, 1020, 80);
delay(300);
tone(snd, 380, 100);
delay(300);
tone(snd, 500, 100);
delay(300);
tone(snd, 760, 100);
delay(100);
tone(snd, 720, 100);
delay(150);
tone(snd, 680, 100);
delay(150);
tone(snd, 620, 150);
delay(300);
tone(snd, 650, 150);
delay(300);
tone(snd, 380, 100);
delay(150);
tone(snd, 430, 100);
delay(150);
tone(snd, 500, 100);
delay(300);
tone(snd, 430, 100);
delay(150);
tone(snd, 500, 100);
delay(100);
tone(snd, 570, 100);
delay(420);
tone(snd, 585, 100);
delay(450);
tone(snd, 550, 100);
delay(420);
tone(snd, 500, 100);
delay(360);
tone(snd, 380, 100);
delay(300);
tone(snd, 500, 100);
delay(300);
tone(snd, 500, 100);
delay(150);
tone(snd, 500, 100);
delay(300);
tone(snd, 500, 100);
delay(300);
tone(snd, 760, 100);
delay(100);
tone(snd, 720, 100);
delay(150);
tone(snd, 680, 100);
delay(150);
tone(snd, 620, 150);
delay(300);
tone(snd, 650, 150);
delay(300);
tone(snd, 380, 100);
delay(150);
tone(snd, 430, 100);
delay(150);
tone(snd, 500, 100);
delay(300);
tone(snd, 430, 100);
delay(150);
tone(snd, 500, 100);
delay(100);
tone(snd, 570, 100);
delay(220);
tone(snd, 500, 100);
delay(300);
tone(snd, 760, 100);
delay(100);
tone(snd, 720, 100);
delay(150);
tone(snd, 680, 100);
delay(150);
tone(snd, 620, 150);
delay(300);
tone(snd, 650, 200);
delay(300);
tone(snd, 1020, 80);
delay(300);
tone(snd, 1020, 80);
delay(150);
tone(snd, 1020, 80);
delay(300);
tone(snd, 380, 100);
delay(300);
tone(snd, 500, 100);
delay(300);
tone(snd, 760, 100);
delay(100);
tone(snd, 720, 100);
delay(150);
tone(snd, 680, 100);
delay(150);
tone(snd, 620, 150);
delay(300);
tone(snd, 650, 150);
delay(300);
tone(snd, 380, 100);
delay(150);
tone(snd, 430, 100);
delay(150);
tone(snd, 500, 100);
delay(300);
tone(snd, 430, 100);
delay(150);
tone(snd, 500, 100);
delay(100);
tone(snd, 570, 100);
delay(420);
tone(snd, 585, 100);
delay(450);
tone(snd, 550, 100);
delay(420);
tone(9, 500, 100);
delay(360);
tone(snd, 380, 100);
delay(300);
tone(snd, 500, 100);
delay(300);
tone(snd, 500, 100);
delay(150);
tone(snd, 500, 100);
delay(300);
tone(snd, 500, 60);
delay(150);
tone(snd, 500, 80);
delay(300);
tone(snd, 500, 60);
delay(350);
tone(snd, 500, 80);
delay(150);
tone(snd, 580, 80);
delay(350);
tone(snd, 660, 80);
delay(150);
tone(snd, 500, 80);
delay(300);
tone(snd, 430, 80);
delay(150);
tone(snd, 380, 80);
delay(600);
tone(snd, 500, 60);
delay(150);
tone(snd, 500, 80);
delay(300);
tone(snd, 500, 60);
delay(350);
tone(snd, 500, 80);
delay(150);
tone(snd, 580, 80);
delay(150);
tone(snd, 660, 80);
delay(550);
tone(snd, 870, 80);
delay(325);
tone(snd, 760, 80);
delay(600);
tone(snd, 500, 60);
delay(150);
tone(snd, 500, 80);
delay(300);
tone(snd, 500, 60);
delay(350);
tone(snd, 500, 80);
delay(150);
tone(snd, 580, 80);
delay(350);
tone(snd, 660, 80);
delay(150);
tone(snd, 500, 80);
delay(300);
tone(snd, 430, 80);
delay(150);
tone(snd, 380, 80);
delay(600);
tone(snd, 660, 100);
delay(150);
tone(snd, 660, 100);
delay(300);
tone(snd, 660, 100);
delay(300);
tone(snd, 510, 100);
delay(100);
tone(snd, 660, 100);
delay(300);
tone(snd, 770, 100);
delay(550);
tone(snd, 380, 100);
delay(575);
}
void loop (){
}