// Данный код выполняет действия периодически за указанный период // Нам нужно задать период таймера В МИЛЛИСЕКУНДАХ // дней*(24 часов в сутках)*(60 минут в часе)*(60 секунд в минуте)*(1000 миллисекунд в секунде) // (long) обязательно для больших чисел, иначе не посчитает // можно посчитать на калькуляторе, но какбэ ардуино и есть калькулятор, пусть считает... unsigned long period_time = (long)5*24*60*60*1000; // переменная таймера, максимально большой целочисленный тип (он же uint32_t) unsigned long my_timer; void setup() { my_timer = millis(); // "сбросить" таймер } void loop() { if ((long)millis() - my_timer > period_time) { my_timer = millis(); // "сбросить" таймер // набор функций, который хотим выполнить один раз за период // бла бла бла // ... } }
Ссылка на источник: https://alexgyver.ru/arduino-algorithms/