// 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
    }
  }
}

esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
ldr1:VCC
ldr1:GND
ldr1:DO
ldr1:AO
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C