#include <Wire.h>
#include <LiquidCrystal_I2C.h>
float RLDR;
float Vout;
LiquidCrystal_I2C lcd(0x27, 20, 4); // Alamat I2C modul LCD: 0x27, 20 kolom, 4 baris
const int ledPin = 1; // Pin LED terhubung ke pin 1 pada Arduino Uno
const int ledPinn = 4;
const int photoresistorPinAO = A0; // Pin AO photoresistor terhubung ke pin A0 pada Arduino Uno
const int photoresistorPinDO = 2; // Pin DO photoresistor terhubung ke pin digital 2 pada Arduino Uno
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(ledPinn, OUTPUT);
pinMode(photoresistorPinDO, INPUT);
digitalWrite(photoresistorPinDO, HIGH); // Aktifkan resistor internal untuk pull-up
// Inisialisasi LCD I2C
lcd.begin(20, 4);
}
void loop() {
int sensorValue = analogRead(A0);
Vout = (sensorValue * 0.0048828125);
RLDR = (10000.0 * (5 - Vout)) / Vout;
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Intensitas: ");
lcd.print(sensorValue); // Menampilkan nilai intensitas cahaya pada LCD
lcd.setCursor(0, 0);
if (((RLDR / 500) >= 0) && ((RLDR / 500) <= 5)) {
lcd.print("MALAM");
digitalWrite(ledPin, HIGH);
digitalWrite(ledPinn, HIGH); // Menyalakan LED saat kondisi "MALAM"
} else if (((RLDR / 500) > 5) && ((RLDR / 500) <= 14)) {
lcd.print("SENJA");
digitalWrite(ledPin, HIGH);
digitalWrite(ledPinn, HIGH); // Menyalakan LED saat kondisi "SENJA"
} else if (((RLDR / 500) > 14) && ((RLDR / 500) <= 50)) {
lcd.print("PAGI");
digitalWrite(ledPin, LOW);
digitalWrite(ledPinn, LOW); // Mematikan LED saat kondisi "PAGI"
} else {
lcd.print("SIANG");
digitalWrite(ledPin, LOW);
digitalWrite(ledPinn, LOW);// Mematikan LED saat kondisi "SIANG"
}
delay(500);
}