Библиотека таймеров Arduino для задержки

Biblioteka Tajmerov Arduino Dla Zaderzki



Таймер является одним из ключевых компонентов Arduino для решения срочных задач. Таймеры Arduino обычно используют функцию delay() для обеспечения задержки или приостановки выполнения на небольшие промежутки времени. Однако для многозадачности требуется специальная библиотека функций задержки.

В этом руководстве будут рассмотрены различные библиотеки таймеров Arduino для задержки с краткими описаниями. Перед этим давайте разберемся с ограничениями функции delay() в Arduino.







Ограничения задержки()

Функцию delay() нельзя использовать, если вы хотите одновременно выполнять разные задачи, так как это блокирующая функция. Это означает, что всякий раз, когда функция delay() используется для приостановки выполнения задачи, она не позволяет в это время выполняться какой-либо другой функции. Поэтому, когда кто-то хочет остановить одну программу во время выполнения других, задержку() использовать нельзя.



Тогда что делать?



Библиотека таймеров Arduino для отложенных вызовов функций

Для решения этой проблемы следует использовать специальные библиотеки, предназначенные для выполнения задержки. Эти библиотеки позволяют вам приостанавливать некоторые функции в программе на некоторое время и тем временем запускать другие. Эти библиотеки являются библиотеками таймеров, которые не блокируют многозадачность. Их можно использовать для вызова функций по мере необходимости.





Как включить библиотеку таймеров Arduino в код Arduino

Чтобы сначала включить библиотеку таймера, мы должны добавить zip-файл, перейдя в Включить библиотеку раздел в Arduino IDE. Подробное описание добавления библиотек Arduino вы можете прочитать в статье на как установить библиотеку в Arduino IDE .

Шаг 1

Во-первых, вам нужно будет загрузить библиотеку таймера Arduino.



Шаг 2

После загрузки библиотеки таймеров откройте Arduino IDE и перейдите в Sketch, затем «Включить библиотеку», а затем нажмите «Добавить ZIP-библиотеку».


Ардуино отобразит «Библиотека установлена» на выходе.

Шаг 3

После того, как вы добавили ZIP-библиотеку в Arduino IDE, она появится в раскрывающемся списке параметров «Включить библиотеку» в Arduino IDE. Отсюда включите Таймер библиотека.


Когда вы включаете «Таймер» библиотеки, на скетче появится директива препроцессора. В противном случае вы можете выполнить шаг 4, чтобы вручную включить библиотеку.

# включать < Таймер.ч >

Шаг 4

Чтобы включить библиотеку таймеров Arduino в код Arduino, вам нужно использовать #включать директива вместе с (.час) имя библиотеки таймера расширения, а затем создайте таймер, как показано ниже.

#include <Таймер.h>
автоматический таймер = timer_create_default ( ) ;


После создания таймера вам нужно создать функцию для вызова этого таймера. Вам может понадобиться вызвать таймер в указанный момент времени, после небольшой задержки или через интервал времени. Ниже приведены примеры вызова таймеров в таких условиях.

Если вам нужна короткая задержка

таймер.in ( задержка, function_to_call ) ;
таймер.in ( задержка, function_to_call, аргумент ) ; // или с необязательным аргументом для function_to_call


В этом случае мы можем использовать таймер.in() функция, чтобы ввести задержку перед вызовом определенной функции. Параметр задержки представляет время в миллисекундах, которое мы хотим подождать перед выполнением кода.

После указанной задержки function_to_call будет использован. Также можно определить аргумент для передачи функции во время вызова.

Если вы хотите вызвать таймер в определенное время

Эта функция устанавливает таймер для выполнения определенной функции в определенное время. Параметр time указывает время, в которое должна быть вызвана функция. Это может быть конкретная метка времени или значение задержки в миллисекундах. function_to_call — параметр функции, которая должна быть выполнена после истечения таймера.

таймер.в ( время , function_to_call ) ;
таймер.в ( время , function_to_call, аргумент ) ; // с аргументом


timer.at(время, function_to_call, аргумент) функция может передать аргумент вызываемой функции. Параметр аргумента будет значением, которое должно быть передано в функцию.

В случае, если вы хотите вызвать таймер через интервал времени

В этом случае вы можете использовать функцию timer.every() для многократного вызова функции через определенный интервал времени. Параметр interval показывает время в миллисекундах между исполняемыми интервалами времени.

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

таймер.каждый ( интервал, function_to_call ) ;
таймер.каждый ( интервал, function_to_call, аргумент ) ; // Напишите здесь свой интервал


Более подробно об этом методе использования библиотеки таймеров для задержки вызовов функций вы можете узнать по ссылке Библиотека таймера Arduino для функций задержки .

Некоторые другие библиотеки для задержки в Arduino

Приведенная ниже ссылка приведет вас к библиотекам таймеров Arduino, где вы можете установить библиотеки таймеров для задержки вызовов функций.

Библиотека таймеров Майкла Контрераса

Также есть автор, который предоставил свою собственную неблокирующую библиотеку таймеров Arduino для задержки вызовов функций. Он использовал встроенные функции Arduino, такие как millis() и micros(), для выполнения функций задержки без блокировки. Ссылка на его библиотеку приведена ниже:

МайклУрай Библиотека таймеров Arduino

Заключение

Хотя функция delay() уже присутствует в Arduino, ее нельзя использовать для одновременного выполнения нескольких задач. Для одновременного выполнения нескольких задач сообщество Arduino создало неблокирующие библиотеки таймеров, которые можно использовать по мере необходимости.