Ciao a tutti! Dopo il precedente articolo, oggi vi spiegherò un altro interessante progetto da realizzare con Arduino: modificare la frequenza di lampeggiamento di un LED e potenziometro con Arduino. Se siete appena entrati nel vasto mondo di Arduino e ancora non avete ben chiari alcuni concetti, potete consultare una mia apposita guida-introduzione.

LED E POTENZIOMETRO CON ARDUINO – COMPONENTI

Di seguito vi ho elencato tutti i componenti o strumenti utili per completare il nostro progetto:

  • Una scheda Arduino (nel mio caso ho adoperato un Arduino Uno);
  • Un cavo di connessione USB da USB-A a USB-B, per intenderci lo stesso che utilizziamo per collegare la stampante al PC;
  • Compilatore per sketch Arduino (qualora non fosse già presente sul vostro PC potete consultare questo articolo per scaricarlo);
  • Una bread board;
  • Un resistore da 330 ​Ω;
  • Un diodo LED;
  • Potenziometro 10 k​Ω
  • Cavetti di collegamento per bread board;
  • Conoscenze basilari di elettronica.

SKETCH

Per quanto riguarda lo sketch, nulla di particolarmente difficoltoso; di seguito vi metto a disposizione il programma già pronto per l’installazione, con le relative spiegazioni riga per riga.

//LED e potenziometro con Arduino
#define LED 13
void setup()
{
pinMode(LED,OUTPUT);//imposto il LED come output
}
void loop()
{
digitalWrite(LED,HIGH);//LED acceso
delay(analogRead(0));//attende il valore letto dal PIN analogico 0
digitalWrite(LED,LOW);//LED spento
delay(analogRead(0));//attende di nuovo il valore letto dal PIN analogico 0
}

 

 

SPIEGAZIONE SKETCH

La prima funzione nella quale ci imbattiamo è “#define“, alla riga 2; utilizzeremo questa istruzione ogni qual volta avremo bisogno di dichiarare dei dati fissi, che non muteranno durante l’esecuzione del programma. Nel nostro caso abbiamo creato una sola etichetta di nome “LED”; prima della compilazione del programma questa etichetta verrà sostituita con il numero cui le è stato attribuito (es. “LED” verrà sostituito con “13”).

Subito dopo, alla riga 3, troviamo il “void setup()“; con quest’ultimo indichiamo ad Arduino tutte le istruzioni necessarie per l’esecuzione del programma, come la dichiarazione degli input e degli output; a differenza del “void loop()”, che andremo a vedere a breve, il “void setup()” esegue i comandi una volta sola, appena la scheda viene connessa ad una fonte di alimentazione.

Proprio nel “void setup()” viene incorporata un altro tipo d’istruzione, il “pinMode“; nel nostro scketch possiamo individuarla alla riga 5. Questo comando ci viene in aiuto proprio per precisare al programma se abbiamo intenzione di utilizzare un certo pin come input o come output; nel caso nostrano, abbiamo deciso di adoperare il pin 13 come output (nel caso specifico il nostro output sarà un LED).

Arrivati alla riga 7 dello sketch abbiamo il “void loop()“; ad esso si susseguono tutte le informazioni valide per l’esecuzione del programma; questa serie di codici viene eseguita in ordine e, al suo termine, il processo viene ripetuto dall’inizio. Tutto ciò andrà avanti ciclicamente, finchè la scheda Arduino sarà fornita di alimentazione.

Nel void loop osserviamo quindi l’alternarsi di due principali funzioni:

  • digitalWrite“, mediante il quale decidiamo quale stato far assumere all’output (quando esso sarà HIGH sull’uscita troveremo una tensione di 5V, quando sarà LOW, diversamente, la differenza di potenziale in uscita sarà nulla, 0V);
  • delay(analogRead(0)), avente il compito di attendere la lettura del valore letto dal pin analogico 0, ove troviamo l’input del potenziometro.

Come sempre, vi ricordo di prestare particolare attenzione al corretto inserimento di parentesi graffe e punti e virgola nel corso della programmazione; tuttavia, qualsiasi eventuale errore di programmazione verrà individuato nella fase di verifica dal compilatore. Qualora il tutto dovesse essere corretto, dopo la fase di verifica dello sketch, vi apparirà questo messaggio nella parte sottostante della pagina:

E quindi potrete procedere all’installazione del programma su Arduino:

CIRCUITO

Il montaggio del circuito è abbastanza semplice. Prima di tutto preoccupatevi di collegare i pin dei 5V e GND di Arduino sulle apposite file della bread board. Adesso potremo pensare al collegamento del potenziometro; esso possiede 3 “zampette”; quelle esterne andranno collegate rispettivamente a 5V e a GND; quella centrale, invece, la collegheremo su uno degli input analogici di Arduino (nel mio caso A0), in quanto il valore del potenziometro è variabile; per questo motivo la differenza di potenziale d’ingresso in questo pin varierà tra i 0 e 5V, corrispondenti ad un valore letto da Arduino compreso tra 0 e 1023, trattasi quest’ultimo del numero massimo raggiungibile da 10 bit.

Una volta fatto ciò, colleghiamo il nostro diodo LED al digital pin che avete scelto (nel mio programma ho selezionato il pin 13); ricordate di inserire, assieme al LED, un resistore da 330 Ohm per evitare danneggiamenti. Una volta conclusi questi passaggi, collegate il catodo del LED a GND per chiudere il circuito.

Se non sapete come distinguere catodo e anodo potete ricorrere a 2 metodi:

  • Il catodo è la “zampetta” più corta del LED;
  • Qualora le “gambine” del LED fossero state tagliate, potete comunque distinguere l’anodo dal catodo in quanto, quest’ultimo, è il più vicino alla parte piatta dell’involucro del LED.

FUNZIONAMENTO

Qualora sia stata svolta correttamente sia la parte riguardante la programmazione che quella della costruzione del circuito, otterremo queste condizioni:

  • Se impostiamo il potenziometro nel suo valore massimo di resistenza, la variabile avrà il valore di 1023 e il tempo di attesa del dalay sarà pressocchè di un secondo (il LED quindi avrà una frequenza accensione-spegnimento di circa un secondo);
  • Se al contrario portiamo il potenziometro sul suo valore minimo di resistenza, con conseguente variabile posta a 0, il tempo di attesa del delay sarà pressocchè nullo (in questo caso non noteremo nemmeno il lampeggiamento del LED).

Leggi anche Come guadagnare vendendo su Amazon.