Berikut adalah program Melody Dalam Speaker
1. Persiapan yang dibutuhkan
- 1x Arduino
- 1x Breadboard
- 1x Speaker
- 1x Resistor 220 ohm
- 2x Kabel Jumper
2. Rancangan
Keterangan :
- Hubungkan GND arduino ke Breadboard.
- Hubungkan GND breadboard ke kabel kiri Speaker.
- Hubungkan pin 9 Arduino ke kabel kanan Speaker.
- Speaker sebenarnya tidak memiliki polaritas. Jadi mau dipasang seperti apapun antara positif dan negatif, Speaker masih tetap akan menyala.
3. Buat Source
byte speaker= 9;
void setup(){
}
void loop(){
tone(speaker, 262); delay(500);
tone(speaker, 294); delay(500);
tone(speaker, 330); delay(500);
tone(speaker, 349); delay(500);
tone(speaker, 395); delay(500);
tone(speaker, 440); delay(500);
tone(speaker, 494); delay(500);
tone(speaker, 523); delay(500);
}
Penjelasan :
- int speaker= 9; membuat variabel Speaker dimana variabel ini akan menyimpan nilai 9, yang berarti pin 9 arduino akan digunakan untuk Speaker.
- void setup sengaja dikosongkan, karena tidak perlu perintah pinMode(speaker, OUTPUT); , karena pada perintah tone yang ada di void loop, sudah satu paket bahwa Speaker ini adalah OUTPUT.
- tone(speaker, 262); digunakan untuk membuat nada DO, nilai 262 adalah frekuensi suara untuk nada DO. delay(500); menentukan bahwa nada DO ini akan berbunyi selama 500 milidetik.
Pada contoh source diatas, setiap nada yang di bunyikan oleh Speaker memiliki frekuensi seperti tabel
Untuk mempermudah pembuatan NADA bisa membuat Fungsi Variabel, untuk setiap nada, seperti;
void DO() { tone(speaker, 262); }
Lalu nanti dimasukan DO(); kedalam void loop ditambah delay.
4 Source code lengkap nada lagu Kebunku
byte speaker= 9;
void setup(){
}
void loop(){
SOL(); delay(500); MI(); delay(1000); SOL(); delay(1000);
DOO(); delay(1000); DIAM(); delay(500);
SOL(); delay(500); DOO(); delay(500); SOL(); delay(500);
FA(); delay(500); MI(); delay(500); RE(); delay(1000);
DIAM(); delay(500);
FA(); delay(500); RE(); delay(1000); FA(); delay(1000);
LA(); delay(1000); SOL(); delay(500); DO(); delay(500);
MI(); delay(500); RE(); delay(500); DO(); delay(1000);
DIAM(); delay(500);
SOL(); delay(500); MI(); delay(1000); SOL(); delay(1000);
DIAM(); delay(500);
SOL(); delay(500); DOO(); delay(500); SOL(); delay(500);
FA(); delay(500); MI(); delay(500); RE(); delay(1000);
DIAM(); delay(500);
FA(); delay(500); RE(); delay(1000); FA(); delay(1000);
LA(); delay(1000); SOL(); delay(500); DO(); delay(500);
MI(); delay(500); RE(); delay(500); DO(); delay(1000);
DIAM(); delay(500);
}
// fungsi nada
void DO(){
tone(speaker, 262);
}
void RE(){
tone(speaker, 294);
}
void MI(){
tone(speaker, 330);
}
void FA(){
tone(speaker, 349);
}
void SOL(){
tone(speaker, 395);
}
void LA(){
tone(speaker, 440);
}
void SI(){
tone(speaker, 494);
}
void DOO(){
tone(speaker, 523);
}
void DIAM(){
noTone(speaker);
}
Penjelasan :
- int speaker= 9; digunakan untuk membuat variabel Speaker untuk pin digital 9 Arduino.
- void setup sengaja dikosongkan karena untuk program tone tidak memerlukan pinMode(speaker, OUTPUT);
- void DO() { tone(speaker, 262); } membuat fungsi variabel untuk mempersingkat saat pembuatan nada pada void loop, jadi cukup memasukan kode DO(); saja, dan ditambah delay.
- SOL(); delay(500); menambahkan nada DO dengan delay 500 milidetik.