CORSO BASE LEZIONE 4
INDICE
- Avvertenze
- Note sul Copyright
- I LED RGB
- Progetto 12 – LED RGB con Arduino
- CURIOSITA’: Le stelle brillano e cambiano colore
- Progetto 13 – La luce delle stelle
- Analisi dello sketch: La luce delle stelle
- Progetto 14 – La luce delle stelle 2
- Il Tilt Sensor o anche chiamato Ball Tilt Sensor
- Progetto 15 – Realizzare un Clessidra elettronica
- Analisi dello Sketch: La Clessidra elettronica
Avvertenze
Relativamente agli aspetti di sicurezza, poiché i progetti sono basati su alimentazione elettrica in bassissima tensione erogata dalla porta usb del pc o da batterie di supporto o alimentatori con al massimo 9V in uscita, non ci sono particolari rischi di natura elettrica. È comunque doveroso precisare che eventuali cortocircuiti causati in fase di esercitazione potrebbero produrre danni al pc, agli arredi ed in casi estremi anche a ustioni, per tale ragione ogni qual volta si assembla un circuito, o si fanno modifiche su di esso, occorrerà farlo in assenza di alimentazione e al termine dell’esercitazione occorrerà provvedere alla disalimentazione del circuito rimuovendo sia il cavo usb di collegamento al pc che eventuali batterie dai preposti vani o connettori di alimentazione esterna. Inoltre, sempre per ragioni di sicurezza, è fortemente consigliato eseguire i progetti su tappeti isolanti e resistenti al calore acquistabili in un qualsiasi negozio di elettronica o anche sui siti web specializzati.
Al termine delle esercitazioni è opportuno lavarsi le mani, in quanto i componenti elettronici potrebbero avere residui di lavorazione che potrebbero arrecare danno se ingeriti o se a contatto con occhi, bocca, pelle, etc. Sebbene i singoli progetti siano stati testati e sicuri, chi decide di seguire quanto riportato nel presente documento, si assume la piena responsabilità di quanto potrebbe accadere nell’esecuzione delle esercitazioni previste nello stesso. Per i ragazzi più giovani e/o alle prime esperienze nel campo dell’Elettronica, si consiglia di eseguire le esercitazioni con l’aiuto ed in presenza di un adulto.
Note sul Copyright
Tutti i marchi riportati appartengono ai legittimi proprietari; marchi di terzi, nomi di prodotti, nomi commerciali, nomi corporativi e società citati possono essere marchi di proprietà dei rispettivi titolari o marchi registrati d’altre società e sono stati utilizzati a puro scopo esplicativo ed a beneficio del possessore, senza alcun fine di violazione dei diritti di Copyright vigenti. Quanto riportato in questo documento è di proprietà di Roberto Francavilla, ad esso sono applicabili le leggi italiane ed europee in materia di diritto d’autore – eventuali testi prelevati da altre fonti sono anch’essi protetti dai Diritti di Autore e di proprietà dei rispettivi Proprietari. Tutte le informazioni ed i contenuti (testi, grafica ed immagini, etc.) riportate sono, al meglio della mia conoscenza, di pubblico dominio. Se, involontariamente, è stato pubblicato materiale soggetto a copyright o in violazione alla legge si prega di comunicarlo tramite email a info@bemaker.org e provvederò tempestivamente a rimuoverlo.
Roberto Francavilla
I LED RGB
Abbiamo visto nella lezione n. 1 che il LED è costituito da un particolare materiale semiconduttore che attraversato da corrente emette luce. Si chiama semiconduttore perché conduce e quindi emette luce solo se la tensione viene applicata in modo corretto, ovvero l’anodo (il terminale più lungo) deve essere collegato alla tensione positiva, mentre il catodo (il terminale più corto) viene collegato a massa.
La parte semiconduttore occupa meno di un millimetro, per cui quello che noi vediamo è la parte esterna della lente che diffonde la luce. Abbiamo visto che i LED possono essere di diversi colori, il LED RGB è composto in sostanza da tre LED, per cui emette tre differenti lunghezze di onda di luce, una rossa, una verde ed una blu (da cui la sigla RGB: Red, Green e Blue).
L’emissione di luce con una frequenza d’onda diversa dipende dal tipo di sostanza utilizzata come semiconduttore nel LED. Nella tabella sopra sono riportate, in funzione del colore del LED, le sostanze utilizzate, la lunghezza d’onda ed anche la tensione di soglia che rappresenta anche la massima tensione applicabile al LED altrimenti lo stesso si rovina oppure si può anche bruciare.
Per tale ragione, come detto nel Modulo Be Maker 01, il LED va protetto e grazie alla tabella sopra possiamo anche calcolare quale è il valore di resistenza più opportuna da utilizzare. Infatti si può osservare che la tensione di soglia è generalmente, per i vari LED, di circa 2 V. Considerando che la massima corrente per un LED è di circa 15 mA, cioè 0,015 A, applicando la Legge di Ohm:
Una volta calcolato il valore, occorre prendere il valore di resistenza “commerciale” più vicino a al valore calcolato. I valori commerciali sono i valori di resistenza standard che noi possiamo trovare in commercio che sono riepilogati (quelli principali) nella tabella sotto:
Il LED RGB può avere diversi aspetti: come un LED normale da 5 mm, con quattro terminali, oppure in strisce del tipo SMD (con quattro cavi), o ancora montato su una basetta (modulo RGB) con quattro PIN.
I tre colori principali mescolati, in intensità diversa tra loro, producono praticamente infinite combinazioni di colori:
Ci sono due tipi di LED RGB, uno è con CATODO COMUNE (negativo comune che viene collegato al GND) e l’altro è con ANODO COMUNE (positivo comune e quindi si collega a 5V).
Nel tipo anodo comune (+), ci saranno tre terminali negativi ognuno rappresenta il singolo colore della luce emessa, nel tipo a catodo comune (-), ci saranno i tre terminali positivi ed ognuno di essi rappresenta il singolo colore di luce. In serie ad ogni LED (e quindi ad ogni terminale ad esclusione dell’anodo comune o del catodo comune) viene inserita una resistenza che consentirà di regolare la corrente circolante nel diodo, per cui occorreranno tre resistenze da 220 Ohm (cerchi di colore rosso, rosso, marrone).
Il circuito interno di un LED RGB può essere rappresentato come di seguito.
Lo schema elettrico con le tre resistenze di protezione è invece:
Progetto 12 – LED RGB con Arduino
Per questo progetto ci occorre:
Lo schema elettrico è:
Per il montaggio seguire invece lo schema sotto:
Una volta montato il circuito, lo sketch da scrivere e caricare su Arduino è:
Una volta scritto il codice lanciate la precompilazione di verifica (segno di spunta), vi chiederà di salvare lo sketch (potete cambiargli il nome) e poi cliccate sulla freccia per il caricamento e sulla lente per il Monitor seriale:
Una volta caricato lo sketch su Arduino e aperto il monitor seriale, il LED RGB mostra le combinazioni di colori R-G-B secondo i valori rappresentati sul monitor.
Video-Progetto 12 – LED RGB con Arduino
CURIOSITA’: Le stelle brillano e cambiano colore
Le stelle “brillano” e cambiano colore perché è un fenomeno che dipende dal fatto che la luce delle stelle, prima di raggiungere i tuoi occhi, deve attraversare l’atmosfera.
L’atmosfera è formata da tante cellette di aria. Ogni celletta si muove di moto casuale, salendo o scendendo a causa della convezione termica: si chiama turbolenza atmosferica.
Quando la luce della stella attraversa queste cellette di aria, il percorso dei suoi raggi viene deviato in maniera casuale e questo fa sì che tu veda la stella apparentemente lampeggiare e, talvolta, cambiare colore.
Più la stella è bassa sull’orizzonte o più è luminosa e più intenso è il fenomeno.
Ovviamente se osservassimo il cielo stellato dalla Luna, poiché sulla Luna non c’è l’atmosfera, questo fenomeno ottico non ci sarebbe.
Progetto 13 – La luce delle stelle
Per questo progetto abbiamo bisogno di:
Lo schema elettrico è il seguente :
Per il montaggio seguire lo schema sotto:
Dopo i collegamenti passiamo a scrivere lo sketch.
Collegare Arduino al PC tramite il cavo USB e lanciare l’applicativo dell’IDE di Arduino cliccando due volte sulla relativa icona.
Si apre una finestra vuota, oppure occorre aprirne una nuova vuota e scriviamo lo sketch sotto riportato:
Una volta scritto il codice lanciate la precompilazione di verifica (cliccate su il segno di spunta), vi chiederà di salvare lo sketch (potete cambiargli il nome) e poi cliccate sulla freccia per il caricamento e sulla lente per il Monitor seriale:
Una volta avviato lo sketch ed aperto il monitor seriale, potete vedere a schermo quale colore del LED RGB è attivo ed il relativo valore dell’intensità, a questo punto agendo sul potenziometro modificherete il colore del LED RGB perché state modificando l’intensità del colore attivo.
Per cambiare il colore attivo e quindi il colore da modificare, potete premere il pulsante, sempre a schermo vi sarà indicato il nuovo colore attivo e così via.
In questo modo potete mescolare i tre colori RGB a piacimento ed ottenere il colore desiderato simulando il cambiamento del colore delle stelle.
Video-Progetto 13 – La luce delle stelle
Analisi dello sketch: La luce delle stelle
In questo sketch ci sono tante cose nuove ed interessanti da imparare, partiamo da quella più semplice:
Uso dell’ “INPUT_PULLUP”; come potete vedere nel void setup è stato settato il pin digitale di ingresso che controlla se è stato premuto o meno il pulsante, come INPUT_PULLUP. Tale dichiarazione consente ad Arduino di predisporsi per ricevere un segnale poco stabile come quello proveniente dal premere un pulsante. Quindi Arduino cercherà di stabilizzare il segnale in ingresso.
Uso della struttura di controllo switch(..) ….. case … ; in uno dei progetti precedenti avevamo visto l’uso della struttura degli if “annidati”, ma avevo anche detto che questa modalità di far prendere delle decisioni all’elaboratore, non era molto suggerita specialmente quando i casi da esaminare sono tanti. L’uso dello switch…case… semplifica la struttura, infatti basta definire per ogni singolo caso cosa fare e poi la selezione del caso la facciamo fare direttamente allo funzione switch.. La sintassi generale della struttura di controllo è:
switch (var) {
case label1:
// statements
break;
case label2:
// statements
break;
default:
// statements
break;
}
dove var è una variabile di tipo int oppure char ed indica il numero del “caso” che si desidera elaborare, mentre label1 è l’etichetta, anch’essa una variabile di tipo int oppure char. Nell’esempio di sintassi ci sono solo tre casi di cui uno di default. L’ultimo caso, quello di default viene selezionato quando non si ha nessuno dei casi precedenti. La struttura può avere anche un numero superiore a quelli rappresentati, di casi.
Uso della chiamata di una “procedura” esterna; nello sketch potete osservare che nel void seup, nella parte finale, c’è: “ intensita_colore(colore); “ in questo modo noi andiamo a chiamare una procedura esterna al void setup che esegue un particolare processo.
Come potete vedere la procedura esterna è stata definita con il “void” inoltre poiché nella procedura c’è la struttura di controllo switch…case… alla stessa procedura, tramite la sua chiamata, gli stiamo passando anche un parametro (messo tra parentesi tonde) che utilizzerà nel suo processo.
Infatti, la procedura è chiamata mettendo nome_procedura(eventuale_parametro); , la definizione della procedura è:
void nome_proceduta(int eventuale_parametro) { processo}
Progetto 14 – La luce delle stelle 2
Questo progetto è la naturale prosecuzione del precedente, infatti con questo progetto desidero evidenziare visivamente, anziché riportandolo sul monitor seriale, qual è il colore su cui stiamo agendo con la regolazione del potenziometro. E questo lo si può fare integrando al progetto precedente tre LED con le relative resistenze di protezione. Per questo progetto, quindi, ci occorre:
Lo schema elettrico è il seguente:
Per il montaggio seguire lo schema sotto :
Dopo i collegamenti passiamo a scrivere lo sketch.
Collegare Arduino al PC tramite il cavo USB e lanciare l’applicativo dell’IDE di Arduino cliccando due volte sulla relativa icona.
Si apre una finestra vuota, oppure occorre aprirne una nuova vuota e scriviamo lo sketch sotto riportato:
Una volta avviato lo sketch oltre all’accensione del LED RGB, si accenderà anche il LED di cui è possibile modificarne l’intensità tramite il potenziometro. Premendo sul pulsante è possibile cambiare il colore attivo modificabile e questo sarà rappresentato dal relativo LED colorato.
Video-Progetto 14 – La luce delle stelle 2
Il Tilt Sensor o anche chiamato Ball Tilt Sensor
Questo sensore è possibile trovarlo in commercio come semplice sensore o anche a modulo preassemblato. Il principio di funzionamento è lo stesso ed è sostanzialmente un segnale digitale che ci dice se il sensore è intervenuto o meno.
Il principio di funzionamento è rappresentato dalla immagine GIF animata che ho realizzato:
all’interno di un involocro ci sono due piastrine terminali ed una sfera in metallo, quando l’involucro, che ha la forma cilindrica viene mosso, la sfera tocca le due piastrine e chiude il contatto elettrico tra i terminali.
In sostanza si comporta come un pulsante, soltando che la chiusura del contatto avviene perché la sfera rotola all’interno del cilindro.
Posizionando opportunamente i terminali e dimensionando l’involucro, è possibile scegliere anche con che grado di inclinazione minimo la sfera mette in contatto i due terminali. Nel progetto che segue ne vediamo una applicazione e come collegarlo ad Arduino.
Progetto 15 – Realizzare un Clessidra elettronica.
Per questo progetto ci occorre:
Lo schema elettrico è il seguente:
Per il montaggio seguire lo schema sotto :
Attenzione nel posizionare il tilt sensor, occorre posizionarlo in modo tale che nella posizione iniziale provochi contatto e ruotandolo di 180° invece no, altrimenti non si ottiene l’effetto desiderato.
A questo punto clicchiamo due volte sull’icona Arduino sul Desktop e si apre l’IDE e ricopiamo il seguente sketch, mi raccomando seguite ogni passo indicato:
Una volta caricato lo sketch, Arduino controllerà lo stato del Tilt Sensor, ed orienterà opportunamente la “sabbia nella clessidra”, cioè accenderà i LED opportuni, ovviamente una volta completata questa fase, cioè che i led sono tutti accesi da un lato, allora per far ripartire la clessidra, occorrerà capovolgere il tilt sensor per far partire la clessidra al contrario.
Video-Progetto 15 – Realizzare un Clessidra elettronica
Analisi dello Sketch: La Clessidra elettronica
Come è possibile osservare dallo sketch, nella parte di setup viene utilizzato un ciclo di “for” per settare i PIN a cui sono collegati i LED , ovviamente vengono tutti settati in OUTPU perché generano un segnale che potrà essere a stato alto (LED acceso) oppure a stato basso (LED spento).
Il PIN a cui è collegato il Tilt Sensor viene settato come INPUT_PULLUP per predisporre Arduino a stabilizzare al meglio il segnale che gli proviene su quel PIN.
L’istruzione delay che nella sua sintassi classica è : delay (millisecondi); viene utilizzato per scandire il tempo e quindi per far simulare la sabbia che scende dalla clessidra.
Infatti, come potete osservare dallo sketch , nel progetto è settato per un tempo pari a un secondo (cioè 1.000 millisecondi), il tempo che trascorre per far spegnere un LED nella parte alta della clessidra e farlo accendere nella parte bassa (trasferimento di sabbia da sopra a sotto).