#6Intermedio

Karashimşek Led

4.8(103)
182 completato
Karashimşek Led
Progetto che crea un effetto lampo nero in stile Knight Rider accendendo 6 LED in sequenza. Insegna la logica del loop bidirezionale.

Video

Schema circuito

Karashimşek Led - 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(100);
13    digitalWrite(ledPins[i], LOW);
14  }
15
16  for(int i = 4; i > 0; i--) {
17    digitalWrite(ledPins[i], HIGH);
18    delay(100);
19    digitalWrite(ledPins[i], LOW);
20  }
21}

FAQ

Come si crea l'effetto "Karaşimşek" (Knight Rider)?▾

I LED si accendono in sequenza, prima da sinistra a destra, poi da destra a sinistra. I due cicli si susseguono in ordine; poiché il secondo ciclo conta in senso inverso, la luce va avanti e indietro.

Sembra che i LED alle estremità si accendano due volte: come posso risolvere il problema?▾

Se il ciclo di rotazione riaccende il LED all'estremità, quel LED rimane acceso per due passi. È possibile evitare la ripetizione alle estremità avviando il ciclo di rotazione con un indice in meno o in più (ad es. da 4 a 1).

Come si regola la velocità?▾

Modifica il valore di delay() tra un passo e l'altro. Un intervallo compreso tra 30 e 80 ms produce un effetto fluido. Se desideri modificare la velocità durante il funzionamento, puoi aggiungere un potenziometro come nel progetto successivo, “Fulmine nero con regolazione della velocità”.

Posso aggiungere altri LED?▾

Sì, basta aggiungere nuovi pin alla serie di pin e aggiornare i limiti del ciclo. L'Uno dispone di 12 pin digitali liberi; per averne di più, puoi pilotare 8 o più LED con 3 pin utilizzando il registratore a scorrimento 74HC595.

Karashimşek Led | BlueGrays