micros()

micros()

Irmão mais rápido do millis(), o micros() conta o tempo desde que a placa ligou, mas em microssegundos (milionésimos de segundo). Use quando você precisa medir intervalos muito curtos, como a duração de um pulso.

Sintaxe

micros();

Parâmetros

Nenhum.

Retorno

O número de microssegundos desde que o programa começou, como unsigned long.

Exemplo

void setup() {
  Serial.begin(9600);
}

void loop() {
  unsigned long inicio = micros();
  // trecho que você quer cronometrar
  delayMicroseconds(200);
  unsigned long duracao = micros() - inicio;

  Serial.print("Levou ");
  Serial.print(duracao);
  Serial.println(" us");
  delay(1000);
}

Notas e cuidados

  • No Arduino Uno (16 MHz), a resolução é de 4 µs — os valores sempre vêm em múltiplos de 4. Em placas mais lentas (8 MHz) é de 8 µs.
  • O contador volta a zero (overflow) depois de ~70 minutos, bem mais rápido que o millis(). Use a subtração com unsigned long pra atravessar o overflow sem erro.
  • Pra intervalos longos (segundos, minutos), prefira millis(), que estoura muito mais tarde.

Quer aprender a usar isso em projetos reais, do zero?

Conhecer o Curso Maker