Un lampeggio che accelera
Fa parte della sezione Primi circuiti del percorso Arduino di Coddy. Lezione 17 di 22.
delay(waitTime) attende il valore contenuto in waitTime in quel momento. Modifica la variabile mentre lo sketch è in esecuzione e anche il lampeggio cambierà.
waitTime = waitTime - 100; // Il prossimo lampeggio è più breve di 100 msMettilo alla fine di loop() e ogni lampeggio sarà più breve del precedente.
Osserva cosa succede dopo un po' che è in esecuzione. L'attesa si riduce a 0 e poi scende sotto 0. delay() non può attendere un tempo negativo: interpreta -200 come un numero enorme, circa 49 giorni, quindi il LED sembra bloccato. Uno sketch deve decidere da solo quando smettere di ridurre il valore, ed è proprio questo l'argomento della prossima lezione.
Sfida
FacileFai lampeggiare il LED sul pin 13 sempre più velocemente:
- all’inizio, scrivi
int waitTime = 1000; - in
loop(), fai lampeggiare usandodelay(waitTime)per entrambe le attese - alla fine di
loop(), riduciwaitTimedi 200
Premi Run e osserva finché non si blocca, poi premi Check.
Provalo tu
// crea waitTime qui
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
// riduci waitTime
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Primi circuiti
3La matematica alla lavagna
Costanti con nomeOperatori aritmeticiDivisione interaNumeri decimali con floatUn lampeggio che acceleraEsercitati da solo: Playground Arduino