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()emunsigned long— emintestoura rapidinho. - A subtração
agora - anteriorfunciona corretamente mesmo quando omillis()"dá a volta" (a cada ~49,7 dias), graças à aritmética sem sinal.