#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Definisi pin untuk LED
int led1 = 11; // Pin digital untuk LED 1
int led2 = 10; // Pin digital untuk LED 2
int led3 = 9; // Pin digital untuk LED 3
int led4 = 8; // Pin digital untuk LED 4
int led5 = 7; // Pin digital untuk LED 5
int ldrPin1 = A0; // Pin untuk LDR
int ldrPin2 = A1; // Pin untuk LDR
int ldrPin3 = A2; // Pin untuk LDR
int ldrPin4 = A3; // Pin untuk LDR
int ldrPin5 = A4; // Pin untuk LDR
// Inisialisasi LCD dengan alamat I2C (0x27 adalah alamat default untuk banyak LCD I2C)
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
// Setup untuk LED
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
// Setup Serial Monitor
Serial.begin(9600);
// Init LCD
lcd.init();
lcd.backlight();
// Tampilkan pesan awal
showMessage("Halo Pengguna!", 2000);
showMessage("LDR Monitoring", 2000);
showMessage("Karya Rzxdty", 2000);
}
void loop() {
// Membaca nilai dari LDR
ldrValue1 = analogRead(ldrPin1);
ldrValue2 = analogRead(ldrPin2);
ldrValue3 = analogRead(ldrPin3);
ldrValue4 = analogRead(ldrPin4);
ldrValue5 = analogRead(ldrPin5);
// Menampilkan nilai LDR di Serial Monitor
Serial.print("Nilai LDR 1: ");
Serial.println(ldrValue1);
Serial.print("Nilai LDR 2: ");
Serial.println(ldrValue2);
Serial.print("Nilai LDR 3: ");
Serial.println(ldrValue3);
Serial.print("Nilai LDR 4: ");
Serial.println(ldrValue4);
Serial.print("Nilai LDR 5: ");
Serial.println(ldrValue5);
// Menampilkan nilai LDR ke LCD
lcd.clear(); // Membersihkan layar LCD setiap kali menampilkan nilai baru
lcd.setCursor(0, 0); // Set posisi kursor ke kolom 0, baris 0
lcd.print("LDR 1: ");
lcd.print(ldrValue1);
lcd.setCursor(0, 1); // Set posisi kursor ke kolom 0, baris 1
lcd.print("LDR 2: ");
lcd.print(ldrValue2);
lcd.setCursor(0, 2); // Set posisi kursor ke kolom 0, baris 2
lcd.print("LDR 3: ");
lcd.print(ldrValue3);
lcd.setCursor(0, 3); // Set posisi kursor ke kolom 0, baris 3
lcd.print("LDR 4: ");
lcd.print(ldrValue4);
// Menampilkan nilai LDR 5 di baris 3
lcd.setCursor(10, 3); // Pindah ke posisi lain jika ingin menampilkan LDR 5 pada baris yang sama
lcd.print("LDR 5: ");
lcd.print(ldrValue5);
delay(1000); // Delay 1 detik agar pembaruan layar tidak terlalu cepat
// Jika nilai LDR lebih rendah (gelap), nyalakan LED
if (ldrValue1 < 500 && ldrValue2 < 500 && ldrValue3 < 500 && ldrValue4 < 500 && ldrValue5 < 500) {
digitalWrite(led1, HIGH);
delay(200);
digitalWrite(led2, HIGH);
delay(200);
digitalWrite(led3, HIGH);
delay(200);
digitalWrite(led4, HIGH);
delay(200);
digitalWrite(led5, HIGH);
delay(200);
digitalWrite(led1, LOW);
delay(200);
digitalWrite(led2, LOW);
delay(200);
digitalWrite(led3, LOW);
delay(200);
digitalWrite(led4, LOW);
delay(200);
digitalWrite(led5, LOW);
delay(200);
} else { // Jika terang, matikan LED
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
delay(100); // Delay sebentar agar tidak terlalu cepat membaca
}