Pada latihan sebelumnya kita telah mempelajari membunyikan suara buzzer dengan Arduino. Sekarang kita akan mencoba membuat proyek membunyikan suara dengan menggunakan push button, namun tidak terhubung ke pin digital seperti pada umumnya. Kita akan menghubungkan beberapa push button sekaligus ke satu pin analog, maka dapat menghemat penggunaan pin pada Arduino. Beberapa push button terhubung secara paralel dengan pin analog, dari masing-masing push button terhubung dengan tegangan positif melalui resistor sebagai pembagi tegangan. Ketika setiap push button ditekan akan menyambungkan nilai tegangan yang berbeda-beda tergantung besarnya nilai hambatan resistor yang digunakan. Ini yang membuat suara yang keluar berbeda-beda, sehingga terkesan seperti sebuah piano yang memiliki nada-nada yang berbeda.
Kebutuhan Komponen :
- Arduino Uno : 1 Pcs
- Breadboard : 1 Pcs
- Push Button : 4 Pcs
- Buzzer : 1 Pcs
- Resistor 330Ω : 1 Pcs
- Resistor 10kΩ : 4 Pcs
- Kabel Jumper secukupnya
Skema
Rangkaian
Source Code
/*
Membunyikan buzzer dengan nada-nada tertentu sesuai dengan push button mana yang ditekan.
*/
//membuat sebauah array notes untuk menyimpan nada-nada
//nilai yang berada didalam array notes tersebut
//adalah nilai frekuensi sesuai dengan nada C, D, E, dan F
int notes[] = {262, 294, 330, 349};
int speakerPin = 8; //pin dimana buzzer dihubungkan
int multiButtonPin = A0; //pin dimana ke 4 buton terhubung dengan analog pin A0
void setup() {
//memulai komunikasi dengan serial monitor
Serial.begin(115200);
}
void loop() {
//membuat sebuah variabel lokal untuk menyimpan input pada pin A0
int keyVal = analogRead(multiButtonPin);
//menampilkan nilai dari A0 ke Serial Monitor
Serial.println(keyVal);
//membunyikan nada sesuai nilai pada masukan A0
if (keyVal >= 1000;) {
//membunyikan frekuensi pertama didalam array pada pin 8
tone(speakerPin, notes[0]);
} else if (keyVal >= 970 && keyVal <= 1000) {
//membunyikan frekuensi kedua didalam array pada pin 8
tone(speakerPin, notes[1]);
} else if (keyVal >= 485 && keyVal <= 525) {
//membunyikan frekuensi ketiga didalam array pada pin 8
tone(speakerPin, notes[2]);
} else if (keyVal >= 320 && keyVal <= 360) {
//membunyikan frekuensi keempat didalam array pada pin 8
tone(speakerPin, notes[3]);
} else {
//jika nilai diluar batas, maka tidak membunyikan apapun
noTone(speakerPin);
}
}
Kesimpulan
Setelah semua komponen terpasang sesuai dengan skema, kita akan langsung mencobanya. Kemudian kita akan mendengar suara dengan nada yang berbeda-beda ketika menekan push button. Jika tidak ada pengaruh ketika push button ditekan bisa periksa melalui serial monitor untuk memastikan tiap push button yang ditekan berada pada range nilai yang sesuai dengan variable pada program.