Menu
CoddyTech

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 ms

Mettilo 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.

challenge icon

Sfida

Facile

Fai lampeggiare il LED sul pin 13 sempre più velocemente:

  • all’inizio, scrivi int waitTime = 1000;
  • in loop(), fai lampeggiare usando delay(waitTime) per entrambe le attese
  • alla fine di loop(), riduci waitTime di 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
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Primi circuiti

Esercitati da solo: Playground Arduino