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 = parpadeandoDivide 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.
Desafío
FácilEl botón verde está en el pin 2 y el rojo en el pin 3.
- el verde establece
modeen 1 y el rojo lo establece en 0 - cuando
modees 1, el LED del pin 13 parpadea conmillis(), 500 ms encendido y 500 ms apagado - cuando
modees 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
}
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
2Máquinas de estados
Recordar el modoElegir con switchEstados con nombre usando enumMáquina de estados del semáforoCambiar de modo con un botónPractica por tu cuenta: Playground de Arduino