Arduino – Utilizando a função millis

Arduino – Utilizando a função millis

Nesta prática você vai aprender a utilizar a função millis e executar um exemplo de utilização da mesma a partir de um circuito com dois LEDs. Esta função é uma excelente alternativa ao uso do delay.

Delay é o termo técnico usado para designar o retardo de sinais em circuitos eletrônicos. Na programação com Arduino, o delay é utilizado quando se precisa de intervalos entre um comando e outro.

Vale ressaltar que o delay faz a execução do código parar por completo até que o tempo estabelecido seja executado. Se o delay for de 10 segundos então o código vai ficar parado por 10 segundos e em seguida volta a ser executado. Como o código do Arduino é um loop (repetição contínua das instruções), seguindo o exemplo de um delay de 10 segundos, concluímos que toda vez que o loop passar pelo delay, uma interrupção de 10 segundos será executada.

Mas e se o código precisar que um intervalo de tempo seja executado, porém sem que a execução do código seja interrompida?!

Neste este tipo de situação podemos utilizar a função millis. A função irá retornar o tempo em milissegundos desde o momento em que o Arduino foi ligado ou reiniciado. Desta forma, é possível verificar a quanto tempo o programa está em execução e programar ações sem que o código seja interrompido.

Para demonstrar o uso da função millis, utilizei dois LEDs conectados ao Arduino, onde um dos LEDs vai piscar em intervalos de 2 segundos e o outro vai piscar em intervalos de 500ms. Os dois processos vão ocorrer simultaneamente e sem interrupções.

Você vai precisar dos seguintes itens para execução da prática:

Arduino
LEDs
Resistor 150Ω
Protoboard
Cabo Jumper Macho-macho

Monte o esquema de ligação conforme a imagem abaixo:

img01_arduino_utilizando_a_função_millis_sem_delay_intervalo_void_loop

A seguir, você deverá carregar o código na IDE do Arduino. Se você ainda não instalou a IDE do Arduino, acesse o link abaixo e em seguida retorne para continuar:

Arduino – Instalação e Configuração da IDE no Windows

Conecte o Arduino ao computador, abra a IDE, confira a placa e a porta selecionada e carregue o código na placa:

Após o arquivo ser carregado, veja os LEDs funcionando simultaneamente, onde um deles muda o estado a cada dois segundos e o outro alterna o estado a cada 500ms. Note que o funcionamento deles é independente e suas ações executam de forma simultânea.

Se tivéssemos utilizado a função delay, o funcionamento dos dois LEDs não seria de forma simultânea, pois primeiro seria necessário executar as ações de um LED para em seguida executar as ações do outro.

Na construção de braços robóticos a partir do uso de servos, a função millis é comumente utilizada, pois para esse tipo de projeto quanto menos interrupções existir no código melhor será o desempenho do braço.

Gostou deste tutorial? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.

Arduino – Utilizando a função millis
29 votos / Média de avaliação: 5 / Pontuação: 99.31%


Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação pela Faculdade Presidente Antônio Carlos, fundador e CEO da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 6 comentários para esta postagem
  1. Paulo às 16:45

    Esse esquema da para fazer enquanto um DHT11 vai vendo o tempo e mandando para uma base de dados a cada 10 minutos … um sensor de presença pode ir trabalhando …. e se detectou alguem passando na frente pode mandar um instrução de aviso ?

  2. Filipe David às 22:02

    boa noite amigo, estou projetando uma envasadora de liquido e necessito utilizar essa função.

    Voce poderia me dar uma ajuda…

    Funcionamento seria mais ou menos assim… vai ter um sensor de nivel em um reservatorio principal no qual ira conter o liquido que vai para os potes menores.

    Se nivel do tanque Ok liga uma esteira onde correram as embalagens vazia…

    Coloquei no fim da esteira um sensor de barreira… se identificar o pote ele rotaciona um compartimento como se fosse uma roda com 4 posições… até uma segunda posição aonde tem a bomba que vai alimentar as embalagens menores. Além disso, corta a alimentação da esteira.

    problema 1 – ele deve rotacionar até a posição da bomba (problema é o tempo que ele fica acionado), quando ele rotaciona a esteira tem que voltar a funcionar.

    problema 2 – tempo que a bomba deve ficar acionada, sem rotacionar porem esteira ligada.

    vc teria alguma ideia?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *