typestar

Blink sin delay en Arduino

millis nunca bloquea: compara marcas en vez de dormir.

// millis never blocks: compare timestamps instead of sleeping.
const unsigned long INTERVAL_MS = 750;

unsigned long lastToggle = 0;
bool ledOn = false;

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

void loop() {
  unsigned long now = millis();
  // Subtraction stays correct even when millis wraps around.
  if (now - lastToggle >= INTERVAL_MS) {
    lastToggle = now;
    ledOn = !ledOn;
    digitalWrite(LED_BUILTIN, ledOn ? HIGH : LOW);
  }
}

Cómo funciona

  1. millis() es el reloj libre desde el encendido.
  2. now - lastToggle >= INTERVAL_MS sobrevive al desborde de 49 días.
  3. El loop queda libre para otro trabajo entre parpadeos.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
430
Tokens
78
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 72 segundos.

Escribe este fragmento

Paso 1 de 3 en Tiempo; paso 10 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →