Componenti · 3 min di lettura

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.

Potenziometro
Potenziometro rotativo: i due piedini esterni sono gli estremi della resistenza fissa, quello centrale è il cursore mobile.

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

TipoAspettoUtilizzo
Potenziometro rotativoCon albero, 3 piediniVolume, luminosità, velocità
TrimmerPiccolo, si regola con il cacciaviteValori da impostare una volta sola (come il contrasto dell'LCD)
Potenziometro a slittaScorre in linea rettaMixer e pannelli di controllo
JoystickDue potenziometri in unoControllo su due assi (X e Y)
La scritta B10K o B103 indica un potenziometro lineare da 10 kΩ: il valore cambia in proporzione alla rotazione. La lettera A indica un potenziometro logaritmico (audio). Per misure e controllo con Arduino scegli uno lineare (B).

Collegare un potenziometro ad Arduino

  1. Collega un piedino esterno a 5V e l'altro a GND (invertendoli cambia solo il verso).
  2. Collega il piedino centrale a un ingresso analogico, per esempio A0.
  3. Collega un LED con una resistenza da 220 Ω al pin 9, che supporta il PWM.
  4. 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

SchedaRisoluzioneIntervalloFunzione
Arduino Uno / Nano10 bit0–1023analogRead()
ESP3212 bit0–4095analogRead()
Raspberry Pi Pico12 bit (scalato a 16 bit)0–65535ADC.read_u16()
ESP32 e Pico lavorano a 3,3 V: collega il piedino esterno del potenziometro a 3,3 V, non a 5 V. Sull'ESP32, con il Wi-Fi attivo, solo i pin ADC1 (GPIO 32–39) leggono in modo affidabile.

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.

Vedi tutti i progetti
Funzionamento del servomotore con potenziometro
#36Principiante
Premium

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.

4.6(37)
51
SG90 Servocomando angolare con potenziometro
#99Principiante
Premium

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

4.5(24)
38
Luminosità di un LED con Potenziometro su ESP32 (Analogico → PWM)
#115Intermedio
Premium

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.

4.5(19)
32
Led di marcia a velocità regolabile
#7Intermedio

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

4.6(71)
133
Velocità regolabile Black Lightning Led
#8Intermedio

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.

4.5(59)
115
Controllo a led con joystick
#59Intermedio
Premium

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

4.7(50)
66
Lampada con miscelatore di colori ESP32 (3 potenziometri + LED RGB + OLED)
#138Avanzato
Premium

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

4.7(6)
10
Voltmetro digitale con display LCD
#56Intermedio
Premium

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

4.5(27)
36

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.