In questo progetto, creerai un interruttore dimmer aggiungendo un potenziometro per controllare la luminosità di un LED.
Componenti necessari
- Scheda Arduino
- Breadboard
- Cavi jumper
- LED
- Potenziometro da 50k ohm
- Resistenza da 470 ohm
Cos’è un potenziometro?
Un potenziometro è una resistenza variabile con una manopola che permette di modificare la resistenza ruotandolo. Viene comunemente usato in dispositivi elettrici come i controlli del volume negli impianti audio. Questo progetto utilizza un potenziometro da 50k ohm.
Come funziona
Il potenziometro manipola un segnale analogico continuo, che rappresenta misurazioni fisiche. Gli esseri umani percepiscono il mondo in forma analogica; tutto ciò che vediamo e udiamo è una trasmissione continua di informazioni ai nostri sensi. Questo flusso continuo definisce i dati analogici. I dati digitali, invece, stimano i dati analogici utilizzando solo numeri.
Per approssimare il dato analogico continuo dal potenziometro, l’Arduino deve rappresentare il segnale come una serie di numeri discreti, in questo caso tensioni. Il pin centrale del potenziometro invia il segnale a un ingresso analogico di Arduino (uno qualsiasi tra A0 e A5) per leggere il valore.
Il LED viene in realtà acceso e spento, ma avviene così rapidamente che i nostri occhi compensano e percepiscono un LED acceso in modo continuo con livelli di luminosità variabili. Questo fenomeno è noto come persistenza della visione.
Per creare questo effetto, Arduino utilizza una tecnica chiamata modulazione di larghezza d’impulso (PWM, Pulse Width Modulation). Arduino genera un impulso alternando rapidamente accensione e spegnimento dell’alimentazione. La durata dell’accensione o dello spegnimento (nota come larghezza d’impulso) nel ciclo determina l’uscita media, e variando questa larghezza d’impulso si possono simulare tensioni comprese tra acceso completamente (5V) e spento (0V).
Ad esempio:
- Se il segnale è attivo per il 50% del tempo e inattivo per il restante 50%, l’uscita media sarà di 2,5V (metà tra 0V e 5V).
- Se il segnale è attivo per l’80% e inattivo per il 20%, la tensione media sarà 4V.
- Se il segnale è attivo per il 20% e inattivo per l’80%, la tensione media sarà 1V.
Ruotando il potenziometro, puoi modificare il segnale e quindi la larghezza dell’impulso, regolando la tensione inviata al LED e cambiandone la luminosità.
⚠️ Solo i pin 3, 5, 6, 9, 10 e 11 di Arduino possono usare il PWM.
Costruzione del circuito
-
Collegare il potenziometro alla breadboard:
- Inserisci il potenziometro nella breadboard.
- Collega il pin centrale al pin A0 di Arduino.
- Collega uno dei pin esterni al +5V della breadboard.
- Collega l’altro pin esterno a GND della breadboard.
📌 Nota: Non importa quale dei due pin esterni va a 5V o GND, funzionerà comunque.
-
Collegare il LED:
- Inserisci il LED nella breadboard.
- Collega la gamba positiva (più lunga) al pin 9 di Arduino attraverso una resistenza da 470 ohm.
- Collega la gamba negativa del LED a GND.
-
Caricare il codice su Arduino:
- Copia e incolla il codice nella scheda Arduino.
- Caricalo sulla scheda.
- Ruota il potenziometro per controllare la luminosità del LED.
Il codice (Sketch)
Questo codice imposta il pin A0 per leggere il valore del potenziometro e il pin 9 come uscita per il LED. Nel loop, legge costantemente il valore del potenziometro e invia quel valore come tensione al LED, regolando la luminosità tramite PWM.
int potPin = A0; // Pin analogico collegato al potenziometro
int potValue = 0; // Valore letto dal potenziometro
int led = 9; // Pin 9 (collegato al LED), abilitato per PWM
void setup() {
pinMode(led, OUTPUT); // Imposta il pin 9 come uscita
}
void loop() {
potValue = analogRead(potPin); // Legge il valore del potenziometro da A0
analogWrite(led, potValue / 4); // Regola la luminosità del LED con PWM
delay(10); // Attende 10 ms
}
Come funziona il codice?
analogRead(potPin);
→ Legge il valore analogico del potenziometro (tra 0 e 1023).analogWrite(led, potValue / 4);
→ La funzioneanalogWrite()
accetta valori da 0 a 255. PoichéanalogRead()
restituisce valori tra 0 e 1023, viene diviso per 4 per adattarlo all’intervallo corretto.delay(10);
→ Una breve pausa per evitare aggiornamenti troppo rapidi.
Risultati e utilizzi
- Ruotando il potenziometro, la luminosità del LED cambierà gradualmente.
- Puoi usare questo circuito per realizzare una torcia regolabile, una luce da comodino, un’illuminazione per espositori o altre applicazioni con illuminazione dimmerabile.