Biblioteca de timer do Arduino para atrasar

Biblioteca De Timer Do Arduino Para Atrasar



O timer é um dos principais componentes do Arduino para lidar com tarefas sensíveis ao tempo. Os temporizadores do Arduino geralmente usam a função delay() para fornecer um atraso ou pausa na execução por pequenos intervalos de tempo. No entanto, uma biblioteca especial para funções de atraso é necessária para multitarefa.

Este guia cobrirá várias bibliotecas de timer do Arduino para atrasar com breves descrições. Antes disso vamos entender a limitação da função delay() do Arduino.







Limitações de atraso()

A função delay() não pode ser usada se você quiser executar várias tarefas simultaneamente, pois é uma função de bloqueio. Isso significa que sempre que a função delay() for usada para pausar a execução de uma tarefa, ela não permite que nenhuma outra função seja executada nesse meio tempo. Portanto, quando alguém deseja interromper um programa enquanto executa outros, delay() não pode ser usado.



Então o que fazer?



Biblioteca de timer do Arduino para atrasar chamadas de função

Para resolver esse problema, você deve usar bibliotecas especiais projetadas para realizar atrasos. Essas bibliotecas permitem pausar algumas das funções do programa por algum tempo e executar outras enquanto isso. Essas bibliotecas são bibliotecas de timer que não bloqueiam a multitarefa. Eles podem ser utilizados para chamar funções como e quando necessário.





Como incluir a biblioteca de timer do Arduino no código do Arduino

Para incluir a biblioteca de timer primeiro temos que adicionar o arquivo zip indo para o Incluir Biblioteca seção no Arduino IDE. Para uma descrição detalhada da adição de bibliotecas do Arduino, você pode ler o artigo em como instalar a biblioteca no Arduino IDE .

Passo 1

Primeiro, você terá que baixar a biblioteca de timer do Arduino.



Passo 2

Depois de baixar a biblioteca do timer, abra o Arduino IDE e vá para Sketch, depois Include Library e, em seguida, clique em Add ZIP Library.


Arduino irá exibir 'Biblioteca Instalada' na saída.

etapa 3

Depois de adicionar a biblioteca ZIP ao Arduino IDE, ela aparecerá na lista suspensa de opções Incluir biblioteca no Arduino IDE. A partir daqui incluir Cronômetro biblioteca.


Quando você inclui o 'Cronômetro' biblioteca, a diretiva de pré-processador aparecerá no esboço. Caso contrário, você pode seguir a etapa 4 para incluir manualmente a biblioteca.

# incluir < Timer.h >

Passo 4

Para incluir a Arduino Timer Library no código do Arduino, você precisa usar o #incluir directiva juntamente com a (.h) nome da biblioteca do temporizador de extensão e, em seguida, crie um temporizador conforme mostrado abaixo.

#include
temporizador automático = timer_create_default ( ) ;


Depois de criar um timer, você precisa criar uma função para chamar esse timer. Você pode precisar chamar o cronômetro em um instante de tempo especificado, após um pequeno atraso ou após um intervalo de tempo. Exemplos para chamar temporizadores em tais condições são dados abaixo.

Caso você queira um pequeno atraso

timer.in ( atraso, function_to_call ) ;
timer.in ( atraso, function_to_call, argumento ) ; // ou com um argumento opcional para function_to_call


Neste caso, podemos usar o timer.in() função para introduzir um atraso antes de chamar uma função específica. O parâmetro delay representa o tempo em milissegundos que queremos esperar antes de executar o código.

Após o atraso especificado, o function_to_call será usado. Um argumento também pode ser definido para passar para a função no momento da chamada.

Caso você queira chamar o cronômetro em um horário específico

Esta função configura um temporizador para executar uma função específica em um determinado momento. O parâmetro time especifica a hora em que a função deve ser chamada. Pode ser um timestamp específico ou um valor de atraso em milissegundos. O function_to_call é o parâmetro da função que será executada após a expiração do timer.

timer.at ( tempo , function_to_call ) ;
timer.at ( tempo , function_to_call, argumento ) ; // com argumento


timer.at(time, function_to_call, argumento) função pode passar um argumento para a função que está sendo chamada. O parâmetro do argumento será o valor que será passado na função.

Caso você queira chamar o timer após um intervalo de tempo

Nesse caso, você pode usar a função timer.every() para chamar repetidamente uma função após um intervalo de tempo específico. O parâmetro de intervalo mostra o tempo em milissegundos entre os intervalos de tempo executáveis.

Especifique o intervalo desejado e o function_to_call será usado repetidamente após esse intervalo. Como nos casos anteriores, você pode incluir um argumento opcional para ser passado para a função quando ela for chamada.

timer.every ( intervalo, function_to_call ) ;
timer.every ( intervalo, function_to_call, argumento ) ; // Escreva seu intervalo aqui


Você pode aprender mais detalhes sobre este método de usar uma biblioteca de timer para atrasar chamadas de função através do link Biblioteca de timer do Arduino para funções de atraso .

Algumas outras bibliotecas para atraso no Arduino

O link fornecido abaixo o levará às bibliotecas de timer do Arduino, onde você pode instalar as bibliotecas de timer para atrasar chamadas de função.

Biblioteca de cronômetros de Michael Contreras

Há também um autor que forneceu sua própria biblioteca de timer Arduino sem bloqueio criada para atrasar chamadas de função. Ele usou funções embutidas do Arduino como millis () e micros () para executar funções de atraso sem bloquear. Um link para sua biblioteca é fornecido abaixo:

Michael Uray Biblioteca de temporizadores do Arduino

Conclusão

Embora a função delay() já esteja presente no Arduino, ela não pode ser usada para executar várias tarefas simultaneamente. Para executar várias tarefas ao mesmo tempo, bibliotecas de timer sem bloqueio foram criadas pela comunidade Arduino que podem ser usadas como e quando necessário.