Ecco un esempio di codice Arduino per simulare le luci dello scanner di Knight Rider usando 10 LED, che scorrono avanti e indietro:
// Dichiarazione delle variabili
int ledPin[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // Array di pin dei LED
int delayTime = 50; // Tempo di attesa tra un LED e l'altro
int direction = 1; // Direzione iniziale (1 = avanti, -1 = indietro)
int currentLED = 0; // LED corrente
void setup() {
// Inizializzazione dei pin dei LED come OUTPUT
for (int i = 0; i < 10; i++) {
pinMode(ledPin[i], OUTPUT);
}
}
void loop() {
// Accensione del LED corrente
digitalWrite(ledPin[currentLED], HIGH);
delay(delayTime);
// Spegnimento del LED corrente
digitalWrite(ledPin[currentLED], LOW);
// Calcolo del prossimo LED in base alla direzione
currentLED += direction;
// Controllo dei limiti
if (currentLED == 9) {
// Raggiunto l'ultimo LED, invertire la direzione
direction = -1;
} else if (currentLED == 0) {
// Raggiunto il primo LED, invertire la direzione
direction = 1;
}
}
Questo codice accende un LED alla volta e poi lo spegne, passando al successivo LED nella direzione scelta. Quando raggiunge il primo o l’ultimo LED, cambia direzione e inizia a scorrere nella direzione opposta. Puoi modificare il tempo di attesa tra un LED e l’altro regolando il valore di ‘delayTime
‘. Assicurati di collegare correttamente i LED ai pin specificati nel codice.