Как сделать 2 не связанных таймера?

Для создания двух не связанных таймеров на Arduino, можно использовать библиотеку TimerOne или TimerThree. В данном ответе я рассмотрю использование библиотеки TimerOne.

  1. Подготовка:
  • Подключите к плате Arduino библиотеку TimerOne. Вы можете сделать это, выбрав "Sketch -> Include Library -> TimerOne" в Arduino IDE.
  • Включите библиотеку TimerOne в своем коде, используя #include <TimerOne.h>.
  1. Создание таймеров:
  • Определите две функции обратного вызова (callback functions), которые будут вызываться таймерами. Например:
void timer1Callback() {
  // Ваш код для таймера 1
}

void timer2Callback() {
  // Ваш код для таймера 2
}
  • В setup() функции настройте оба таймера, указывая функции обратного вызова и период работы таймеров. Например:
void setup() {
  // Настройка таймера 1
  Timer1.initialize(1000000);  // Период 1 секунда
  Timer1.attachInterrupt(timer1Callback);  // Установка функции обратного вызова

  // Настройка таймера 2
  Timer1.attachInterrupt(timer2Callback);  // Установка функции обратного вызова для таймера 2
  Timer1.setPeriod(2000000);  // Период 2 секунды
}
  • В loop() функции отсутствует код, отвечающий за отсчет времени, так как таймеры уже включены и будут работать независимо. Вы можете добавить любой другой код, который должен выполняться в цикле.
  1. Запуск и остановка таймеров:
  • Запустите таймеры в setup() функции после настройки:
void setup() {
  // ...

  Timer1.start();
  Timer2.start();
}
  • Вы можете остановить таймеры в любой части вашей программы, используя TimerX.stop(), где X - номер таймера:
Timer1.stop();
  • Если вы захотите возобновить работу таймеров после остановки:
Timer1.start();

Теперь у вас два не связанных таймера, каждый заданный своим периодом и отдельной функцией обратного вызова. Код внутри функций обратного вызова будет выполняться, когда соответствующий таймер сработает.