Menu
CoddyTech

Recordar el modo

Parte de la sección Temporización sin delay del Journey de Arduino de Coddy. Lección 7 de 18.

La pulsación de un botón dura una fracción de segundo, pero lo que inicia puede durar mucho más. Para continuar después de soltar el botón, el sketch tiene que recordar lo que está haciendo. Una variable para eso se llama estado o modo:

int mode = 0;   // 0 = apagado, 1 = parpadeando

Divide loop() en dos partes. Primero, las entradas solo cambian el modo. Después, el resto del bucle hace lo que indica el modo:

// 1. las entradas cambian el modo
if (digitalRead(blinkButton) == LOW) {
  mode = 1;
}

// 2. el modo determina qué sucede
if (mode == 1) {
  // haz parpadear con millis()
} else {
  digitalWrite(ledPin, LOW);
}

Cada número representa una cosa que puede estar haciendo el sketch. Escribe lo que significa cada número en un comentario. Un sketch puede tener tantos modos como necesite: 0, 1, 2, 3 y más.

challenge icon

Desafío

Fácil

El botón verde está en el pin 2 y el rojo en el pin 3.

  • el verde establece mode en 1 y el rojo lo establece en 0
  • cuando mode es 1, el LED del pin 13 parpadea con millis(), 500 ms encendido y 500 ms apagado
  • cuando mode es 0, el LED está apagado

Presiona Run, presiona el botón verde, suéltalo y después presiona el rojo. Después, Check.

Pruébalo tú mismo

const int ledPin = 13;
const int blinkButton = 2;   // verde
const int offButton = 3;     // rojo

int mode = 0;   // 0 = apagado, 1 = parpadeando

unsigned long previousMillis = 0;
int ledState = LOW;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(blinkButton, INPUT_PULLUP);
  pinMode(offButton, INPUT_PULLUP);
}

void loop() {
  // 1. los botones solo cambian mode

  // 2. luego haz lo que indique mode
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Temporización sin delay

Practica por tu cuenta: Playground de Arduino