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

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

1. Подготовка:
- Подключите к плате Arduino библиотеку TimerOne. Вы можете сделать это, выбрав "Sketch -> Include Library -> TimerOne" в Arduino IDE.
- Включите библиотеку TimerOne в своем коде, используя #include <TimerOne.h>.

2. Создание таймеров:
- Определите две функции обратного вызова (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() функции отсутствует код, отвечающий за отсчет времени, так как таймеры уже включены и будут работать независимо. Вы можете добавить любой другой код, который должен выполняться в цикле.

3. Запуск и остановка таймеров:
- Запустите таймеры в setup() функции после настройки:

void setup() {
  // ...

  Timer1.start();
  Timer2.start();
}

- Вы можете остановить таймеры в любой части вашей программы, используя TimerX.stop(), где X - номер таймера:

Timer1.stop();

- Если вы захотите возобновить работу таймеров после остановки:

Timer1.start();

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