#include <Keypad.h>
#include "pitches.h"
const int buzzerPin = 10;
// Konfigurasi keypad
const byte ROWS = 4; // Empat baris
const byte COLS = 4; // Empat kolom
// Definisikan simbol untuk setiap tombol pada keypad
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
// Pin untuk baris dan kolom pada keypad
byte rowPins[ROWS] = {2, 3, 4, 5};
byte colPins[COLS] = {6, 7, 8, 9};
// Buat objek Keypad
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
pinMode(buzzerPin, OUTPUT); // Mengatur pin buzzer sebagai output
Serial.begin(9600); // Memulai komunikasi serial
}
void loop() {
char key = keypad.getKey(); // Mendapatkan tombol yang ditekan
if (key) { // Jika ada tombol yang ditekan
Serial.println(key); // Cetak tombol yang ditekan ke Serial Monitor
// Mainkan nada berdasarkan tombol yang ditekan
switch (key) {
case '1':
tone(buzzerPin, NOTE_C4, 300);
break;
case '2':
tone(buzzerPin, NOTE_D4, 300);
break;
case '3':
tone(buzzerPin, NOTE_E4, 300);
break;
case '4':
tone(buzzerPin, NOTE_F4, 300);
break;
case '5':
tone(buzzerPin, NOTE_G4, 300);
break;
case '6':
tone(buzzerPin, NOTE_A4, 300);
break;
case '7':
tone(buzzerPin, NOTE_B4, 300);
break;
case '8':
tone(buzzerPin, NOTE_C5, 300);
break;
case '9':
tone(buzzerPin, NOTE_D5, 300);
break;
case '0':
tone(buzzerPin, NOTE_E5, 300);
break;
case 'A':
tone(buzzerPin, NOTE_F5, 300);
break;
case 'B':
tone(buzzerPin, NOTE_G5, 300);
break;
case 'C':
tone(buzzerPin, NOTE_A5, 300);
break;
case 'D':
tone(buzzerPin, NOTE_B5, 300);
break;
case '*':
tone(buzzerPin, NOTE_C6, 300);
break;
case '#':
tone(buzzerPin, NOTE_D6, 300);
break;
}
delay(300); // Tunggu sebentar sebelum mematikan buzzer
noTone(buzzerPin); // Matikan buzzer
}
}