Funções de Tempo

Existem basicamente dois tipos de funções de tempo: um deles faz uma pausa e o outro retorna o tempo desde que a aplicação está rodando.

delay() e delayMicroseconds()

Na função delay(), é passado como parâmetro um valor de tempo em milissegundos e ao executar, o programa entrará em modo de espera pelo tempo especificado. Caso seja necessário uma maior precisão, pode-se usar a função delayMicroseconds() que como o nome sugere, executará uma pausa no programa de acordo com o valor em microssegundos que foi passado para o programa.

millis() e micros()

Com a função millis() é possível obter o tempo em milissegundos que decorreu desde que a placa Arduino começou a rodar o programa. Também existe a versão em microsegundos, dada pela função micros().

Há uma diferença no formato do valor passado para as funções, enquanto as que operam sobre milissegundos utilizam no formato unsigned long, podendo variar de 0 a 4.294.967.295, as que operam sobre microssegundos utilizam-se do formato unsigned int, no qual o alcance vai de 0 a 65.535. Assim, a função micros() pode armazenar um tempo de até cerca de 70 minutos enquanto a função millis() armazena aproximadamente 50 dias. Ao atingir o valor máximo, acontece um overflow, fazendo com que o valor retorne a 0, recomeçando a contagem.

1 segundo = 1.000 milissegundos = 1.000.000 microsegundos