Nel mondo dell’elettronica e della programmazione, piccoli componenti e funzioni possono aprire la porta a progetti incredibilmente creativi e personalizzabili.
Oggi, esploreremo come un semplice potenziometro, insieme a concetti fondamentali come analogRead()
, analogWrite()
, e la funzione map()
, può essere utilizzato per creare un LED dimmerabile con Arduino. Questo progetto non solo ti introdurrà ai principi di base dell’elettronica ma ti darà anche il controllo sulla luminosità di un LED – un primo passo perfetto nel mondo dell’IoT e dei dispositivi smart.
Che Cos’è un Potenziometro?
Un potenziometro è un tipo di resistore variabile utilizzato per regolare livelli di tensione. Agendo come una divisione di tensione regolabile, permette all’utente di variare la resistenza girando un perno o uno slider, modificando così la quantità di corrente che può passare attraverso. Nei nostri progetti Arduino, i potenziometri trovano ampio uso per controllare vari elementi, come la luminosità di un LED o la velocità di un motore.
Lettura dei Dati con analogRead()
Arduino possiede pin analogici capaci di leggere i livelli di tensione da 0 a 5V e trasformarli in valori digitali compresi tra 0 e 1023. Utilizzando la funzione analogRead()
, possiamo leggere il valore corrente di tensione attraverso il potenziometro. Questo ci permette di interpretare fisicamente l’azione di girare il perno del potenziometro in dati che Arduino può usare.
Controllare la Luminosità con analogWrite()
La funzione analogWrite()
è ciò che ci permette di inviare un segnale PWM (Pulse Width Modulation) a un LED, controllandone la luminosità. Anche se il termine “analogico” potrebbe trarre in inganno, analogWrite()
non produce un vero output analogico; piuttosto, modula la larghezza di impulsi digitali per simulare una variazione continua di tensione. Questo può essere sfruttato per dimmerare un LED, facendolo apparire più luminoso o più spento a seconda della durata degli impulsi.
La Magia della Funzione map()
Uno dei trucchi più utili nella programmazione Arduino è la funzione map()
, che consente di prendere un range di valori e mapparlo su un altro. Quando leggiamo i dati dal potenziometro con analogRead()
, otteniamo valori da 0 a 1023. Tuttavia, analogWrite()
lavora con valori da 0 a 255 per la modulazione PWM. La funzione map()
ci permette di convertire facilmente il range da 0-1023 a 0-255, rendendo il valore letto dal potenziometro direttamente utilizzabile per controllare la luminosità del LED.
Costruire il Progetto: LED Dimmerabile
Ora che abbiamo compreso i componenti chiave, combiniamoli per creare il nostro LED dimmerabile:
- Collegare il Potenziometro: Connetti due estremità del potenziometro a 5V e GND. Il terminale centrale va collegato a un pin analogico (A0).
- Collegare il LED: Attacca il catodo del LED (lato più corto) a GND attraverso una resistenza da 220Ω. Collega l’anodo (lato lungo) a un pin capace di PWM (es. pin 9).
- Scrivere lo Sketch: Utilizza
analogRead()
per leggere il valore del potenziometro, usamap()
per convertire questo valore nel range desiderato, e infineanalogWrite()
per impostare la luminosità del LED.