А как бы загрубить показания фоторезистора?
Скажем постоянно опрашивать датчик и усреднять за последние 30 секунд, не портя многозадачность?
Сейчас он на каждый фонарь на трассе реагирует...
вот кусок моего кода, пример усреднения взят отсюда.
но что-то мне подсказывает что это неоптимально.
PHP код:
void poll_AUTO_LIGHT(){ // управление яркостью
byte light;
byte last_light;
int AUTO_LIGHT_DELAY = 1000;
//int sens = analogRead(LIGHT_SENS);
//Начало цикла усреднения значения
int i;
int Count = 1000; //Количество значений для усреднения
int In = 0; //Начальная точка суммирования
int sens; //Усредненное значение со входа
for (i = 0; i < Count; i++) {
In = In + analogRead(LIGHT_SENS);
}
sens = In / Count; //Вычисляем среднее значение
//Конец цикла усреднения значения
//регулировка по датчику освещенности------------
if ((sens > 950) && (sens<960)) {light = 10;}
if ((sens > 960) && (sens<970)) {light = 60;}
if ((sens > 970) && (sens<980)) {light = 100;}
if ((sens > 980) && (sens<990)) {light = 130;}
if ((sens > 990) && (sens<1000)) {light = 160;}
if ((sens > 1000) && (sens<1010)) {light = 200;}
if ((sens > 1010) && (sens<1020)) {light = 230;}
if (sens > 1020) {light = 255;}
//-------------------
if (light!=last_light) {
analogWrite(LIGHT_PIN, light);
last_light=light;
}
p_delay(AUTO_LIGHT,AUTO_LIGHT_DELAY); // задержка для следующего опроса.
}