Ricordare la modalità
Fa parte della sezione Temporizzazione senza delay del percorso Arduino di Coddy. Lezione 7 di 18.
La pressione di un pulsante dura una frazione di secondo, ma ciò che avvia può durare molto più a lungo. Per continuare dopo aver rilasciato il pulsante, lo sketch deve ricordare cosa sta facendo. Una variabile che serve a questo scopo si chiama stato o modalità:
int mode = 0; // 0 = spento, 1 = lampeggianteDividi loop() in due parti. Prima, gli input cambiano solo la modalità. Poi, il resto del ciclo fa ciò che indica la modalità:
// 1. gli input cambiano la modalità
if (digitalRead(blinkButton) == LOW) {
mode = 1;
}
// 2. la modalità determina cosa succede
if (mode == 1) {
// fai lampeggiare con millis()
} else {
digitalWrite(ledPin, LOW);
}Ogni numero rappresenta una cosa che lo sketch può fare. Scrivi in un commento cosa significa ciascun numero. Uno sketch può avere tutte le modalità di cui ha bisogno: 0, 1, 2, 3 e altre.
Sfida
FacileIl pulsante verde è sul pin 2 e quello rosso sul pin 3.
- il verde imposta
modesu 1, il rosso lo imposta su 0 - quando
modeè 1, il LED sul pin 13 lampeggia conmillis(), 500 ms acceso e 500 ms spento - quando
modeè 0, il LED è spento
Premi Run, premi il pulsante verde, rilascialo, poi premi quello rosso. Poi Check.
Provalo tu
const int ledPin = 13;
const int blinkButton = 2; // verde
const int offButton = 3; // rosso
int mode = 0; // 0 = spento, 1 = lampeggiante
unsigned long previousMillis = 0;
int ledState = LOW;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(blinkButton, INPUT_PULLUP);
pinMode(offButton, INPUT_PULLUP);
}
void loop() {
// 1. i pulsanti cambiano solo la modalità
// 2. poi esegui ciò che prevede la modalità
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Temporizzazione senza delay
2Macchine a stati
Ricordare la modalitàScegliere con switchStati con nome usando enumMacchina a stati del semaforoCambiare modalità con un pulsanteEsercitati da solo: Playground Arduino