Надо будет попробовать, не обещаю. Дело в том, что я взял за основу этот проект для Электроники-7, а там в одном сегменте матрица из 88(8х11) диодов. Много переписано.@mps33, Вы скетчем с изменениями где датчик ВН1750 поделитесь, а мы потестируем, благо есть на чём.
нужно вставить FastLED.show();
сделал, все гуд)добавить в 1 и 2 сегменты "пусто"
цикл тут громоздко будет выглядеть)сделайте цикл, например For для 4 запросов
byte test = 0;
void rtcCheck() {
WiFi.setAutoReconnect(true);
NTP.updateNow();
if (!c.rtc_check) {
if (NTP.getUnix() < 12345) {
Serial.println("Время получено неправильное!");
test++;
delay(5000);
if (test == 4) {
test = 0;
return;
}
rtcCheck();
}
}
}
WiFi.setAutoReconnect(true)void rtcCheck() {
WiFi.setAutoReconnect(true);
for (byte test=0; test < 4; test++) {
NTP.updateNow();
if (c.rtc_check) return;
if (NTP.getUnix() > 12345) return;
Serial.println("Время получено неправильное!");
delay(5000);
}
}
зато стабильно держит WiFIдля чего-то вызывается несколько раз
так и задумано, она используется в нескольких местах, это я код упростил, для наглядности.test является глобальной переменной
именно из-за многократного повторения при инициализации? Мне кажется, ерунда это всё.зато стабильно держит WiFI
так вот о том, что это плохо задумано, Вам и говорят.так и задумано
с рекурсией - только как static, это значит, что память всё равно будет занята.так то могу и в функцию занести...
//////////// функция освещенности
void Brightness() {
static gh::Timer timer(o.brg * 1000); // как часто проверять изменение по датчику освещенности в сек
if (timer) {
if (o.auto_brg) { // если включена автояркость
if (o.type_brg) new_brg = o.min_max ? map(digitalRead(BRG_PIN), 7, 1023, o.min_brg, o.max_brg) : map(digitalRead(BRG_PIN), 7, 1023, o.max_brg, o.min_brg); // тип датчика цифра
if (!o.type_brg) new_brg = o.min_max ? map(analogRead(BRG_PIN), 7, 1023, o.min_brg, o.max_brg) : map(analogRead(BRG_PIN), 7, 1023, o.max_brg, o.min_brg); // тип датчика аналог
FastLED.setBrightness(new_brg); // устанавливаем яркость
if (c.change_color == 0) ledColor = ColorTable[c.led_color];
flag_night = false;
} else {
if (!o.auto_brg) FastLED.setBrightness(o.min_brg);}
if (new_brg < o.light_night && o.night_mode && ((o.start_night > o.stop_night && (hour >= o.start_night || hour < o.stop_night)) || (o.start_night < o.stop_night && hour >= o.start_night && hour >= o.start_night && hour < o.stop_night)))
{
FastLED.setBrightness(o.night_brg); // яркость ночного режима
ledColor = ColorTable[o.night_color];
flag_night = true;
}
}
}