#include "pitches.h"
#define SPEAKER_PIN 8
// Pin untuk tombol piano
const uint8_t buttonPins[] = { 12, 11, 10, 9, 7, 6, 5, 4 };
// Nada yang sesuai dengan tombol
const int buttonTones[] = {
NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4,
NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5
};
// Pin untuk LED yang menyala saat tombol ditekan (menggunakan pin digital)
const uint8_t ledPins[] = { 2, 3, A0, A1, A2, A3, A4, A5 }; // Gunakan pin digital yang tersedia
const int numTones = sizeof(buttonPins) / sizeof(buttonPins[0]);
void setup() {
// Inisialisasi pin tombol
for (uint8_t i = 0; i < numTones; i++) {
pinMode(buttonPins[i], INPUT_PULLUP);
pinMode(ledPins[i], OUTPUT); // Inisialisasi pin LED
digitalWrite(ledPins[i], LOW); // Pastikan LED mati pada awal
}
pinMode(SPEAKER_PIN, OUTPUT);
}
void loop() {
int pitch = 0;
bool buttonPressed = false;
// Cek setiap tombol apakah ditekan
for (uint8_t i = 0; i < numTones; i++) {
if (digitalRead(buttonPins[i]) == LOW) { // Tombol ditekan
pitch = buttonTones[i]; // Setel pitch sesuai tombol
digitalWrite(ledPins[i], HIGH); // Nyalakan LED
buttonPressed = true;
} else {
digitalWrite(ledPins[i], LOW); // Matikan LED jika tombol tidak ditekan
}
}
// Jika ada tombol yang ditekan, mainkan nada, jika tidak, matikan suara
if (pitch) {
tone(SPEAKER_PIN, pitch);
} else {
noTone(SPEAKER_PIN);
}
}