Цитата Сообщение от indy Посмотреть сообщение
А как бы загрубить показания фоторезистора?
Скажем постоянно опрашивать датчик и усреднять за последние 30 секунд, не портя многозадачность?
Сейчас он на каждый фонарь на трассе реагирует...
смысл такой: опрашиваем датчик 1 раз в AUTO_LIGHT_DELAY мс, проводим AUTO_LIGHT_COUNT замеров, для которых вычисляем среднее арифметическое, которое мы используем при изменении освещенности:

убрать
// AUTO_LIGHT
#define AUTO_LIGHT_DELAY 1000 // 10 секунд цикл поверки датчика освещения
добавить вместо
PHP код:
// AUTO_LIGHT 
#define AUTO_LIGHT_DELAY 500 // цикл опроса датчика освещения
#define AUTO_LIGHT_COUNT 10  // количество опросов датчика перед усреднением
int al_count=0;              // счетчик опросов
int al_acc=0;                // аккумулятор 

после
byte light = analogRead(LIGHT_SENS)>>2; // /4 // интенсивность
добавить

PHP код:
 //усреднение
 
if (al_count++<AUTO_LIGHT_COUNT){
   
al_acc+=light;                
   
light=aino.light;              // используем как флаг "необновления"
 
} else {
   
light=al_acc/AUTO_LIGHT_COUNT;
   
al_count=0// можно поставить >0 для "взять первые n замеров по усредненным данным"
   
al_acc=0//для al_count>0 "0" заменить  на "al_count*light";