#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
// Konfigurasi LCD I2C (Alamat default biasanya 0x27 atau 0x3F)
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Konfigurasi keypad
const byte ROWS = 4; // Jumlah baris pada keypad
const byte COLS = 4; // Jumlah kolom pada keypad
// Definisi karakter pada tombol keypad
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
// Definisi pin baris dan kolom pada Arduino
byte rowPins[ROWS] = {9, 8, 7, 6}; // Hubungkan R1, R2, R3, R4 ke pin Arduino
byte colPins[COLS] = {5, 4, 3, 2}; // Hubungkan C1, C2, C3, C4 ke pin Arduino
// Membuat instance keypad
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
// Memulai komunikasi Serial dan LCD
Serial.begin(9600);
lcd.init(); // Inisialisasi LCD
lcd.backlight(); // Nyalakan lampu latar LCD
lcd.setCursor(0, 0);
lcd.print("Keypad Input:");
}
void loop() {
char key = keypad.getKey(); // Membaca input dari keypad
if (key) { // Jika ada tombol yang ditekan
Serial.print("Tombol yang ditekan: ");
Serial.println(key); // Tampilkan di Serial Monitor
lcd.setCursor(0, 1); // Pindahkan kursor ke baris kedua LCD
lcd.print("Tombol: ");
lcd.print(key); // Tampilkan tombol yang ditekan di LCD
}
}