const float GAMMA = 0.7;
const float RL10 = 50;
#include <LiquidCrystal.h>
#include <Servo.h>
int i = 0;
Servo myservo;
LiquidCrystal lcd(12,11,10,9,8,7);
void setup() {
Serial.begin(9600);
pinMode(5, OUTPUT);
myservo.attach(6);
lcd.begin(16,2);
}
void loop() {
int analogValue = analogRead(A0);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
lcd.setCursor(2, 0);
lcd.print("Satatus:");
if (lux >= 50) {
if (myservo.read() != 180) {
myservo.write(180);
lcd.print("Lighting");
tone(5, 2000);
delay(500);
noTone(5);
}
} else {
if (myservo.read() != 0) {
myservo.write(0);
lcd.print("Dark ");
tone(5, 1000);
delay(500);
noTone(5);
}
}
lcd.setCursor(0,1);
lcd.print("lux:");
lcd.print(lux);
delay(100);
}