millis()

millis()

O millis() é o seu cronômetro interno: ele conta quantos milissegundos se passaram desde que a placa foi ligada (ou resetada). É a chave pra fazer várias coisas "ao mesmo tempo" sem travar o Arduino, comparando tempos em vez de usar delay().

Sintaxe

millis();

Parâmetros

Nenhum.

Retorno

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

Exemplo

unsigned long marcaAnterior = 0;
const unsigned long INTERVALO = 1000;
bool ligado = false;

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  unsigned long agora = millis();
  if (agora - marcaAnterior >= INTERVALO) {
    marcaAnterior = agora;
    ligado = !ligado;
    digitalWrite(LED_BUILTIN, ligado);
  }
  // o loop continua livre para ler botões, sensores, etc.
}

Notas e cuidados

  • Sempre guarde o valor em unsigned long. Usar int estoura rápido e quebra a conta.
  • O contador volta a zero (overflow) depois de ~49,7 dias. A subtração agora - marcaAnterior funciona corretamente mesmo nesse momento, desde que ambos sejam unsigned long.
  • A resolução é de 1 ms — pra medir tempos ainda menores, use micros().

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

Conhecer o Curso Maker