Video 6 - Arduino potenziometro che regola la luminosità di un LED | Prof. Giagnotti
🎥 VIDEO 6 · ARDUINO · POTENZIOMETRO + PWM + ANALOGICO
✍ Autore: profgiagnotti

Video 6 - Arduino potenziometro che regola la luminosità di un LED

Primo input analogico: potenziometro come partitore di tensione, analogRead(), analogWrite() PWM e map() per dimmerazione.

Video 6 Arduino Potenziometro PWM analogWrite ~27 min di video 📑 Stampa → ▶ YouTube Aggiornata 2025/26

2. Di cosa parla questo video

In questo tutorial ti guiderò nella realizzazione di un progetto con Arduino attraverso l'ambiente di lavoro di Tinkercad, facciamo funzionare un potenziometro che regola la luminosità di un LED, introducendo il primo sensore analogico e il concetto di partitore di tensione e PWM.

Passiamo da digitale (HIGH/LOW) ad analogico (0-1023). Componenti: potenziometro 10kΩ lineare, LED rosso + 220Ω, Arduino Uno. Cablaggio potenziometro: pin 1 → 5V, pin 2 centrale → A0, pin 3 → GND → partitore di tensione: ruotando varia tensione su A0 da 0V a 5V. Codice: int val = analogRead(A0); // 0-1023, int pwm = map(val, 0, 1023, 0, 255); // converte 0-1023 a 0-255, analogWrite(9, pwm); // PWM su pin 9 ~. Pin PWM Arduino Uno: 3,5,6,9,10,11 con ~. LED dimmerabile da spento a massima luminosità ruotando potenziometro. Serial per vedere val e pwm.

💬 Nota del docente - Perché ho fatto questo video

Questo è il video che apre il mondo analogico. Nel video al minuto 7 mostro l'errore che fa impazzire: collegate potenziometro centrale a pin digitale 2 invece di A0, così analogRead non funziona e LED sempre spento. A0-A5 sono analogici, non digitali. Al minuto 12 mostro perché pin 9 e non pin 8: analogWrite funziona solo su pin PWM con ~ (3,5,6,9,10,11), su pin 8 non funziona PWM, LED solo ON/OFF non dimmerabile. E al minuto 18 mostro map(): senza map, se fate analogWrite(A0) direttamente con 0-1023, superate 255 e LED sempre al massimo. Map converte 0-1023 → 0-255. E al minuto 21 mostro partitore: se collegate 5V e GND invertiti, potenziometro funziona al contrario, rotazione oraria spegne invece di accendere.

3. Obiettivi di apprendimento

  • ✅ Funzionamento del potenziometro come resistenza variabile
  • ✅ Concetto di partitore di tensione 0-5V su A0
  • ✅ Creazione e simulazione del tuo sesto circuito Arduino con PWM
🎯 Cosa saprai fare dopo questo video

Alla fine saprai cablare potenziometro 10kΩ come partitore 5V-A0-GND, leggere valore analogico 0-1023 con analogRead, convertire con map a 0-255 PWM, scrivere su pin PWM con analogWrite per dimmerare LED, usare Serial Monitor per vedere val analogico e pwm, e capire differenza digitale 0/1 vs analogico continuo 0-1023.

4. Perché analogico - Da digitale a continuo

Video 1-5 solo digitale HIGH/LOW. Video 6 analogico continuo:

Digitale (Video 1-5)Analogico (questo video)
HIGH/LOW, 0V/5V, 2 valori0-1023, 0V-5V, 1024 valori continui
digitalRead, digitalWriteanalogRead(A0), analogWrite(pin PWM, 0-255)
Pulsante ON/OFFPotenziometro dimmer 0-100%
LED ON/OFFLED dimmerabile da spento a massimo
Pin digitali 2-13Pin analogici A0-A5 per lettura, pin PWM ~ per scrittura
No map necessariamap(val,0,1023,0,255) per conversione ADC→PWM
🎯 Domanda da colloquio / esame

Se vi chiedono "Come funziona potenziometro con Arduino?", rispondete: "Potenziometro 10kΩ lineare 3 pin: estremi a 5V e GND, centrale a A0. È partitore di tensione: Vout = Vin * (R2/(R1+R2)), ruotando varia R1/R2 e Vout 0-5V. Arduino ADC 10 bit legge 0-1023 su A0 con analogRead, 0=0V 1023=5V. Per dimmerare LED serve PWM su pin con ~ 3,5,6,9,10,11: analogWrite(pin, 0-255) 0 spento 255 max, uso map(val,0,1023,0,255) per convertire ADC a PWM. Così rotazione potenziometro regola luminosità 0-100%". Risposta da elettronico.

5. Concetti chiave - Partitore, analogRead, PWM, map

Cuore del video, minuto 6-17:

