#define ledPin 3          //переменная для работы с белым светодиодом на pin 3
#define sensor A1         //переменная для работы с аналоговым сигналом на pin A1

const float GAMMA = 0.7;  //характеристика сенсора   
const float RL10 = 50;    //характеристика сенсора

void setup() {
pinMode(ledPin, OUTPUT);  //определяем режим работы pin 3
pinMode(sensor, INPUT);   //определяем режим работы pin A1
Serial.begin(9600);       //инициализация последовательного порта
}

void loop() {
int analogValue = analogRead(sensor);                                     //пересчет уровня сигнала 
float voltage = analogValue / 1024. * 5;                                  //с аналогового входа A1        
float resistance = 2000 * voltage / (1 - voltage / 5);                    //в величину освещенности в люкс
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));   //и запись в переменную lux 

if (lux < 10) {                                     //условие если уровень освещенности менее 10 люкс                  
    digitalWrite(ledPin, HIGH);                     //установка сигнала на pin 3 в уровень HIGH (включаем свет)
    
    Serial.print("Illumination: ");                 //
    Serial.print(lux);                              //сообщение с выводом величины освещенности 
    Serial.print(" Lux");                           //и индикации включения освещения
    Serial.print("  Let there be light!\n");        //
  } else {                                          //условие если уровень освещенности равно или более 10 люкс
    digitalWrite(ledPin, LOW);                      //установка сигнала на pin 3 в уровень LOW (выключаем свет)

    Serial.print("Illumination: ");                 //  
    Serial.print(lux);                              //сообщение с выводом величины освещенности    
    Serial.print(" Lux\n");                         //
  }
delay(1000);                                        //задержка выполнения цикла на 1 с (1000 мс) 
}