Che cos'è un potenziometro? Lettura analogica e controllo con Arduino
Che cos'è un potenziometro, come funziona e come si collega ad Arduino? Lineare o logaritmico, il codice B10K, la lettura con analogRead e un esempio di luminosità del LED.
Un potenziometro è una resistenza regolabile il cui valore cambia ruotando l'albero. La manopola del volume di una radio, il regolatore di una lampada e le levette di un controller sono tutti potenziometri. Nei progetti Arduino è il modo più semplice per ricevere un valore dall'utente: ruoti la manopola e Arduino legge un numero tra 0 e 1023.

Come funziona un potenziometro?
All'interno c'è una pista resistiva ad arco e un cursore che vi scorre sopra. La resistenza tra i due piedini esterni è fissa (per esempio 10 kΩ). Il piedino centrale è collegato al cursore; ruotando l'albero il cursore si sposta lungo la pista e la resistenza verso ciascun estremo cambia. Applicando 5 V e GND ai piedini esterni, sul piedino centrale ottieni una tensione tra 0 e 5 V. In pratica un potenziometro è un partitore di tensione regolabile.
Tipi di potenziometri
| Tipo | Aspetto | Utilizzo |
|---|---|---|
| Potenziometro rotativo | Con albero, 3 piedini | Volume, luminosità, velocità |
| Trimmer | Piccolo, si regola con il cacciavite | Valori da impostare una volta sola (come il contrasto dell'LCD) |
| Potenziometro a slitta | Scorre in linea retta | Mixer e pannelli di controllo |
| Joystick | Due potenziometri in uno | Controllo su due assi (X e Y) |
Collegare un potenziometro ad Arduino
- Collega un piedino esterno a 5V e l'altro a GND (invertendoli cambia solo il verso).
- Collega il piedino centrale a un ingresso analogico, per esempio A0.
- Collega un LED con una resistenza da 220 Ω al pin 9, che supporta il PWM.
- Carica il codice qui sotto e apri il monitor seriale; ruotando la manopola cambiano il valore e la luminosità del LED.
const int POT_PIN = A0; // potansiyometre orta bacak / pot wiper
const int LED_PIN = 9; // PWM pini / PWM pin
void setup() {
pinMode(LED_PIN, OUTPUT); // LED çıkış / LED output
Serial.begin(9600); // seri monitör / serial monitor
}
void loop() {
int raw = analogRead(POT_PIN); // 0–1023 oku / read 0–1023
int brightness = map(raw, 0, 1023, 0, 255); // PWM'e çevir / scale to PWM
analogWrite(LED_PIN, brightness); // parlaklık / brightness
Serial.println(raw); // değeri yaz / print value
delay(20);
}La funzione map() converte un valore da un intervallo a un altro, per esempio una lettura 0–1023 in un valore PWM 0–255 o in un angolo del servo 0–180. Per vedere il partitore di tensione in numeri usa il calcolatore del partitore di tensione.
Intervallo di lettura analogica per scheda
| Scheda | Risoluzione | Intervallo | Funzione |
|---|---|---|---|
| Arduino Uno / Nano | 10 bit | 0–1023 | analogRead() |
| ESP32 | 12 bit | 0–4095 | analogRead() |
| Raspberry Pi Pico | 12 bit (scalato a 16 bit) | 0–65535 | ADC.read_u16() |
Errori comuni
- Collegare il piedino centrale direttamente a 5V o GND: a fine corsa si crea un cortocircuito e il potenziometro può bruciarsi. L'alimentazione va sempre ai piedini esterni.
- Valori instabili: la lettura può oscillare di qualche unità. Fai la media di più letture o ignora le piccole variazioni.
- Usare un potenziometro logaritmico: con il tipo A il valore cambia lentamente all'inizio e velocemente alla fine; per un controllo lineare usa il tipo B.
- Collegarlo a un pin digitale: il potenziometro fornisce un valore analogico, quindi va collegato a un ingresso analogico come A0–A5.
Come regolare l'angolo di un servo con un potenziometro lo trovi in Che cos'è un servomotore?, le basi della resistenza in Che cos'è una resistenza?.
Domande frequenti
Di che valore deve essere il potenziometro per Arduino?
Un lineare da 10 kΩ (B10K) è la scelta più comune. Funzionano anche valori da 1 kΩ a 100 kΩ; quelli molto bassi assorbono più corrente, quelli molto alti possono dare letture rumorose.
Come si riconoscono i piedini di un potenziometro?
Tenendolo con l'albero verso di te, il piedino centrale è il cursore. L'ordine di quelli esterni decide solo in che verso il valore aumenta.
Perché la lettura non arriva esattamente a 0 o 1023?
La resistenza di contatto agli estremi e la tolleranza di fabbricazione spostano i valori estremi di qualche unità. Lasciare un margine di 5–10 unità nel codice risolve il problema.
Joystick e potenziometro sono la stessa cosa?
Un joystick contiene due potenziometri ad angolo retto e di solito un pulsante. Ogni asse si legge su un proprio ingresso analogico.
Progetti da realizzare dopo questo articolo
Vedi tutti i progetti
Funzionamento del servomotore con potenziometro
Progetto che controlla il servomotore in tempo reale convertendo il valore del potenziometro nell'intervallo 0-180°. insegna la funzione map() e l'integrazione analogico-servo.

SG90 Servocomando angolare con potenziometro
Controllo del servomotore (SG90) con il potenziometro L'obiettivo principale di questo progetto è controllare con precisione la posizione angolare di un servomotore in tempo reale utilizzando un'unità di ingresso analogica, il potenziometro. Il progetto è un esempio di ingegneria di base per comprendere la logica della conversione analogico-digitale (ADC) e la mappatura dei segnali. Logica di funzionamento: Lettura dei dati analogici: Quando l'utente ruota il potenziometro, un segnale di tensio

Luminosità di un LED con Potenziometro su ESP32 (Analogico → PWM)
In questo progetto controlliamo in modo analogico la luminosità di un LED tramite un potenziometro. Il pin ADC dell'ESP32 legge la tensione tra 0 e 3,3 V dal potenziometro; il valore viene convertito in un segnale PWM (Pulse Width Modulation) e inviato al LED. Ruotando il potenziometro, il LED si accende e si spegne gradualmente. Con Arduino Core 3.0+ si usa direttamente `analogWrite()`; su ESP32-S2/S3 la risoluzione dell'ADC è fissata a 12 bit.

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

Velocità regolabile Black Lightning Led
Progetto con potenziometro in grado di regolare in tempo reale la velocità dell'animazione LED del fulmine nero. Combina ingresso analogico e controllo bidirezionale ad anello.

Controllo a led con joystick
Progetto di controllo che illumina i LED in 4 direzioni diverse in base ai valori degli assi X e Y del modulo joystick. Insegna la lettura analogica del joystick e la logica di rilevamento della direz

Lampada con miscelatore di colori ESP32 (3 potenziometri + LED RGB + OLED)
Una lampada mista colori intelligente che, ruotando i 3 potenziometri con l'ESP32, permette di miscelare il colore desiderato! Man mano che si ruotano i potenziometri rosso, verde e blu, il LED RGB a catodo comune cambia colore istantaneamente. Sul display OLED SSD1306 vengono visualizzati in tempo reale i valori compresi tra 0 e 255 per ogni colore, le barre di riempimento visive e il codice colore HEX (#FF8040, ad esempio). Un mini studio di colore professionale: insegna la teoria dei colori R

Voltmetro digitale con display LCD
Progetto di voltmetro digitale che mostra il risultato sullo schermo LCD I2C misurando la tensione nell'intervallo 0-55V con un circuito divisore di tensione. Insegna la formula del partitore di tensi
Altri articoli
Scopri come un potenziometro cambia valore quando lo ruoti, come collegarlo ad Arduino e come usare il valore analogico per controllare un LED, un servo o il volume.