POTENZIOMETRO - CONCETTI CHIAVE
Potenziometro 10kΩ lineare: 3 pin: 1 - 5V, 2 centrale - cursore - A0, 3 - GND (o invertito) Resistenza totale 10kΩ tra 1-3, cursore divide in R1 (1-2) e R2 (2-3) Partitore: Vout = 5V * R2/(R1+R2), ruotando varia R1/R2 → Vout 0-5V Potenza: P = V^2/R = 25/10000 = 2.5mW sicuro Analogico vs Digitale: Digitale: 2 stati HIGH 5V LOW 0V → digitalRead → 0/1 Analogico: infiniti valori 0-5V → analogRead → 0-1023 (ADC 10 bit, 2^10=1024) ADC Arduino Uno: 10 bit, 0-1023, riferimento 5V default, risoluzione 5V/1024=4.88mV analogRead(A0) → legge tensione su A0: 0V→0, 2.5V→512, 5V→1023 Pin A0-A5 solo input analogico PWM (Pulse Width Modulation): Simula analogico su digitale: onda quadra 0-5V con duty cycle variabile analogWrite(pin PWM, 0-255): 0 sempre LOW 0%, 127 50% 2.5V medio, 255 sempre HIGH 100% Pin PWM Uno: 3,5,6,9,10,11 con simbolo ~, frequenza ~490Hz (980Hz su 5,6) LED dimmerato: duty basso = luce bassa, duty alto = luce alta, occhio media map(): map(valore, daMin, daMax, aMin, aMax) → converte range map(val, 0, 1023, 0, 255) → ADC 0-1023 a PWM 0-255 map(val, 0, 1023, 0, 180) → ADC a servo 0-180 gradi Cablaggio: Pot: 5V → pin1, A0 → pin2 centrale, GND → pin3 LED: pin 9 (PWM ~) → 220Ω → anodo → catodo → GND
DIGITALE (VIDEO 1-5)
2 valori HIGH/LOW, digitalRead/Write, pulsante ON/OFF, LED ON/OFF, pin digitali, senza conversione.
ANALOGICO (QUESTO VIDEO)
1024 valori 0-1023, analogRead su A0, analogWrite PWM 0-255 su pin ~, potenziometro dimmer continuo, map per conversione.

6. Lab in Tinkercad - Circuito dimmer

Nel video (minuto 3-22):

  • Setup: Nuovo circuito "Video6 Potenziometro LED" → Arduino Uno + breadboard + potenziometro 10kΩ + LED rosso + resistenza 220Ω
  • Cablaggio: Potenziometro: pin sinistro → cavo rosso → Arduino 5V, pin centrale → cavo giallo → Arduino A0, pin destro → cavo nero → Arduino GND. LED: Arduino pin 9 (PWM ~) → cavo verde → breadboard → resistenza 220Ω → anodo LED → catodo → GND bus → Arduino GND. Attenzione: pin 9 con ~ per PWM, non pin 8
  • Codice dimmer: const pot=A0 led=9, setup pinMode led OUTPUT Serial 9600, loop val=analogRead pot 0-1023, pwm=map val 0-1023 0-255, analogWrite led pwm, Serial print val e pwm, delay 50
  • Simulazione: Start → ruota potenziometro in Tinkercad (clic e trascina manopola) → LED da spento a massimo progressivo → Serial Monitor mostra val 0→1023 e pwm 0→255 → ruota indietro LED si spegne
  • Varianti: map a 0-100 per percentuale, 2 LED con 2 potenziometri, LED RGB con 3 PWM, buzzer con frequenza da potenziometro
ARDUINO - POTENZIOMETRO REGOLA LUMINOSITÀ LED
// Video 6 - Potenziometro che regola luminosità LED // Potenziometro: 5V -> pin1, A0 -> pin centrale, GND -> pin3 // LED: Pin 9 (PWM ~) -> 220Ω -> LED -> GND const int potPin = A0; // Potenziometro su A0 analogico const int ledPin = 9; // LED su pin 9 PWM con ~ (3,5,6,9,10,11) void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); Serial.println("Potenziometro -> Luminosità LED"); } void loop() { // Leggi potenziometro 0-1023 (ADC 10 bit) int valPot = analogRead(potPin); // 0 = 0V, 1023 = 5V // Converti 0-1023 a 0-255 per PWM int pwm = map(valPot, 0, 1023, 0, 255); // Scrivi PWM su LED (0 spento, 255 max) analogWrite(ledPin, pwm); // Debug su Serial Monitor Serial.print("Pot: "); Serial.print(valPot); Serial.print(" -> PWM: "); Serial.println(pwm); delay(50); // Stabilità } // Variante con percentuale /* int percentuale = map(valPot, 0, 1023, 0, 100); Serial.print(percentuale); Serial.println("%"); */ // Variante senza map (divisione) /* int pwm = valPot / 4; // 1023/4 = 255, equivalente a map 0-1023->0-255 */ // Variante con soglia (LED ON solo oltre metà) /* if (valPot > 512) { analogWrite(ledPin, 255); } else { analogWrite(ledPin, 0); } */
🔧 Potenziometro cheat sheet

