Для реализации разных действий на разные промежутки времени в Arduino вы можете использовать функцию millis()
, которая возвращает количество миллисекунд, прошедших с момента запуска платы Arduino. С помощью этой функции можно создать таймеры и отслеживать промежутки времени для выполнения определенных действий.
Вот пример кода, который демонстрирует, как это сделать:
const unsigned long interval1 = 2000; // интервал времени для действия 1 (в миллисекундах) const unsigned long interval2 = 5000; // интервал времени для действия 2 (в миллисекундах) unsigned long previousMillis = 0; // хранит значение времени последнего выполнения действия void setup() { // инициализация Serial.begin(9600); // инициализация последовательного порта } void loop() { // получение текущего значения времени с помощью millis() unsigned long currentMillis = millis(); // выполнение действия 1 каждые 2 секунды if (currentMillis - previousMillis >= interval1) { previousMillis = currentMillis; // сохраняем текущее время как время последнего выполнения действия action1(); // вызываем функцию для выполнения действия 1 } // выполнение действия 2 каждые 5 секунд if (currentMillis - previousMillis >= interval2) { previousMillis = currentMillis; // сохраняем текущее время как время последнего выполнения действия action2(); // вызываем функцию для выполнения действия 2 } // ваш остальной код } void action1() { // здесь выполняются действия для действия 1 } void action2() { // здесь выполняются действия для действия 2 }
В этом примере кода loop()
функция проверяет, прошло ли достаточное количество времени с момента последнего выполнения действия 1 или действия 2, используя currentMillis - previousMillis >= interval1
и currentMillis - previousMillis >= interval2
. Если условие выполнено, то соответствующая функция action1()
или action2()
вызывается, и переменная previousMillis
обновляется.
Вы можете настроить interval1
и interval2
на требуемые временные интервалы для выполнения ваших действий. Если вам нужно добавить больше действий, просто добавьте дополнительный блок проверки условия и функцию выполнения действия.
Также обратите внимание, что использование millis()
позволяет выполнить действия без блокировки выполнения другого кода, так как она работает на основе времени, а не задержек delay()
. Это позволяет программе Arduino выполнять другие задачи во время ожидания временных промежутков, что может быть полезно, если вы планируете выполнить дополнительные действия или считывать данные с различных датчиков.