#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int AnalogPin = A0;
const int ledPin1 = 3; // Lampu hijau
const int ledPin2 = 4; // Lampu kuning
const int ledPin3 = 5; // Lampu merah
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
pinMode(AnalogPin, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.clear();
}
void loop() {
int A = analogRead(AnalogPin);
int pwm = map(A, 0, 1023, 0, 255);
int brightnessPercentage = map(A, 0, 1023, 0, 100);
analogWrite(ledPin1, 0);
analogWrite(ledPin2, 0);
analogWrite(ledPin3, 0);
if (brightnessPercentage >= 0 && brightnessPercentage <= 33) {
analogWrite(ledPin1, pwm);
} else if (brightnessPercentage > 33 && brightnessPercentage <= 66) {
analogWrite(ledPin1, pwm);
analogWrite(ledPin2, pwm);
} else if (brightnessPercentage > 66 && brightnessPercentage < 100) {
analogWrite(ledPin1, pwm);
analogWrite(ledPin2, pwm);
analogWrite(ledPin3, pwm);
} else if (brightnessPercentage == 100) {
for (int i = 0; i < 3; i++) {
analogWrite(ledPin1, 255);
analogWrite(ledPin2, 255);
analogWrite(ledPin3, 255);
delay(500);
analogWrite(ledPin1, 0);
analogWrite(ledPin2, 0);
analogWrite(ledPin3, 0);
delay(500);
}
}
lcd.setCursor(0, 0);
lcd.print("Brightness: ");
lcd.print(brightnessPercentage);
lcd.print("% ");
delay(500);
}