Arduino Timer Library para retrasar

Arduino Timer Library Para Retrasar



El temporizador es uno de los componentes clave de Arduino para manejar tareas urgentes. Los temporizadores de Arduino generalmente usan la función de retraso () para proporcionar una ejecución de retraso o pausa por pequeños intervalos de tiempo. Sin embargo, se requiere una biblioteca especial para funciones de retardo para realizar múltiples tareas.

Esta guía cubrirá varias bibliotecas de temporizadores Arduino para retrasar con breves descripciones. Antes de eso, entendamos la limitación de la función Arduino delay().







Limitaciones de retraso()

La función de retraso () no se puede usar si desea realizar diferentes tareas simultáneamente, ya que es una función de bloqueo. Significa que cada vez que la función de retraso () se usa para pausar la ejecución de una tarea, no permite que se ejecute ninguna otra función mientras tanto. Por lo tanto, cuando alguien quiere detener un programa mientras ejecuta otros, no se puede usar delay().



¿Entonces que hacer?



Arduino Timer Library para retrasar llamadas a funciones

Para resolver este problema, debe usar bibliotecas especiales diseñadas para realizar retrasos. Estas bibliotecas le permiten pausar algunas de las funciones del programa durante algún tiempo y ejecutar otras mientras tanto. Estas bibliotecas son bibliotecas de temporizadores que no bloquean la multitarea. Se pueden utilizar para llamar a funciones cuando sea necesario.





Cómo incluir la biblioteca de temporizadores de Arduino en el código de Arduino

Para incluir la biblioteca del temporizador primero tenemos que agregar el archivo zip yendo a la Incluir biblioteca sección en Arduino IDE. Para obtener una descripción detallada de cómo agregar bibliotecas Arduino, puede leer el artículo sobre cómo instalar la biblioteca en Arduino IDE .

Paso 1

Primero, tendrás que descargar la biblioteca de temporizadores de Arduino.



Paso 2

Después de descargar la biblioteca del temporizador, abra Arduino IDE y vaya a Sketch, luego Incluir biblioteca, y luego haga clic en Agregar biblioteca ZIP.


Arduino mostrará 'Biblioteca instalada' en la salida.

Paso 3

Una vez que haya agregado la biblioteca ZIP al IDE de Arduino, aparecerá en la lista desplegable de opciones Incluir biblioteca en el IDE de Arduino. Desde aquí incluir Temporizador biblioteca.


Cuando incluyes el 'Temporizador' biblioteca, la directiva del preprocesador aparecerá en el boceto. De lo contrario, puede seguir el paso 4 para incluir manualmente la biblioteca.

# incluir < Temporizador.h >

 

Etapa 4

Para incluir Arduino Timer Library en el código de Arduino, debe utilizar el #incluir directiva junto con la (.h) nombre de la biblioteca del temporizador de extensión y luego cree un temporizador como se muestra a continuación.

#include
temporizador automático = timer_create_default ( ) ;

 
Después de crear un temporizador, debe crear una función para llamar a ese temporizador. Es posible que deba llamar al temporizador en un instante de tiempo específico, después de un breve retraso o después de un intervalo de tiempo. A continuación se dan ejemplos de temporizadores de llamada en tales condiciones.

En caso de que desee un breve retraso

 

timer.in ( retraso, function_to_call ) ;
timer.in ( retraso, function_to_call, argumento ) ; // o con un argumento opcional para función_a_llamar

 
En este caso, podemos utilizar el timer.in() función para introducir un retraso antes de llamar a una función específica. El parámetro delay representa el tiempo en milisegundos que queremos esperar antes de ejecutar el código.

Después del retraso especificado, el función_a_llamar se utilizará. También se puede definir un argumento para pasar a la función en el momento de la llamada.

En caso de que desee llamar al temporizador en un momento específico

Esta función configura un temporizador para ejecutar una función específica en un momento determinado. El parámetro de tiempo especifica la hora a la que se debe llamar a la función. Podría ser una marca de tiempo específica o un valor de retraso en milisegundos. El función_a_llamar es el parámetro de la función que se ejecutará después de la expiración del temporizador.

timer.at ( tiempo , función_a_llamar ) ;
timer.at ( tiempo , función_a_llamar, argumento ) ; // con argumento

 
timer.at(hora, function_to_call, argumento) función puede pasar un argumento a la función que se llama. El parámetro del argumento será el valor que se va a pasar en la función.

En caso de que quiera llamar al temporizador después de un intervalo de tiempo

En este caso, puede usar la función timer.every() para llamar repetidamente a una función después de un intervalo de tiempo específico. El parámetro de intervalo muestra el tiempo en milisegundos entre intervalos de tiempo ejecutables.

Especifique el intervalo deseado y el función_a_llamar se usará repetidamente después de ese intervalo. Al igual que los casos anteriores, puede incluir un argumento opcional para pasar a la función cuando se llama.

temporizador.cada ( intervalo, function_to_call ) ;
temporizador.cada ( intervalo, function_to_call, argumento ) ; // Escribe tu intervalo aquí

 
Puede obtener más detalles sobre este método de usar una biblioteca de temporizadores para retrasar las llamadas a funciones a través del enlace Biblioteca de temporizador Arduino para funciones de retardo .

Algunas otras bibliotecas para Delay en Arduino

El enlace que se proporciona a continuación lo llevará a las bibliotecas de temporizadores de Arduino, donde puede instalar las bibliotecas de temporizadores para retrasar las llamadas a funciones.

Timer Library de Michael Contreras

También hay un autor que ha proporcionado su propia biblioteca de temporizador Arduino sin bloqueo creada para retrasar las llamadas a funciones. Ha utilizado funciones integradas de Arduino como millis() y micros() para realizar funciones de retardo sin bloqueo. Un enlace a su biblioteca se da a continuación:

MiguelUray Biblioteca de temporizadores Arduino

Conclusión

Aunque la función de retraso () ya está presente en Arduino, no se puede usar para realizar varias tareas simultáneamente. Para ejecutar múltiples tareas al mismo tiempo, la comunidad de Arduino ha creado bibliotecas de temporizadores sin bloqueo que se pueden usar cuando sea necesario.