Neste artigo será apresentado o conceito de temporizador sem delay. Confira abaixo o passo a passo completo para profissionalizar seus softwares/códigos com Arduino e ESP32.
Quantas vezes em nossos códigos do Arduino precisamos de um "atraso" mas a função delay() PARA o código, e não podemos ter este problema, para isso recorremos a função millis() e realizamos comparações que por vezes são complicadas para quem está começando. Pensando neste problema a Crescer Indústria de Automação desenvolveu a biblioteca do timer sem delay.
Controlar o tempo em códigos que envolvem a automação sempre foi algo crucial, tempo para acionar motores, realizar acionamentos sincronizados de válvulas e pistões pneumáticos e até mesmo piscar um LED sem que seja necessário travar o código naquela etapa. O Timer sem delay da Crescer, controla e gerência isto para nós. Com base no conceito de CLP onde os timers não "travam" o programa, a library monitora os tempos que desejamos para ativar ou desativar determinada etapa do código, com base na nossa programação. Faça o download: Biblioteca Temporizador sem delay
O QUE VAMOS APRENDER?
1 - FUNÇÕES DA BIBLIOTECA
Tempora Temp1 - Tempora é o tipo de variável (long) que vai criar os timers que utilizaremos durante o código;
Temp1.defiSP(1000) - Função que define o tempo que desejamos para que este timer atue. Ou seja uma vez ativado passado o tempo estipulado entre os parênteses “(1000)” em milli segundos ele libera a próxima função;
Temp1.Saida(1) - Função utilizada na comparação dentro do “if”, uma vez passado o tempo estipulado na função “defiSP(1000);” esta função vai executar o comando.
Temp1.Saida(0) - Função que zera o timer, uma vez que é chamada ela zera o temporizador e começa novamente a contagem.
2 - COMO FUNCIONA?
A biblioteca Temporizador sem Delay vai monitorar a função millis a partir do momento em que a função “defiSP(1000)” for chamada no código, logo este seria o instante 0. Para utilizar a função “.Saida(1)” é necessário realizar uma comparação, uma vez que passado o tempo estipulado, ao chegar nesta comparação, ela vai permitir a entrada na função. Para zerar o timer ou “resetar” basta escrever o comando “.Saida(0)”, e então o tempo começa a ser contabilizado novamente.
Para utilizar em minutos, multiplique por 60.000, pois 1000 ms (mili segundos) é igual a 1 seg. em HORAS basta multiplicar por 3.600.000 que vai ser 1 hora em mili segundos. A variável utilizada dentro da library é um “long” por tanto ela está apta a receber estes valores.
Tudo isso funcionando em loop contínuo sem travar ou parar a varredura do software na linha que anteriormente seria Delay(XXXX);.
3 - EXEMPLOS PRÁTICOS
Agora, para entender de uma vez por todas, com aplicações práticas e exemplificando o uso do Temporizador sem Delay;
3.1 Controlar Tempo no Arduino sem Delay - Canal do Youtube - E2T Automação
3.2 Temporizador com Arduino sem Delay Parte 1 - Canal do Youtube - Crescer Indústria de Automação
3.2 Temporizador com Arduino sem Delay Parte 2 - Canal do Youtube - Crescer Indústria de Automação
4 - ENCERRAMENTO
Bom pessoal, espero ter ajudado vocês, essa biblioteca que é muito útil nos mais diversos códigos que podemos criar com o Arduino ou a CPB, ela foi criada para facilitar e ajudar a dar mais fluidez ao código, fazendo com que nossas programações fiquem cada vez mais profissionais - acesse também ao blog 4 passos para usar o arduino/ESP32 profissionalmente.
Deixe seu comentário sobre dúvidas ou o que achou da library. Abraço e bons projetos.
Avalie-nos no google para que possamos alcançar e auxiliar cada vez mais pessoas a fazerem seus projetos e produtos! Contamos com você!