#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int ldrPin = A0;
int redPin = 3;
int greenPin = 5;
int bluePin = 6;
int buzzer = 9;
int ldrValue;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(buzzer, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Lampu Pintar");
delay(1000);
}
void loop() {
ldrValue = analogRead(ldrPin);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Cahaya: ");
lcd.print(ldrValue);
if (ldrValue < 300) { // Gelap
setColor(255, 0, 0);
tone(buzzer, 1000);
lcd.setCursor(0,1);
lcd.print("Status: Gelap");
}
else if (ldrValue < 700) { // Normal
setColor(0, 255, 0);
noTone(buzzer);
lcd.setCursor(0,1);
lcd.print("Status: Normal");
}
else { // Terang
setColor(0, 0, 255);
tone(buzzer, 2000);
lcd.setCursor(0,1);
lcd.print("Status: Terang");
}
delay(200);
}
void setColor(int r, int g, int b) {
analogWrite(redPin, r);
analogWrite(greenPin, g);
analogWrite(bluePin, b);
}