#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD I2C dengan alamat 0x27, dan ukuran 16x2 karakter
LiquidCrystal_I2C lcd(0x27, 16, 2);
int buttonPin = 7; // Pin untuk tombol
int buttonState = 0; // Variabel untuk menyimpan keadaan tombol
int ldrPin = A0; // Pin untuk LDR
int ldrValue = 0; // Variabel untuk menyimpan nilai LDR
const int luxThreshold = 500; // Ambang batas untuk menentukan keadaan terang atau gelap
void setup() {
// Inisialisasi pin tombol sebagai input
pinMode(buttonPin, INPUT);
// Inisialisasi LCD I2C
lcd.init();
lcd.backlight();
// Tampilkan pesan awal di LCD
lcd.setCursor(0, 0);
lcd.print("Tekan tombol");
}
void loop() {
// Tunggu hingga tombol ditekan
do {
// Baca nilai dari LDR
ldrValue = analogRead(ldrPin);
// Bersihkan layar LCD sebelum menampilkan nilai baru
lcd.clear();
// Tampilkan kondisi cahaya berdasarkan nilai LDR
if (ldrValue > luxThreshold) {
lcd.setCursor(0, 0);
lcd.print("Keadaan Terang");
} else {
lcd.setCursor(0, 0);
lcd.print("Keadaan Gelap");
}
// Tampilkan nilai LDR di baris kedua
lcd.setCursor(0, 1);
lcd.print("LDR Value: ");
lcd.print(ldrValue);
delay(500); // Tunggu sebentar sebelum mengupdate lagi
// Cek status tombol
buttonState = digitalRead(buttonPin);
} while (buttonState == HIGH); // Ulangi selama tombol ditekan
// Ketika tombol dilepas, bersihkan layar dan tampilkan pesan baru
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tombol Dilepas");
delay(500); // Beri jeda sebelum memulai loop lagi
}