Belajar mikrokontroler tidak melulu tentang sensor dan aktuator. Kamu juga bisa membuat proyek kreatif dan menyenangkan seperti piano mini berbasis Arduino. Proyek ini cocok untuk pemula karena tidak membutuhkan banyak komponen, namun tetap memberikan pengalaman belajar tentang digital input, frekuensi suara, dan penggunaan fungsi tone()
.
Dengan memanfaatkan 8 buah tombol sebagai input dan sebuah buzzer sebagai output, kamu bisa memainkan nada-nada dasar dari C hingga C tinggi (C4 hingga C5). Proyek ini bisa dijadikan dasar untuk alat musik elektronik, mainan edukatif, atau sekadar eksperimen menyenangkan.
Selain menambah pemahaman logika pemrograman, proyek ini juga membuka ide baru untuk membuat sistem edukasi musik elektronik sederhana di sekolah maupun laboratorium IoT.
Komponen yang Digunakan
- 1x Arduino Uno / MFB ATMEL 328 micro
- 8x Push Button
- 1x Buzzer Aktif
- 8x Resistor 10K (untuk tombol, opsional jika pakai
INPUT_PULLUP
) - Kabel jumper secukupnya
- Breadboard
Skema Rangkaian

Koneksi Rangkaian
Komponen | Pin Arduino |
---|---|
Buzzer (+) | D2 |
Tombol 1 | D11 |
Tombol 2 | D10 |
Tombol 3 | D9 |
Tombol 4 | D8 |
Tombol 5 | D7 |
Tombol 6 | D6 |
Tombol 7 | D5 |
Tombol 8 | D4 |
Semua sisi lain tombol | GND |
Library yang Harus Ditambahkan
Proyek ini tidak memerlukan library tambahan, karena semua fungsi (tone()
, noTone()
) sudah tersedia di library bawaan Arduino.
Kode Program Lengkap
cppSalinEdit//PROGRAM INI DI BUAT OLEH : MANFAHBOT INDUSTRIAL AUTOMATION
//HAK CIPTA PROGRAM/CODING : LUKMAN HAKIM A.
//WEBSITE : http://manfahbot.cc
int SPEAKER_PIN = 2;
#define NOTE_C4 262
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 494
#define NOTE_C5 523
const uint8_t buttonPins[] = { 11, 10, 9, 8, 7, 6, 5, 4 };
const int buttonTones[] = {
NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4,
NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5
};
const int numTones = sizeof(buttonPins) / sizeof(buttonPins[0]);
void setup() {
for (uint8_t i = 0; i < numTones; i++) {
pinMode(buttonPins[i], INPUT_PULLUP);
}
pinMode(SPEAKER_PIN, OUTPUT);
}
void loop() {
int pitch = 0;
for (uint8_t i = 0; i < numTones; i++) {
if (digitalRead(buttonPins[i]) == LOW) {
pitch = buttonTones[i];
}
}
if (pitch) {
tone(SPEAKER_PIN, pitch);
} else {
noTone(SPEAKER_PIN);
}
}
Penjelasan Singkat Program
- Tombol dihubungkan ke pin digital dengan mode
INPUT_PULLUP
, sehingga logika aktif-nya saat ditekan (LOW). - Nada ditentukan dalam array
buttonTones[]
, sesuai urutan tombol. - Program akan mengecek semua tombol; jika salah satu ditekan, maka akan memanggil
tone(SPEAKER_PIN, pitch)
untuk memainkan nada. - Saat tidak ada tombol ditekan, buzzer akan berhenti berbunyi dengan
noTone(SPEAKER_PIN)
.
Kesimpulan
Proyek piano mini Arduino ini adalah cara menyenangkan untuk belajar dasar pemrograman input digital dan pemrosesan sinyal audio sederhana. Dengan hanya 8 tombol dan sebuah buzzer, kamu sudah bisa memainkan melodi-melodi dasar seperti Do Re Mi Fa Sol La Si Do.
Proyek ini bisa dikembangkan menjadi:
- Alat edukasi musik interaktif
- Mesin suara alarm dinamis
- Keyboard mini untuk kendali suara robot
- Atau dikombinasikan dengan OLED atau LED untuk tampilan visual