#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD I2C (alamat, kolom, baris)
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Mendefinisikan pin tombol
const int buttonPin1 = 2; // Tombol pertama di pin 2
const int buttonPin2 = 3; // Tombol kedua di pin 3
// Pesan yang akan ditampilkan
String message1 = "Pesan Pertama!";
String message2 = "Pesan Kedua!";
void setup() {
// Inisialisasi LCD
lcd.begin(16, 2);
lcd.setBacklight(1); // Menghidupkan backlight LCD
lcd.clear();
// Menampilkan pesan awal untuk meminta klik tombol
lcd.setCursor(0, 0);
lcd.print("Klik Tombol");
// Mengaktifkan resistor pull-up internal pada pin tombol
pinMode(buttonPin1, INPUT_PULLUP); // Resistor pull-up internal aktif
pinMode(buttonPin2, INPUT_PULLUP); // Resistor pull-up internal aktif
}
void loop() {
// Membaca status tombol
int buttonState1 = digitalRead(buttonPin1);
int buttonState2 = digitalRead(buttonPin2);
// Jika tombol pertama ditekan, tampilkan pesan pertama
if (buttonState1 == LOW) { // Tombol ditekan akan menghasilkan LOW karena pull-up
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tombol 1 Ditekan");
lcd.setCursor(0, 1);
lcd.print(message1);
delay(200); // Debouncing tombol
// Tunggu tombol dilepaskan
while (digitalRead(buttonPin1) == LOW) {}
delay(200); // Tambahkan sedikit delay untuk menstabilkan tombol
}
// Jika tombol kedua ditekan, tampilkan pesan kedua
if (buttonState2 == LOW) { // Tombol ditekan akan menghasilkan LOW karena pull-up
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tombol 2 Ditekan");
lcd.setCursor(0, 1);
lcd.print(message2);
delay(200); // Debouncing tombol
// Tunggu tombol dilepaskan
while (digitalRead(buttonPin2) == LOW) {}
delay(200); // Tambahkan sedikit delay untuk menstabilkan tombol
}
}