unsigned long

unsigned long nome = 0UL;

O unsigned long guarda inteiros sem sinal de 32 bits — só positivos, mas com um alcance enorme. É exatamente o tipo que o millis() e o micros() devolvem, então você vai usá-lo bastante para controlar tempo.

Sintaxe

unsigned long nome = 0UL;

Parâmetros

Nenhum (declaração de variável).

Retorno

Ocupa 4 bytes e vai de 0 a 4.294.967.295 (o mesmo no Uno e no ESP32).

Exemplo

unsigned long anterior = 0;
const unsigned long INTERVALO = 1000;

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

void loop() {
  unsigned long agora = millis();
  if (agora - anterior >= INTERVALO) {
    anterior = agora;
    digitalWrite(13, !digitalRead(13)); // pisca sem delay()
  }
}

Notas e cuidados

  • Sempre guarde o retorno de millis()/micros() em unsigned long — em int estoura rapidinho.
  • A subtração agora - anterior funciona corretamente mesmo quando o millis() "dá a volta" (a cada ~49,7 dias), graças à aritmética sem sinal.

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

Conhecer o Curso Maker