// LDR Characteristics
const float GAMMA = 0.7;
const float RL10 = 50;
const int ledPins[] = {2, 4, 5, 18}; // Pin numbers for the LEDs
void setup() {
Serial.begin(11200);
for (int i = 0; i < 4; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
float manage_led(int nb){
digitalWrite(ledPins[nb], HIGH); // LED ON
for (int i = 0; i < 4; i++) {
if (i != nb){
digitalWrite(ledPins[i], LOW); // LED OFF
}
}
return nb;
}
void loop() {
int analogValue = analogRead(32);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
if (lux < 10) {
manage_led(0);
Serial.print("sombre : ");
Serial.println(lux);
}
if (lux > 10 && lux < 100) {
manage_led(1);
Serial.print("faible : ");
Serial.println(lux);
}
if (lux > 100 && lux < 1000) {
manage_led(2);
Serial.print("lumineux : ");
Serial.println(lux);
}
if (lux > 1000) {
manage_led(3);
Serial.print("Très lumineux : ");
Serial.println(lux);
}
else {
for (int i = 0; i < 4; i++) {
digitalWrite(ledPins[i], LOW); // LED OFF
}
}
}