#include <LiquidCrystal_I2C.h> // Memasukkan perpustakaan LiquidCrystal_I2C
int ledPin = 13; // Pin untuk LED
int ldrPin = A0; // Pin untuk sensor LDR
#define I2C_ADDR 0x27 // Alamat I2C layar LCD, sesuaikan dengan perangkat fisik Anda
#define LCD_COLUMNS 16 // Jumlah kolom pada layar LCD
#define LCD_LINES 2 // Jumlah baris pada layar LCD
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES); // Membuat objek lcd dengan alamat I2C dan ukuran layar yang sesuai
void setup() {
// Inisialisasi layar LCD
lcd.init();
lcd.backlight(); // Menyalakan pencahayaan latar belakang layar
Serial.begin(9600); // Memulai komunikasi serial dengan kecepatan 9600 baud
// Mengatur pin LED sebagai OUTPUT (keluaran) dan pin LDR sebagai INPUT (masukan)
pinMode(ledPin, OUTPUT);
pinMode(ldrPin, INPUT);
// Print sesuatu di layar LCD
lcd.begin(16,2);
lcd.print("KECERAHAN: ");
}
void loop() {
int statusldr = analogRead(ldrPin); // Membaca nilai analog dari sensor LDR
if (statusldr >= 200) {
digitalWrite(ledPin, HIGH); // Menghidupkan LED jika cahaya rendah
delay(500); // Delay selama 0,5 detik sebelum membaca LDR lagi
digitalWrite(ledPin, LOW); // Mematikan LED
delay(500); // Delay selama 0,5 detik sebelum membaca LDR lagi
Serial.print("Gelap, Led Hidup :");
Serial.println(statusldr); // Mencetak nilai sensor LDR ke Serial Monitor
lcd.setCursor(0, 1);
lcd.print("GELAP: ");
lcd.print(statusldr); // Menampilkan nilai sensor LDR
lcd.print(" ");
delay(500); // Delay selama 0,5 detik sebelum membaca LDR lagi
} else {
digitalWrite(ledPin, LOW); // Mematikan LED jika cahaya cukup terang
Serial.print("Terang, Led Mati :");
Serial.println(statusldr); // Mencetak nilai sensor LDR
lcd.setCursor(0, 1);
lcd.print("TERANG: ");
lcd.print(statusldr); // Menampilkan nilai sensor LDR
lcd.print(" ");
delay(500); // Delay selama 0,5 detik sebelum membaca LDR lagi
}
}