#include <Servo.h>
int ldrPin = A3;
// LDR Characteristics
const float GAMMA = 0.7;
const float RL10 = 50;
Servo lightMeter;
void setup() {
lightMeter.attach(9);
pinMode(ldrPin, INPUT);
Serial.begin(115200);
}
void loop() {
int ldrStatus = analogRead(ldrPin);
float voltage = ldrStatus / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
float angle = map (lux, 0, 100000 ,0, 180);
lightMeter.write(angle);
}
Dark
Cloudy
Sunny