Toggle al presionar en Arduino
Una variable de estado recuerda entre pasadas; ! la voltea.
// A state variable remembers across loop passes; ! flips it.
const int BUTTON_PIN = 2;
const int FAN_PIN = 5;
bool fanOn = false;
int lastReading = HIGH;
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(FAN_PIN, OUTPUT);
}
void loop() {
int reading = digitalRead(BUTTON_PIN);
if (reading == LOW && lastReading == HIGH) {
fanOn = !fanOn;
digitalWrite(FAN_PIN, fanOn ? HIGH : LOW);
}
lastReading = reading;
}
Cómo funciona
fanOnylastReadingpersisten entre iteraciones.- La prueba de flanco — LOW ahora, HIGH antes — dispara una vez.
fanOn = !fanOnalterna; el ternario maneja el pin.
Palabras clave y builtins usados aquí
HIGHINPUT_PULLUPLOWOUTPUTboolconstfalseifintloopsetupvoid
El intento, en números
- Líneas
- 20
- Caracteres a escribir
- 419
- Tokens
- 92
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 85 segundos.
Paso 2 de 3 en E/S digital; paso 5 de 27 en Fundamentos del lenguaje.