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. Usarintestoura rápido e quebra a conta. - O contador volta a zero (overflow) depois de ~49,7 dias. A subtração
agora - marcaAnteriorfunciona corretamente mesmo nesse momento, desde que ambos sejamunsigned long. - A resolução é de 1 ms — pra medir tempos ainda menores, use
micros().