// Arduino_LDR_5
#include <LiquidCrystal_I2C.h>
#define LED_GREEN 2
#define LED_YELLOW 3
#define LED_RED 4
#define LDR A0
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
Serial.begin(9600);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_YELLOW, OUTPUT);
pinMode(LED_RED, OUTPUT);
lcd.init();
lcd.backlight();
}
int c = 0;
int value, percent;
void loop() {
value = analogRead(LDR);
value = (1024 - value);
percent = map(value, 0, 1023, 0, 100);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("#");
lcd.print(++c);
lcd.setCursor(0, 1);
lcd.print("Light = ");
lcd.print(percent);
lcd.print("%");
if (percent >= 66) {
digitalWrite(LED_RED, HIGH);
} else {
if (percent >= 33) {
digitalWrite(LED_YELLOW, HIGH);
} else {
digitalWrite(LED_GREEN, HIGH);
}
}
delay(250);
digitalWrite(LED_RED, LOW);
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_GREEN, LOW);
}