Для создания двух не связанных таймеров на 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();
Теперь у вас два не связанных таймера, каждый заданный своим периодом и отдельной функцией обратного вызова. Код внутри функций обратного вызова будет выполняться, когда соответствующий таймер сработает.