#7Intermedio

Led di marcia a velocità regolabile

4.6(71)
133 completato
Led di marcia a velocità regolabile
Il progetto consente di regolare in tempo reale la velocità di movimento del LED con il potenziometro e insegna a controllare dinamicamente il tempo di ritardo leggendo il valore del potenziometro con la lettura analogica.

Video

Schema circuito

Led di marcia a velocità regolabile - Circuit

Codice sorgente

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

FAQ

Quali valori restituisce la funzione analogRead?▾

Gli ingressi analogici di Uno leggono valori compresi tra 0 e 5 V con una risoluzione di 10 bit e restituiscono un numero compreso tra 0 e 1023. Man mano che il potenziometro viene ruotato da un'estremità all'altra, il valore varia da 0 a 1023.

Come si converte il valore del potenziometro in velocità?▾

Con la funzione map() puoi convertire l'intervallo 0–1023 nell'intervallo di ritardo desiderato (ad es. 20–500 ms): map(valore, 0, 1023, 20, 500). Quando questo valore viene utilizzato all’interno della funzione `delay()`, la velocità cambia immediatamente.

Come si collegano i terminali del potenziometro?▾

I due pin esterni vanno collegati a 5 V e GND, mentre il pin centrale (tergicristallo) va collegato a un ingresso analogico (ad es. A0). Se si collegano i pin esterni al contrario, cambia solo il senso di rotazione, ma il circuito non si danneggia.

Il cambiamento di velocità viene percepito con un certo ritardo: perché?▾

Se il potenziometro viene letto solo all'inizio del ciclo, il nuovo valore non viene applicato finché tutti i LED non si sono accesi. Se si inserisce la lettura all'interno di ogni fase del LED, la velocità cambia immediatamente.

Led di marcia a velocità regolabile | BlueGrays