#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 мс)
}