#5Intermedio

Camminata guidata

4.6(83)
185 completato
Camminata guidata
Progetto che crea un effetto di luce che cammina accendendo 6 LED in sequenza. Insegna l'uso dell'array e del controllo a più pin con il ciclo for.

Video

Schema circuito

Camminata guidata - Circuit

Codice sorgente

Arduino (C++)
1int ledPins[] = {2, 3, 4, 5, 6, 7};
2
3void setup() {
4  for(int i = 0; i < 6; i++) {
5    pinMode(ledPins[i], OUTPUT); 
6  }
7}
8
9void loop() {
10  for(int i = 0; i < 6; i++) {
11    digitalWrite(ledPins[i], HIGH);
12    delay(150);
13    digitalWrite(ledPins[i], LOW);  
14  }
15}

FAQ

Perché è meglio usare un array?▾

Se conservi i numeri dei pin in un array, puoi scorrere tutti i LED in un'unica riga utilizzando un ciclo for. Per modificare il numero di LED, basta aggiornare l'array; non è necessario scrivere una riga separata per ogni LED.

Se i 6 LED si accendono contemporaneamente, l'Arduino si danneggia?▾

Con una resistenza da 330 Ω, ogni LED assorbe circa 9–10 mA; 6 LED assorbono complessivamente circa 60 mA, valore che rientra nei limiti di sicurezza dell'Uno. Il limite massimo consigliato per un singolo pin è di 20 mA, mentre la corrente I/O totale della scheda è di 200 mA.

Come faccio a invertire la direzione di marcia?▾

Imposta il ciclo "for" in modo inverso: for (int i = 5; i >= 0; i--). In questo modo la luce si muove nella direzione opposta. Se metti i due cicli uno dopo l'altro, otterrai l'effetto "fulmine nero".

Uno dei LED non si accende: quale potrebbe essere il motivo?▾

Quel LED potrebbe essere montato al contrario, il piedino potrebbe non essere inserito correttamente nella breadboard oppure il resistore potrebbe trovarsi su una riga diversa. Puoi capire se il problema è dovuto al LED difettoso o a un collegamento errato sostituendolo con un LED funzionante.

Camminata guidata | BlueGrays