Potenziometro 10kΩ: 5V pin1, A0 pin centrale, GND pin3, partitore 0-5V. ADC 10 bit 0-1023 su A0 con analogRead. PWM solo su pin con ~ 3,5,6,9,10,11, analogWrite 0-255. Map: map(val,0,1023,0,255) converte ADC→PWM, o val/4. LED dimmerabile: ruota pot → val 0-1023 → pwm 0-255 → luminosità 0-100%. Serial per debug. Nel video al minuto 20 mostro oscilloscopio con PWM duty 25% 50% 75% e LED luminosità corrispondente.

7. Errori comuni da evitare

  • Potenziometro su pin digitale: centrale a pin 2 invece di A0 → analogRead(2) legge digitale 2 non analogico, val sempre 0/1023 casuale. Sempre A0-A5 per analogRead.
  • LED su pin non PWM: LED su pin 8 con analogWrite → pin 8 non ha ~, analogWrite fa solo HIGH/LOW non PWM, LED solo ON/OFF non dimmerabile. Usa pin 9,10,11,3,5,6 con ~.
  • Map dimenticata: analogWrite(led, valPot) con valPot 0-1023 → oltre 255 sempre HIGH, LED sempre al massimo, no dimmer. Sempre map 0-1023→0-255 o val/4.
  • Potenziometro senza 5V/GND: colleghi solo centrale ad A0 senza 5V e GND su estremi → pin flottante, val casuale, LED sfarfalla. Sempre 5V e GND su estremi potenziometro.
  • 5V e GND invertiti: 5V su pin destro e GND su sinistro → potenziometro funziona al contrario, orario spegne. Non grave ma confonde, standard sinistro 5V destro GND (o viceversa coerente).
  • Resistenza LED dimenticata: LED su pin 9 senza 220Ω → come Video 1 brucia. Sempre 220Ω in serie anche con PWM.
  • AnalogRead su pin PWM: analogRead(9) invece di analogRead(A0) → legge pin 9 digitale non A0, val errato. analogRead solo su A0-A5, analogWrite solo su pin ~.
⚠️ Errore che blocca dimmer al 100%

Potenziometro senza alimentazione + LED su pin non PWM + map dimenticata. Sintomo: ruoti potenziometro LED resta spento o sempre acceso al massimo, Serial val 0 o casuale, analogWrite non dimmera, potenziometro non risponde. Soluzione: potenziometro 3 fili 5V centrale A0 GND, LED su pin 9 con ~ + 220Ω, codice val=analogRead(A0) 0-1023, pwm=map(val,0,1023,0,255), analogWrite(9,pwm). Verifica con multimetro Tinkercad su centrale 0-5V variando manopola. Nel video al minuto 7 mostro potenziometro flottante senza 5V/GND con val casuale.

8. Approfondimento: ADC e PWM

Due concetti fondamentali per sensori analogici:

ADC analogRead(A0)PWM analogWrite(9,0-255)
Ingresso: legge tensione 0-5V → 0-1023Uscita: simula tensione 0-5V con duty 0-100%
10 bit, 1024 livelli, 4.88mV risoluzione8 bit, 256 livelli, duty 0-255
Pin A0-A5 solo inputPin 3,5,6,9,10,11 con ~ solo output PWM
Pot, fotoresistenza, sensori analogiciLED dimmer, motori DC velocità, servo (con libreria)
analogRead(A0) → 0-1023analogWrite(9, 0-255) → 0-5V medio
Lettura lenta ~100µsFrequenza ~490Hz, occhio media luminosità

Prossimo video: Fotoresistenza e tre LED - sensore luce reale.

📚 Compito per casa

Crea su Tinkercad circuito Video 6 dimmer: Arduino Uno, breadboard, potenziometro 10kΩ, LED rosso + 220Ω. Cablaggio: pot pin1 → 5V, pin centrale → A0, pin3 → GND, LED pin 9 (PWM ~) → 220Ω → anodo → catodo → GND bus. Codice con const pot=A0 led=9, setup pinMode OUTPUT, loop val=analogRead(A0) 0-1023, pwm=map(val,0,1023,0,255), analogWrite(led,pwm), Serial val e pwm, delay 50. Simula: ruota potenziometro LED da spento a max progressivo, Serial 0-1023 → 0-255. Prova varianti: map a percentuale 0-100, LED su pin 10, 2 LED con 2 pot, soglia if val>512 ON else OFF. Screenshot LED media luminosità + Serial Monitor val/pwm + codice. Mandamelo prima del Video 7 fotoresistenza.

9. Risorse correlate