
Video
Schema circuito

Codice sorgente
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// LED in sequenza a velocità regolabile
4// ─────────────────────────────────────────
5// Un potenziometro imposta la velocità dell'effetto LED a scorrimento. A0
6// viene letto a ogni passo e il suo valore 0-1023 diventa il tempo di
7// ritardo (ms).
8//
9// Pin:
10// D2, D3, D4, D5, D6, D7 -> 6 LED (in ordine)
11// Ogni LED con una resistenza da 330 ohm
12// A0 -> Cursore del potenziometro
13// (piedini esterni a 5V e GND)
14
15int ledPins[] = {2, 3, 4, 5, 6, 7}; // Pin dei LED nell'ordine di accensione
16int potValue; // Valore del potenziometro = ritardo (ms)
17
18void setup() {
19 // Impostare tutti i pin dei LED come uscite
20 for(int i = 0; i < 6; i++) {
21 pinMode(ledPins[i], OUTPUT);
22 }
23}
24
25void loop() {
26 for(int i = 0; i < 6; i++) {
27 potValue = analogRead(A0); // Leggere la velocità (0-1023)
28 digitalWrite(ledPins[i], HIGH);
29 delay(potValue); // Attendere tanti ms quanto il valore del potenziometro
30 digitalWrite(ledPins[i], LOW);
31 }
32}
33FAQ
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.
