100%(1)Il 100% ha trovato utile questo documento (1 voto) 1K visualizzazioni160 pagineScienze e Tecnologie Applicate Con Arduino
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo,
rivendicalo qui.
Formati disponibili
Scarica in formato PDF o leggi online su Scribd
Sergio
BologniniPRESENTAZIONE
“Wl libro ... cerca di spiegare le cose in un modo che potrebbe far innervosire gli ingegneri. In realtd uno
di loro ha definito i capitoti delle mia prima bozza “banalita”. E questo ¢ proprio quello che volevo.”
Massimo Banzi - Arduino: La Guida ufficiale.
Negl Istituti ad indirizzo tecnico-tecnologico, Vattivita laboratoriale vera e propria rappresenta una formidabile
fonte di motivazione per gli studenti: Arduino - con la sua immensa dispontbilita di progetti e materiale on-line - é,
probabilmente, lo strumento pil adatto per chi parte da zero.
Questo testo propone di utilizzare Arduino, per entrare in modo semplice ed efficace nei suoi mondi tecnici. |
ontenuti informatici sono veicolati dalla piattaforma /DE di Arduino che avvia alla programmazione testuale in
linguaggio C. In alternativa, la programmazione visuale con Scratch trova nuovi sviluppi con la versione per
Arduino (S4A, Scratch for Arduino). Attraverso Arduino possiamo sperimentare l'uso dei principali componenti
elettronici e i fondamenti dell’elettrotecnica di base (tensioni e correnti, pulsanti Led, Relay, transistor ecc).
Liinterfacciamento a motori DC, servo motori e passo-passo apre al mondo meccanico e alle applicazioni tipiche
della Meccatronica.
Questo testo permette di sviluppare un’attivita laboratoriale a basso costo e senza necessita di strumentazione
in kit Arduino e un pc o un tablet costituiscono tutto il necessario per provare quasi tutte le applicaziont
eBook+ per computer, tablet e LIM
Questo libro é anche un eBooks: la versione digitale del corso é accessibile attraverso l’utilizzo del codice coupon
riportato in frontespizio.
Inoltre, propone contenuti digitali integrativi ed espansioni multimediali che sono contrassegnate, nel volume,
con questi simbol
pe A ce
Link a video di progeti _Verifcheinterative File soluzioni degli Quiz autocorrettvi da utlizzare
realizati con Arduino Esoreizi di applicazione sua piattatorma Soorative
Contenuti digitali integrativi sul sito della Casa Editrice
& Sul sito [Link] sono inoltre disponibili per studenti e Docenti ulteriori contenuti digitali integrativi:
* File con le soluzioni degli Esercizi di applicazione
+ Storia di Arduino con riferimenti video
+ Schede di approfondimento sulle varianti di Arduino UNO: Leonardo, Mega, Genuino, Galileo
Materiali multimediali e didattici per I'Insegnante
Per i Docenti che adottano U'opera sono disponibili Materiali didattici digitali, in formato ISO, sul sito dell’Atlas
nell’area riservata, con questi contenuti:
+ Tutti gli sketch Arduino commentati e testati e gli script di S4A proposti nel testo
+ Modelli per U'inserimento dei test di fine capitolo nella piattaforma Socrative
+ Esercizi aggiuntivi e relative modello Socrative
Libri in chiaro
@ _ I marchio Libro in Chiaro mette in evidenza le qualita del libro di testo e con la Carta d’Identita - in
modo semplice, immediato e trasparente - indica gli elementi di cui é composto, descrivendone gli
J aspetti qualitativi e quantitativi, la validazione del processo produttivo, le modalita di rapporto con
inky yy {utente e l'osservanza delle norme di legge etico-comportamentali. Scopri, con la Carta d'identita, la
‘EUSkS! storia di ogni libro visitando il sito della Casa Editrice.INDICE
Copitoto JF introduzione: conoscere Arduino.
1. Che cos’ Arduino? .....see
2. Che cosa c’é dentro Arduino?
3. Che cosa fa Arduino?
4, Wsistema minimo ...eeeeeseeoes
5. Il primo programma in C
6. Il primo programma con Scratch
ESERCIZI DI COMPRENSIONE
ESERCIZI DI APPLICAZIONE
SOLUZION!
Capitolo FPA Input © Output: i pulsanti e i LED
1. Input e Output
2. Che cos’@ un LED e come funziona
BOX 1 - Le grandezze elettriche «........-++
3. Come accendere un LED con Arduino ..
BOX 2 - Dentro il circuito
Come fornire un comando ON-OFF ad Arduino
Interruttore che comanda un LED. ......+.
Pulsante che comanda un LED
I problema dei rimbatzi (bounce) ...sssessssssessssseeeessee
Altri esempi: monostabile e LED RGB
BOX 3 - La sintesi cromatica RGB
ESERCIZI DI COMPRENSIONE ....
ESERCIZI DI APPLICAZIONE
SOLUZIONI
Copitoto JJ input e output analogici
1. Grandezze analogiche e digitali
2. I potenziometri: regolare tensione e corrente
BOX 1 - La regola del partitore ...
3. Acquisire una grandezza analogica con Arduino
4. IL serial monitor come strumento di debug
5. Uscite analogiche - I segnali PWM
6. Input € Output analogici: LED e potenziometro
7. Usiamo i sensori: fotoresistore
8. Acquisire la temperatura: sensore LM35
ESERCIZI DI COMPRENSIONE
ESERCIZI DI APPLICAZIONE
SOLUZIONICapitoto YT 1 motori in corrente continua ..
Motori DC ..
Funzionamento dei motori
Accendiamo i motori
Regolazione della velocita di un motore
BOX 1 - Il transistor 28
Invertire il senso di rotazione del motore ...
| servomotori
Motore spazzino: Sweep
Motori passo-passo
.Pilotare un motore passo-passo con Arduino
ESERCIZI DI COMPRENSIONE
ESERCIZI DI APPLICAZIONE
SOLUZIONI ssssssseeeseeesese
Aero
Cepitoto FY) Display Lev, Relé, Buzzer o altri periferici
1. Come funziona un display LCD (Liquid Crystal Display)...
2. Collegare Arduino a un display LCD
3. Termostato con Arduino
4, Matrice di LED
5. I relé (relay).
6. Controllare i carichi di potenza con Arduino .......
7. Piezoelettrici: buzzer e knock sensor
8. Arduino da indossare: LilyPad
9. Progetti divertenti
+ Sensore di parcheggio
+ Theremin OtticO essseseesssssesee
ESERCIZI DI COMPRENSIONE
ESERCIZI DI APPLICAZIONE .....00.
SOLUZIONI
87
88
89
92
94
98
101
106
m1
112
114
120
121
122
123
124
125
129
134
139
141
144
149
152
152
154
157
158
159Capitolo 20
Introduzione:
conoscere Arduino
1. Che cos’é Arduino?
2. Che cosa c’é dentro Arduino?
3. Che cosa fa Arduino?
4. 11 sistema minimo
5. Il primo programma in C
6. 11 primo programma con Scratch _
CONOSCENZE ABILITA
“La board Arduino “Collegare Arduino al PC
Open source e Open hardware Garicare programmi su Arduino
Arduino IDE e Scratch Testare semplici programmi con Arduino
“Tutti sanno che una cosa é impossibile da realizare,
finché arriva uno sprowveduto che non lo sa @ la inventa.”
Avsent EinsteinNella Fig. 1 é riprodotta la scheda Arduino.
Figt
Arduino UNO.
ce
cme d [e}
etry
Sul sito ufficiale [Link] si trova la seguente definizione:
Arduino una piattaforma elettronica open source basata su software e
hardware facili da usare. pensata per chiunque voglia costruire progetti
interattivi.’
In realta la trovate in inglese (vedi nota 1), come tutto il sito di cui non esiste
una versione italiana. Gia questo ci dice che chi l’ha progettata voleva propor-
la a tutto il mondo.
Con il termine piattaforma si intende un sistema completo hardware e software
(cio8 oggetti e programmi) per costruire dispositivi elettronici di vario genere.
Il gruppo di Arduino, infatti, ha progettato la scheda e realizzato anche un
software per programmarla. Adesso esistono moltissime schede Arduino ma la
pid nota e utilizzata é la Uno R3? riportata in Fig. 1. In Fig. 2 la prima scheda
Arduino 10000" e U'ultima uscita, Galileo, realizzata in collaborazione con Intel
(la muttinazionale che produce microprocessori per PC, Tablet e Smartphone).
* Arduino is an open-source electronics platform based on easy-to-use hardware and software. It’s intended for
anyone making interactive projects.
33 sta per revision 3, a indicare che é la terza versione della scheda Uno.
> Arduino 10000 si chiama cosi perché ne erano state prodotti appunto 10000 pezzi.
6 Cap. 1 - Introduzione: conoscere ArduinoFig2
Arduino Diecimila
(il capostipite) e la
scheda Intel Galileo.
Fig. 3
Linterfaccia del
software di program
mazione di Arduino.
?
La storia
i Arduino
Fig
a. Re Arduino di
Ivrea (in una meda-
alia d'epoca) che si
dice abbia dato il
‘nome alla scheda;
b. la serigrafia sulla
board che certitica il
prodotto come Made
in Italy
lean’)
(@eP Galileo
By
Il software realizzato dal gruppo
Arduino (in Fig. 3 la schermata di
awio) consente di programmare
la scheda per realizzare moltissi-
mi tipi di dispositivi. Digitando la
parola “Arduino” su YouTube, ap-
Pariranno mitioni di video che de-
scrivono le potenzialita della
scheda.
Perché Arduino?
La scheda é stata inventata da un gruppo di ricercatori dell’Interaction Design
Institute di Ivrea. La versione ufficiale ne associa il nome a un personaggio
storico, Re Arduino, piemontese, considerato il primo re d’ltalia (vedi fig. 4).
Una versione pit corrente vuole che il nome derivi dal quello del bar che gli
inventori frequentavano.
ecocecs
Perera te
Comunque sia, resta il fatto che gli autori volevano dare risalto all’italianita
del progetto.*
* Lacitté di lvrea, in Piemonte, era considerata il centro tecnologico pili avanzato in ambito di macchine programmabili
negli anni ’70 infatti, ospitava la Olivetti, azienda, al tempo, leader nel settore.
Cap. 1 - Introduzione: conoscere Arduino 7Open source e Open hardware
Open source e Open hardware sono due concetti molto importanti, uno legato
al software e l’altro alle schede hardware.
Fig. 5
1 simboli dei
movimenti open
source @ open
source hardware.
initiative
C tt
open source
fe) elo source
rdware
In entrambi i casi significa che U'inventore lascia la sua invenzione “aperta”,
cio@ lascia che il programma e il dispositivo possano essere copiati, distribuiti,
modificati o migliorati.
Open source
Per quanto riguarda i programmi, abbiamo a disposizione il programma sorgente
(da cui il termine source) scritto nel linguaggio originario. Possiamo legzerlo,
studiarlo, modificarlo e crearne una nuova versione che risponda alle nostre esi-
genze. Quando invece compriamo un programma (un gioco 0, per esempio, un
software per Uufficio) compriamo solo il codice binario, cioé il codice numerico
che solo il PC capisce perfettamente. In Fig. 6 si pud notare la differenza tra il
codice sorgente (pur complesso, ma scritto in forma comprensibile, in lingua
inglese) e il codice eseguibile (formato solamente da numeri esadecimali).
comoe sae geoundpin = 287
conse Sse pin =
fcmot dnt grin = 2s
vous eet)
hi
17 ssgueal pins. Tats nakeo 40 possible to
17 beeekoue boars to the AxGuines TE fou use the nica
inode (gromepin, OOTP;
ino (poverpin, OUTPUT) 2
‘igtealetee(geoiméptn, 100)
figuealbes ce peverpiny HCH)
)
vets top)
‘
[Link] (ennogeeed pia) ¢
[Link] ("VE
Sertalspeinee"ve"
‘Sersai. print (eoaLogeeec(epin))?
Serial-peineln()?
cap.
1 ODOA2F2A0D0A204144586C3378
2 200D0A20526561647320616=20416561
3 6C6F672044657669636573204144584C
4 33787820616363656C6S726FEDES7465
5 722061 6E6420636F 6DED7SEESSE3E174
6 6573207468650D0A2061636365EC6572,
] 6174696F6520746£2074686520636F6D
8 70757465722E20205468652070696273
9 2075736564206172652064E57369676E
656420746F206265206561 7369607900
08206365 6D70617469626CE520776974
68207468652062726561€B6275742062
6F617264732066726F 6D20537061726B
66756E2C20617661696C61 6260652066
‘7126F6D3A0D0A20687474703A2F257777
1728737061726B66756£2E636F602F63
GF6D6D657263652F636174E5676F 7269
a. Codice sorgente di un programma:
b. Lo stesso programma compilato (trasformato) per
renderlo comprensibile al PC.
1 ~ Introduzione: conoscere ArduinoOpen source hardware
L’Open source hardware é un concetto pill recente e praticamente é stato
inventato dal gruppo di Arduino. Si tratta di fornire insieme al dispositivo elet-
tronico tutta la documentazione disponibile ¢ il progetto completo. In questo
modo é possibile costruire da soli un modello equivalente e persino venderlo,
a patto che si dichiari che é basato su Arduino.
In Fig 7.a sono visualizzati gli schemi di Arduino; in Fig 7.b @ presentata una
versione di Arduino costruita su breadboard assemblando i diversi componenti.
Fig. 7 oe
a. Schema di Arduino Uno rev. 3.
b. Realizzazione su breadboard.
Cap. 1 - Introduzione: conoscere Arduino 99
Le attre
board
4 Arduino
Fig. 8
La scheda Arduino,
In evidenza i compo-
nenti principal.
> Un ATmega 328 di ATMEL, societa leader nel settore.
10
Che cosa c’é dentro Arduino?
usB —|
Clock
Alimentazione |
Descriviamo brevemente le parti di cui é composta la scheda:
+ Microcontrollore: @ la CPU della scheda’, cioé il processore che esegue i
programmi che si scrivono per la scheda stessa. Rispetto ai processori dei PC
@ meno potente, ma pi completo € contiene tutto quello che serve per
eseguire programmi di media complessita: una memoria Flash da 32 KByte
(che non si cancella quando si spegne tutto; in pratica @ Vequivalente, in
forma ridotta, del disco fisso dei PC), una memoria RAM da 2 KByte © altro di
cui parleremo piti avanti
Clock: é un generatore di frequenza al quarzo che fornisce il ritmo di lavoro
al microcontrollore e rappresenta quindi la velocita di lavoro del processore.
Il clock pué arrivare fino a 20 MHz, anche se sulla scheda ne @ montato uno
meno potente, da 16 MHz. Cid vuol dire che questo pud arrivare 2 eseguire
fino a circa 20 milioni di operazioni al secondo.
USB: é Vinterfaccia di connessione al PC, attraverso la quale inviare fl pro-
gramma dal PC alla scheda. In Fig. 9 & visualizzata la connessione USS con
connettore tipo B. Su alcuni pil recenti modelli di schede, la connessione
microUSB, come per gli Smartphone.
Fig. 9
La connessione al PC
via USB.
Cap. 1 - Introduzione: conoscere ArduinoFig. 14
Circuito realizzato su
breadboard che
scambia segnali con
la soheda Arduino.
+ Alimentazione: come tutti i dispostivi elettronici, il sistema ha bisogno di
energia. La tensione richiesta di norma é 5 V anche se la scheda funziona con
tensioni da 2 a 5,5 volt circa. Essa pud essere alimentata da una batteria a 9 V,
da cui la scheda ricava i 5 V necessari, oppure da un opportuno alimentatore.
In alternativa, si pud usare direttamente la porta USB del computer collegata
alla presa sulla scheda. Non appena si collega l’alimentazione, il microcontrollore
comincia a eseguire il programma che ha in memoria.
Fig. 10
Alimentazione
ausiliaria della
scheda,
+ Connettori: sono i punti dove collegare i vari dispositivi che compongono
Uautomatismo che si vuole creare (LED, Buzzer, Motori, sensor di vario gene-
re e tutto quello che serve al nostro progetto). Ogni linea corrispondente a
una connessione sulla scheda @ individuata da un numero che va utilizzato
nel programma per specificare a quale linea si riferiscono le istruzioni det
programma stesso.
+ LED: sulla scheda sono presenti tre luci a LED (vedi Fig. 8). Un LED marcato
con la L é collegato a un punto sul connettore (\inea 13) ed é utilizzabile per
i primi programmi e per segnalare stati particolari del programma. | LED TX e
RX, invece, segnalano la comunicazione tra la scheda e il PC (o altri dispositivi
seriali collegati). Se questi lampeggiano, é segno che PC e Arduino stanno
comunicando.
Cap. 1 - Introduzione: conoscere Arduino 11"3, Che cosa fa Arduino?
Dopo aver detto che cosa contiene, la domanda interessante é: che cosa fa, 0
meglio, che cosa possiamo farci? Infatti, Videa alla base di Arduino é che ognu-
no possa costruire con esso qualcosa di utile o semplicemente di piacevole.
| progetti possibili sono pressoché infiniti. Di seguito, ne elenchiamo alcuni che
ci sembrano simpatici o interessanti. In realta, praticamente tutti i moderni
oggetti tecnologici possono essere costruiti con Arduino (entro i limiti delle
prestazioni della scheda). Infatti, il sistema comprende tutto cid che serve
(una CPU, una memoria e delle interface per sensori e attuatori).
Molti progetti presentati sono pubblicizzati sul sito di informazione wired. it,
un importante riferimento internazionale legato all’ innovazione tecnologica.
+ Cubo LED: é una applicazio-
ne di Arduino, in cui la scheda
controlla i singoli LED e pud
produrre effetti molto parti-
colari, come ondulazioni del-
la luce, rotazioni, visualiz~
zazioni di numeri e di imma-
gini.
Fig. 12
Cubo a LED.
Fig. 13
‘Stampante 3D REP RAP,
costruita in kit
12 Cap. 1 - Introduzione: conoscere ArduinoFig. 14
Realizzazione di un
rivelatore di fumo
‘con un sensore di
gas tipo MQ2.
Con la stampante 3D REP RAP (ormai famosa in tutto il mondo) é possibile
stampare oggetti tridimensionali a partire dal file del modello 3D. La scheda
Arduino controlla i motori e Uestrusore che deposita la plastica (derivata dal
mais) in strati successivi, fino al prodotto finito.
+ Rilevatore di fumo, gas, ecc.
Con un opportuno sensore @ facile costruire un rilevatore di fumo e altri gas
(metano, ecc.). Dotando il dispositivo di un cicalino (buzzer) é possibile realiz-
zare un allarme che suona se viene superata una certa concentrazione di fumo
© gas nell’ambiente. Il sensore (in Fig. 14, somigliante a un piccolo microfono)
rileva la concentrazione di vari gas visualizzata sul display. Cambiando il tipo
di sensore si pud costruire un etilometro (soffiando sul sensore sappiamo se ci
& consentito guidare oppure no).
* Serratura a combinazione
Fig. 15
Realizzazione di
un sistema di
protezione con
sensore
piezoeletrico..
La porta si apre solo se si bussa rispettando una certa sequenza, come nei film
di spionaggio. Grazie ad un knock sensor, costituito da un elemento piezo-
elettrico che rileva le vibrazioni meccaniche, possiamo far leggere ad Arduino
la sequenza di colpi e confrontarla con una “combinazione” memorizzata.
Cap. 1 - Introduzione: conoscere Arduino 13+ Tweet a watt
Per monitorare l’energia impegnata, il
dispositivo invia un messaggio via
Twitter con il consumo rilevato.
Fig. 16
Sistema di controllo
dellenergia assorbita
Fig. 17 IL robot tosaerba si muove e taglia l’er-
Robot tosaarbe ba in tutto il giardino. Ne esistono ver-
sioni con pannelli solari, con funzioni
di apprendimento (impara il percorso
e lo riproduce su comando) e con
sensore di luce e di pioggia.
Fig. 18
Gestione dellirriga-
ione di una pianta
con rilevatore di
umidita.e connessio-
ne di rete,
14 Cap. 1 - Introduzione: conoscere ArduinoLa scheda regola Uirrigazione e la luminosita ambientale sulla base di un pro-
gramma preimpostato e in funzione del grado di umidita rilevato nel terreno.
Dotando la scheda di una connessione a Internet, & possibile rilevare, da ogni
logo del mondo, le condizioni della pianta e impostare opportunamente (da
PC, Tablet o Smartphone) i cicli di irrigazione e illuminazione.
Concludiamo con due progetti molto diffusi e i cui prototipi sono stati svilup-
pati con Arduino:
+ Smartwatch
Lo Smartwatch @ un orologio con funzionalita aggiuntive, in genere abbinato a
uno Smartphone da cui riceve messaggi e segnalazioni.
Fig. 19
Prototipo di
smartwatch con
Arduino,
+ Quadricottero
Fig. 20
Quadrioottero
controllato da
Arduino.
Il quadricottero @ un aeromodello dotato di quattro motor ¢ relative eliche
che pud eseguire le manovre tipiche di un elicottero.
Cap. 1 - Introduzione: conoscere Arduino 15Risorse
Il Web offre numerose risorse per utilizzare Arduino: materiali, tutorial, video,
guide, ecc.
Si pud cercare cid che interessa su un qualsiasi motore di ricerca e trovare
migliaia di risposte. Questa diffusione é una delle principali ragioni del succes-
so di Arduino. La sua semplicita e la sua impostazione open hanno fatto in
modo che i progetti disponibili venissero immediatamente condivisi tra tutti.
Di seguito, sono elencati alcuni principali link:
+ [Link] - II sito originale, da dove partire.
+ [Link] - I\ sito che raccoglie alcuni tutorial del team Arduino.
+ [Link] - Il forum, dove trovare risposte a vari quesiti.
Proget per» [Link]/home - It programma Fritzing & un software (open source) per
cominciare disegnare circuiti basati su Arduino. Esso contiene moltissimi esempi gia svolti
e molto semplici da provare.
+ [Link]/category/learn-arduino - Adafruit & un importante ri-
venditore americano di componenti elettronici. La sua sezione di apprendi-
mento (learning) @ davvero ottima.
+ [Link] - come il precedente, Sparkfun vende componenti in
tutto il mondo.
+ [Link]/howto/arduino - letteralmente, istruzioni per ...
quasi tutto.
‘4, Il sistema minimo
Arduino é un sistema minimo, che richiede solo un cavo USB per la connessione
al computer. Sulla scheda c’é Uoscillatore per il clock del microcontrollore,
Vinterfaccia USB per la programmazione seriale del microcontrollore stesso e
la sezione di alimentazione (direttamente dal cavo USB 0 dall’alimentatore).
Alcuni semplici componenti possono essere collegati direttamente alla board
(Fig. 21).
SR
Fig. 24
Per iniziare con
Arduino basta un
PC e un cavo USB.
Brean rath) s
16 Cap. 1 - Introduzione: conoscere ArduinoFig. 22
a Esempio di realizzazione di circuiti con Arduinoe eeseseeess
altri componenti montati su breadboard.
b. Breadboard,; in grigio le connessioni elettriche
tra i connettori.
Per i progetti successivi pud bastare una normale breadboard (basetta) e qual:
che cavo per le connessioni (Fig. 22a).
La breadbord é una scheda per montaggi sperimentali di elettronica, che com-
prende una serie di fori con connettori elastici, collegati tra loro, come indica-
no le linee grigie di Fig. 22b. Cid permette di inserire e collegare i diversi
componenti, di alimentarti collegando le copie di linee poste ai margini supe-
riore e inferiore della breadboard rispettivamente alla tensione elettrica e a
massa direttamente dai connettori della scheda Arduino.
ic
Prima di iniziare a programmare la scheda Arduino, esaminiamo le funzioni dei
diversi tipi di connettori disponibili sulla scheda, per \'ingresso dei dati e 'uscita
dei risultati.
+I pin da 0 a 13 sono previsti per ricevere segnali digitali in ingresso (IN) 0
fornirti in uscita (OUT). Il segnale digitale pud avere due soli valori: 0 (livello
basso = 0 V) oppure 1 (livello alto = 5 V); in generale, é meglio non usare le
linee 0 e 1 (sono linee di comunicazione tra PC e Arduino) e la linea 13 (con-
nessa al LED montato sulla board e in genere usata solo a quello scopo).
+ i pin AO + AS sono previsti per segnali analogici in entrata. | segnali analogici
possono assumere valori di tensione compresi tra 0 e 5 V in base alla informa-
zione che trasportano. In realta, con il codice adeguato, tali linee possono
essere usate anche come linee digitali.
Cap. 1 - Introduzione: conoscere Arduino 17Fig. 28
Primo semplice
progetto con
Arduino: LED
lampeggiante,
realizzato con
Fritzing,
Fig. 24
Esempio di program-
‘ma C per Arduino.
) | 1 primo programma in C
Cominciamo subito a realizzare una prima semplice applicazione con Arduino:
un LED lampeggiante. LED - /0 13
Per fare questo non dobbia-
mo costruire alcun circui-
to esterno alla scheda di
Arduino, in quanto sulla
scheda stessa é gia monta-
to un LED che pud essere
opportunamente comanda-
to dal programma in ese-
cuzione. Questo esercizio&
anche un buon modo per
verificare se tutto funzio-
na (scheda, collegamento
al PC e programmazione).
Arduino, come tutti i sistemi programmabili, pud essere programmato in di
versi modi. Il primo che affrontiamo consiste nell’utilizzare |'ambiente di svi-
luppo (IDE)* progettato dallo stesso team che ha inventato Arduino. Questo
ambiente prevede la programmazione in linguaggio C (é sostanzialmente una
variante del C standard): i comandi da impartire alla scheda vengono codificati
attraverso una sequenza di istruzioni scritte in un file di testo (vedi Fig. 24) che
vengono successivamente compilate’ e inviate alla scheda.
// Pin 18 has an LED connected on nost Arduino boards.
J/ give it a nane:
int led = 137
// the sebup routine runs once when you press reset:
void setwp() (
// inivialize the digital pin as an output.
inode (Lea, OUTPUT) :
)
J/ the Loop routine rime over and over again forever:
void loop() (
digitalrite(led, HIGH); // turn the LED on (HIGH is the voltage 1
eLey (1000) ¢ J/ aie for a second
digitalcite(led, Lov); // curn the LED off by asking the
eley (1000) + 1/ wait for a second
Il listato pud sembrare molto complesso, ma nell’applicazione Arduino sono
compresi esempi pronti che possono essere utilizzati e modificati.
IDE: Integrated Development Environment.
La compilazione consiste nel trasformare il programma C in una sequenza di codici binari comprensibili per il
microcontrotlore.
18
Cap. | - Introduzione: conoscere ArduinoDal sito [Link] Software si pud scaricare ambiente di
programmazione per Arduino e installarlo sul proprio PC seguendo la procedu-
ra guidata.*
@ Installazione dell’ambiente rogrammazione
Chek te conscners yu ante rt andrchedt he congas
Yu dortvant ost Caches on.
Fig. 25
Finestre proposte dal
software di installa-
[Link] certo punto dell’installazione verra chiesto se installare il driver USB ne-
cessario per la comunicazione tra PC e Arduino (via USB appunto). Clic su In-
zione. stalla per procedere.
Fig. 26
Richiesta per
Vinstallazione driver Installare questo software di dispositive?
USB. Nome: rio SB Dice
eer Moe neo tte
Consider seer ater sfare
Proveriente dein
@ Ecomighbite innate oe sver pro
Se non si dovesse installare il driver USB, lo si pud collegare successivamente
da Pannetlo di controtlo, usando i driver che si trovano nella relativa cartella
(drivers/).
Per Uutilizzo dell’ambiente di programmazione (dopo averlo installato)’ é ne-
cessario collegare la scheda a una porta USB del computer e verificare da Ge-
stione dispositivi (in Pannello di controlio) che ta scheda sia stata corretta-
mente riconosciuta e associata a una porta seriale COM (Fig. 27).
Fig. 27
La schada Arduino
riconosciuta dat
sistema con il ese) Je as
relativo numero di
porta COM,
Arduino Une (COMS) nstallasone completa
* Sono disponibiti anche le versioni per MAC e Linux.
* Download da [Link] Software.
Cap. 1 - Introduzione: conoscere Arduino 19Comte
Aprendo Uambiente di programmazione Arduino é opportuno controllare che
la scheda Arduino in uso sia inserita negli Strumenti del software, e che la
Porta di collegamento sia la stessa indicata nel Pannello di controllo, come
illustrato in Fig. 28.
Comat
oor attest itmeo | some ol
; ‘sn eros | one aL
“TLL eer siemens | ETL) Seema es
| Aisin ot
Seat
Fig. 28 In genere € comodo partire da uno degli esempi gia presenti e procedere poi
Settaggio della alla modifica del programma per adattarto alle proprie esigenze.
este el COM L’esempio che pub fare al caso nostro é il programma Blink del menu [Link]
programmazione -—-«(Wedi Fig. 29).
Arduino.
Fig. 29
1 menu esempi
fornisce mot
programmi da cui
partir.
Fig. 30
Strumenti e funzioni
nella parte alta
dell DE,
20
ambiente IDE di Arduino contiene le funzioni essenziali e presenta alcune
icone che rimandano a tutte le azioni eseguibili.
In Fig. 30 vengono presentate le funzioni dei diversi pulsanti e zone dell" IDE.
BaRaa sRUMENT
ULSAN FUXZION!
plod: vert, empl rstermenta aa sheds
Cap. 1 ~ Introduzione: conoscere Arduino?
Programme
Blink
Dopo aver caricato il programma (o averlo scritto personalmente), clic sul pul-
sante Carica (Upload) per trasferirlo alla board e awiarne U'esecuzione.
Fig. 31
Immagine presa
dal software.
Analizziamo adesso il programma Blink:
Il programma accende il LED montato sulla board per un secondo e lo spegne
per un secondo, e cosi via all’infinito.
Vediamo il codice:
- ei reais
<> int LED = 13;
f void setup() { |
Bac piniode(LED, OUTPUT);
6: | void 100p() {
© tepHig 7) | © digitalwrite(Lep, HIGH);
delay(1000) ;
digitalwrite(LED, LOW);
|
| Delay 10005) I delay (1000);
ec ae
+ Diagramma di flusso di lavoro e codice di Blink.
La prima linea
int LED = 13;
dichiara la variabile LED in cui viene caricato il valore 13 che corrisponde al pin
del processore al quale, sulla board Arduino, é effettivamente connesso un LED.
Seguono le due funzioni base sempre presenti in un progetto Arduino:
la funzione setup() e la funzione Loop().
Cap. 1 - Introduzione: conoscere Arduino al22
+ La funzione setup() @ una particolare struttura che viene eseguita solo una
volta, al reset della scheda. E tipica dei sistemi con microcontrollore per il
controllo di numerosi dispostivi. Quando si accende il sistema, si devono
eseguire alcune inizializzazioni. Per esempio, accendendo un distributore di
bevande, bisognera impostare preliminarmente il display, definire ingressi e
uscite del sistema (riscaldatori, valvole, ecc) e dare loro il valore iniziale
(normalmente tutto spento tranne il display). Queste operazioni servono solo
all’awvio della machina e non vanno pill ripetute durante il normale funzio-
namento.
Nel caso specifico la funzione setup() esegue solo un’istruzione:
| pintode(Leo, ouTPuT);
tale istruzione serve per “settare” il pin 13 ({l valore di LED) come uscita (OUTPUT
nel programma). La funzione pinMode imposta la modalita di funzionamento
dei pin (che possono essere uscite o ingressi, non le due cose contemporanea-
mente). Se volessimo collegare un LED al pin 10 dovremmo mettere nel setup:
pinMode(10, OUTPUT); |
In alternativa, si pud inizializzare LED a 10 (int LED = 10).
+ La funzione loop() comprende una parte di programma la cui esecuzione
viene ripetuta continuamente. Una volta che il programma ha terminato Uul-
tima istruzione, riparte da capo ed esegue nuovamente le varie istruzioni di
seguito, all’infinito. Questo tipo di struttura é inconsueto per la programma-
zione di PC. In informatica, i cicli infiniti sono considerati un errore da evita-
re, ma nel nostro caso il programma gestisce una macchina reale (come ab-
biamo gia detto, un firmware) e l’unico evento che interrompe il funziona-
mento del programma é lo spegnimento di Arduino.
void loop() { |
| digitalWrite(Lep, HIGH);
delay (1000); |
digitalnrite(LED, LOW);
| delay(1000);
i
La funzione loop() ¢ molto semplice:
| digitalwrite(LED, HIGH);
scrive sul pin 13 un livello alto di tensione, quindi accende il LED.
+ Listruzione delay(1000) attende un secondo (a funzione é subito disponibi-
le, non & necessario includere librerie o altro), quindi il valore tra parentesi
indica il ritardo in millisecondi prima che inizi l’istruzione successiva.
+ La successiva istruzione digitalWrite(LED, LOW), spegne il LED e dopo
altri 1000 ms si ricomincia da capo.
Il codice completo ¢ riportato nella precedente Fig. 32.
Cap. 1 - Introduzione: conoscere ArduinoAlcune osservazioni:
+ Il programma viene salvato con estensione .ino. In realta é un normale file di
testo. Quando si salva, il programma crea in automatico una cartella con lo
stesso nome del file, separando i vari progetti in diverse cartelle.'*
+ Ogni programma per Arduino deve contenere almeno due funzioni: setup() €
(oop(). La prima serve per impostare il funzionamento dell’ hardware del micro
(input, output, comunicazioni seriali, ecc.); la seconda, invece, contiene il
codice che verra eseguito cicticamente (da cui il nome loop). Non é quindi
necessario (come in altri micro, per esempio PIC) inserire un ciclo infinito
nella funzione principale (main).
+ Per poter usare le linee digitali é necessario definire se sono input o output.
A questo scopo si usa la funzione interna:
pinMode(numero Linea, INPUT 0 OUTPUT).
"6, Il primo programma con Scratch
Vediamo un esempio di programmaztone con Arduino usando Scratch.
Scratch é un ambiente di programmazione visuale per computer. Poiché Arduino
é di fatto un piccolo computer, esiste una versione di Scratch realizzata appo-
sitamente per Arduino".
E innanzitutto necessario scaricare la versione per Arduino, che si chiama Scratch
9 for Arduino e ha la sigla $44." Si pud trovare sul sito [Link]
Una volta scaricato e installato il programma S4A (Fig. 33), @ necessario instal-
lare sulla scheda un firmware” speciale per Arduino, che consente la comuni-
cazione con Scratch. In $44, infatti, il programma che scriviamo non viene
semplicemente mandato ad Arduino, ma comunica continuamente con la sche-
da anche durante l’esecuzione del programma. Quindi dall’interfaccia di Scratch
potremo vedere in tempo reale i valori degli ingressi e delle uscite della sche-
da. Si tratta ovviamente di un programma che va scaricato su Arduino usando
Vambiente di programmazione originale.
Fig. 33
Sequenza da seguire
per 'nstallazione di e— €— ae
Sda.
“© Fa in automatico cid che dovrebbe fare ogni buon programmatore: separa { diversi progetti in diverse cartelle.
"In realta & una versione di Scratch adattata per Arduino e, come si vede poco oltre nel testo, richiede alcune
modifiche intziali.
"254A: Scratch four Arduino: in queste sigle si gioca sul fatto che in lingua inglese four 0 for hanno la stessa pronuncia
‘© quasi (come 2b or not 2b: to be or not to be, la frase iniziale del famoso monologo di Amleto di W. Shakespeare).
"3 Firmware: & un tipo di software che determina il funzionamento di un dispositive (ad es. uno smartphone, un
elettrodomestico, ecc.). Normalmente viene caricato dall’azienda che lo produce, da cui il nome composto da
firm: azienda (anche fisso rigido perché non viene generalmente modificato) e software (programma).
Cap. 1 - Introduzione: conoscere Arduino 23[Link] (che possiamo trovare in [Link]
S4AFirmware [Link]).
‘S4AFirmware— Carichiamo il firmware sulla scheda e chiudiamo il programma Arduino (Fig. 34).
9 Lanciamo Vambiente di programmazione Arduino e carichiamo il file
Fig, 34
I programma
‘S4Afirmaware16 ino
da precaricare su
Arduino per far
funzionare corretta-
mente Scratch for
‘Arduino, ? 7 cype in pin
ized speed of execution while rec
TON 1.6 (by Jorge Gomez)
etic auduinoFine to Hold the pane anfornstson
f wakes the code easier to read and modie
fs to change the type of pin nore east:
a the need of Mv
"y using an enim to hold ail the
Caanged all £%
Fixed possible overflow every 70 minutes (2e52 us) in p
Sone ainot ending style exes
eu IM VERSION 1.68 (by gorge Gomez]:
Fixed coapetibilicy vith Arduino leonardo by avoids
eesasertalfore() optimized:
Jachine for Eeading the tio bytes of the Sth
mavor() 4s only call es is changed
- A questo punto possiamo lanciare il programma S4A. Apparira V’interfaccia di
Fig. 35 Fig 35. Si noti nel riquadro a destra la dicitura “Searching Board”: significa che
Sehermatainiele 4 ¥. programma sta cercando la scheda (board) collegata al PC.
24 Cap. 1 - Introduzione: conoscere ArduinoRiconosciuta la scheda, nel riqua-
dro comparira la porta COM'*a cui
abbiamo collegato Arduino (vedi
Fig. 36). Anche usando una sche-
da diversa il programma la indi-
viduera come Arduino Uno. Nes-
suna preoccupazione: i program-
mi funzioneranno comunque, pur-
ché siano schede compatibili con
54a.
Fig. 36
La scheda riconosciuta e i valori
delle linee mostrati dal programma.
Nella Fig. 36 é presente il disegno della scheda e il riquadro che mostra i valori
che questa riceve da alcune linee (6 analogiche, dalla 0 alla 5, e 2 digitali, ta
e la 3). | dati presenti nel riquadro corrispondono ad altrettanti contatti sulla
scheda, come riportato in Fig 37.
Il programma mostra i valori che il processore acquisisce da alcuni ingressi. Se
vogtiamo fare una piccola prova, colleghiamo un filo alla linea Digital2 e poi
alternativamente a GND e 5V sulla fila di connettori opposta. Dovremmo vede-
re alternarsi il valore “false” e “true” rispettivamente. | valori analogici del
riquadro continuano a cambiare perché ogni ingresso elettrico non collegato
ad altri circuiti é equivalente a una piccola antenna che capta segnali casuali.
Allo stesso modo possiamo verificare il funzionamento delle linee analogiche,
collegandole anch’esse a GND 0 5V. Dovremmo vedere alternarsi i numeri 0 €
1023 corrispondenti ai due voltaggi (0 per GND e 1023 per 5).
Fig. 37
Collegando i fil
(sulla scheda) i
valori most
cambiano di
‘conseguenza.
Proviamo adesso a far lampeggiare il LED sulla scheda (linea 13) usando perd
Scratch.
Come abbiamo gia visto si trata di:
+ accendere il LED connesso al pin 13;
+ attendere un secondo;
+ spegnere il LED;
+ attendere di nuovo un secondo e ripetere il tutto all’infinito.
“E una porta seriale virtuale che usa la comunicazione via USB. Le vecchie seriali (RS232, ec.) non sono pit!
disponibiti su PC, ma ancora utilizzate attraverso le normali connessioni USB.
"IL sito $[Link] dice che il programma funziona sicuramente con le schede Arduino Uno, Diecimila e 2008. Le altre
schede “dovrebbero” funzionare.
Cap. 1 - Introduzione: conoscere Arduino 2526
Vediamo come fare: dal menu Controtlo (clic sul riquadro giallo) inseriamo i
blocchi (Fig. 38), trascinandoli all’interno del riquadro centrale, dove si com-
pone lo script.
Fig. 38
inserimento
{ei biocchi a
controtlo
principal.
Dal gruppo Movimento (Fig. 39) inseriamo i due blocchi per accendere e spe-
gnere la linea digitale 13 (selezioniamo il 13 nella casella del blocco). Si tratta
di portare a livello alto (accendi) 0 basso (spegni) il pin indicato,
Fig. 39
Assegnazione
dello stato
alluscita 13.
La nuova versione di Scratch usa il termine relé (nelle vecchie versioni era
digital). Si riferisce a un preciso componente del mondo elettrico, cioé un tipo
di uscita che rimane nello stato in cui é stata impostata (come se fosse una
memoria da 1 bit).
Cap. | - Introduzione: conoscere ArduinoFig. 40
Inserimento dei
ritardi di 1 s.
Fig, 44
Programma completo
di test dell ingresso
digitale 2.
Ora mancano solo i ritardi: se
lo eseguissimo adesso appari-
rebbe sempre acceso, perché
le commutazioni sarebbero
troppo veloci.
Ancora dal gruppo Controlio
inseriamo, allora, i due ritardi
i un secondo (Fig. 40).
Aqquesto punto, premendo sul-
la bandierina verde in alto a
destra, si fa partire 'esecuzio-
bores |e ne del programma che attiva
So a il lampeggio del LED.
— La Fig. 41 mostra il program-
ma Scratch del lampeggio co-
mandato da un ingresso (in
questo caso il pulsante o il
semplice filo che va collegato
alla linea 2).
Notiamo che, diversamente dalla programmazione testuale vista precedente-
mente, é necessario inserire un ciclo infinito (non c’é la funzione loop()) rap
presentato dal blocco “per sempre”. Anche la funzione setup() non @ presente
€ non & necessario impostare le linee come ingressi o uscite: & U'ambiente di
Scratch che, in automatico, imposta ingressi e uscite. $44 assegna automatica-
mente le linee analogiche per gli ingressi e quelle digitali in ingresso o in uscita
(con la programmazione testuale si poteva scegliere). Quindi, se usiamo il blocco
che comanda una linea (13) questa é owviamente un’uscita. Se invece testiamo
una linea digitale (la 2 nell’esempio) questa sara necessariamente un ingresso.
de ret omamede
Cap. 1 ~ Introduzione: conoscere Arduino 27tt»tit_iPEbrncasie. ©.
1. RISPONDI VERO 0 FALSO
1. Arduino & un microcontrollore OG
2. Ci sono pit tipi di schede Arduino oa
3. Arduino viene prodotto soltanto in Italia e il progetto & coperto da copyright Gi
4. La scheda Arduino pud essere programmata solo con sistemi Windows e Linux GG
5. La scheda Arduino pud essere programmata in diversi linguaggi e ambienti OG
6. Il clock di Arduino & di 2.5 GHz Go
7. La scheda possiede un’uscita a LED gid integrata sulla board e connessa alla linea 14 ua
8 IDE di Arduino @ un software per la scrittura, compilazione e caricamento dei programmi per la scheda (gd
x
‘SCEGLI LE RISPOSTE CORRETTE (UNA O PIU)
1. Ogni programma di Arduino:
a. deve contenere la funzione setup() ¢ la funzione loop()
b. deve contenere almeno la funzione setup()
c. deve contenere almeno la funzione loop()
d. deve contenere la funzione setup(), loop() e la ISR.
2. Il clock di Arduino Uno:
a. @ di 80 MHz e non pud essere modificato
b, @ di 16 MHz e pud essere modificato
c. @di 16 MHz e non pud essere modificato
d. @ di 80 MHz e pud essere modificato.
3. Le programmazione di Arduino attraverso I'IDE:
a. usa il linguaggio Basic
b, usa il inguaggio C+
©. usa il linguaggio Java
d. usa il inguaggio Scratch
4. Lambiente IDE di programmazione di Arduino:
a. funziona solo con Arduino Uno
b. integra un‘interfaccia seriale di comunicazione con la board
. consente il caricamento del programma sulla board
d. consente l'esecuzione passo passo del programma.
5, La scheda Arduino Uno:
a. esegue il programma che ha in memoria solo se collegata e comandata da un PC
b esegue il programma che ha in memoria purche sia alimentata
c. deve essere alimentata unicamente via USB.
4d. pud essere alimentata da USB o da un alimentatore esterno da 6 a 20 V.
28 Cap. 1 - Introduzione: conoscere Arduino6. La funzione di setup di un programma per Arduino:
a. @ all‘interno di un ciclo infinito
b. viene eseguita una sola volta
. viene eseguita dopo un reset o all'accensione della board
d. serve per inizializzare i vari periferici interni al micro.
7. Il pin 13 della scheda Arduino
a. & una linea PWM
b. & collegato al LED integrato nella board
¢. @ una linea analogica.
8. La memoria RAM di Arduino:
a. @ di 32 KB e contiene dati e programma
b. 6 di 2K Be contiene dati e programma
c. 6132 KBe contiene solo dati
4. 8 di 2KB e contiene I dati.
Arduino contiene:
a. una memoria Flash da 32 KB per il programma
. una memoria Flash da 32 KB per il programma e i dati
. una memoria Flash da 128 KB per il programma
d, una memoria Flash da 128 KB per Il programma e i dati.
cuvtmmmasnareen SLL e ens
1. Scrivi 'istruzione che imposta Ia linea 3 del connettore come ingresso.
2. Scrivi un programma in Scratch e in C che fa lampeggiare il LED a 2 Hz (cio® due lampeggi completi al secondo).
A che velocita (in HZ) smetti di vedere il LED lampeggiare e sembra invece sempre acceso? Noti qualcosa di
diverso rispetto a quando & dawvero sempre acceso? E meno luminoso: perché?
3. Scrivi un programma in Scratch e in C che fa lampeggiare il LED a2 Hz per 2 secondi, poi resta spento per 2 secondi
II ciclo (lampeggio, spento, lampeggio, ec.) si ripete all'infinito. Quanti lampeggi fa a 2 Hz in 2 secondi? Perché
ti serve questa informazione?
Cap. 1 - Introduzione: conoscere Arduino 29{ SOLUZIONI
1. RISPONDI VERO O FALSO
4. Falso, @ una scheda che consiste In un intero sistema di
PO.
2. Vero: Uno, Mega, Leonardo, ecc.
3. Falso, @ un progetto Open Source e pub essere prodotto
da chiunque.
4, Falso, anche con sistemi Mac e Android
5. Vero I linguagalo di default & C++, ma possono essere
utilizzati altri linguaggi (java, scratch, labview ecc.).
6. Falso, & i 16MHz.
7. Falso, la linea & la 13.
8. Vero, Integrated Development Environment (ambiente
integrato di sviluppo).
=)
2, SCEGLI LE RISPOSTE CORRETTE (UNA 0 PIU)
La
Ze
3.__b, gif altrilinguaggi sono disponibili con altri IDE compa-
‘ibill
be
bd
(anche b ma non & del tutto completa)
b (anche d ma & normale che non lo sappiate)
d
ESERCIZI DI APPLICAZIONE
1. | pintode (3,1NPUT);
2[F
| LAMPEGGIO A 2 Hz del LED della board = linea 13)
| aie corrispordono’ 0-2 lawpeggi complecl al
Arner ee eee nena
[ste leaner ee area
Fe eee eet te oe
ar oleae one te sceerr ore SIG
ON OFF ON OFF __
! 1
ass
i
// 1a funzione di setup viene eseguita una volta
| // sola al reset o all*accensione della scheda
| void setup() { |
| 11 Suposts. 1a Vines 13. come uscita. |
pinMode(13, OUTPUT); |
|
| 11 1a funzione oop viene eseguita continuanente
11 Hino" quando non s4 spegne 1a scheda
void 100p() {
| digitalwrite(13, HIGH);
1/-accende 11 LED’ (tensione alta-HIGH) |
delay(250);_// aspetta 250 ns
dsgitalurste( 13, 109); |
JJ spegne il LED (tensione bassa=LOu) |
delay(250); // aspetta 250 ms |
9
FILE SOLUZIONI
‘Sketch Arduino &
Script S44
30
a [7 ]
Lawpesst0 di 2 s a 2 Hz del LED della board =
Linea 13 in 2s il LED fa 4 lampeggi, per cui
ssiiusa un ciclo con 4 ripetizioni, a seguire una,
attesa di 2
| on OFF on OFF
Tel
| // dichiarazione delle variabili
| ine §5
// vslano Ya variabile 4 per contare le
11 ripetizions del. lanpeggio
// 1a funzione di setup viene eseguita una volta
7/ sola al reset 0 all’accensione della scheda
void setup() {
7/ Amposta 1a Linea 13 cone uscita.
| pintode(a3, cuTpuT)s
y |
1/ 1a funzione loop viene eseguita continuamente
| #ino a // quando non si spegne 1a sched
| void loop) {
For ind <43i+4)4
digitalwrite(s3, HIGH);
// accende il LED (tensione altasHIGh)
delay(250);_// aspetta 250 ns
digitalwrite(13, LOW);
7] spegne 11 LED (tensione bassa=LOd)
delay(250); // aspetta 250 ms
}
delay(2000); // aspetta 2 s |
9
FILE SOLUZIONI
‘Sketch Arduino e
Script S4A
Cap. 1 - Introduzione: conoscere ArduinoCapitolo
Input e Output:
i pulsanti e 1 LED
1, Input e Output
2. Che cos’é un LED e come funziona
3. Come accendere un LED con Arduino
4. Come fornire un comando ON-OFF ad Arduino
5. Interruttore che comanda un LED
6. Pulsante che comanda un LED
1. 0 problema dei rimbalzi (bounce)
8. Altri esempi: monostabile e LED RGB
a
CONOSCENZE ABILITA
Input e output “Collegare un pulsante ad Arduino
Pulsanti e interruttori Collegare un LED ad Arduino
Funzionamento e caratteristiche Scegliere un resistore per limitare
dei diodi LED Ja corrente
LED RGB Comandare un LED con un pulsante
Funzionamento e caratteristiche Collegare un LED RGB ad Arduino
dei resistori per elettronica
“Se ho fatto qualche scoperta di valore,
cid é dovuto pili ad un’attenzione paziente che a qualsiasi altro talento.”
Isaac NewtonOgni sistema elettronico o meccanico o idraulico é dotato di ingressi e uscite.
Gli ingressi (vedi Fig. 1) sono gli elementi che inviano comandi o dati al siste-
ma di elaborazione e le uscite sono invece gli elementi su cui agisce il sistema.
Fig.t
Schema di un
generico sistema
Esempi di ingressi (vedi Fig. 2) sono i pulsanti della lavastoviglie o dell’ascen-
sore, le fotocellule, i mouse del computer e i sensori di presenza dei sistemi
anti-intrusione.
Fig. 2
Esempi di input.
32 Cap. 2 - Input e Output: i pulsanti e i LEDFig. 3
Esempi i output.
Esempi di output sono i display di segnalazione, le sirene di allarme e i motori
(vedi Fig. 3).
Sia per gli input che per gli output bene distinguere tra digitali e analogici.
Gli input e output digitali sono quelli che possono assumere solo due valori (ON-
OFF, 0 0 1, per esempio i pulsanti e motte lampade) mentre quelli analogici pos-
sono assumere valori diversi tra un minimo e un massimo. Per esempio, i sensori
di temperatura del riscaldamento di casa inviano al termostato i possibili vatori
corrispondenti alle diverse temperature, analogamente molti motori, come per
esempio quelli in corrente continua, possono essere comandati per funzionare a
diverse velocita, non sono solo accesi o spenti. Per cominciare occupiamoci di
input e output digitali illustrando due esempi molto diffusi: i pulsanti e i LED.
Cap. 2 - Input e Output: i pulsanti e i LED 332
Fig. 4
Tipi di LED utiizzti
nei dispositivi
elettronici
FARRAR ag
Fig. 5 - Vari tipi di LED.
Fig. 7
LED RGB (Red Green
Blue) in un monitor
alcuni tipi di LED
ad infrarossi utiizzat
nai telecomandi.
34
Che cos’é un LED e come funziona
| LED (Fig. 4 e 5) sono component elettronici ormai
di uso comune. Dapprima utilizzati come luci di se-
gnalazione nei dispositivi elettronici (le “lucine” de-
gli elettrodomestici, dei televisori, ecc.) oggi trova-
no applicazione anche nei sistemi di illuminazione
(lampade, semafori, ecc., vedi Fig. 6).
Fig. 6 - Lampada a LED.
In realta i LED sono utilizzati anche in applicazioni in cui sono meno evidenti:
+ televisori a LED integrano milioni di piccoli LED RGB (Red, Green e Blue),
ognuno dei quali corrisponde ad un punto luminoso (pixel) il cui colore di-
pende dalle intensita dei tre colori componenti (vedi box 3, pag. 52);
+ nei telecomandi che normalmente utilizziamo in casa (per la TY, il decoder o
la radio), la trasmissione dei comandi avviene in generale sfruttando un
gnale a infrarossi, che é generato usando un LED che emette luce non visibile
perché a frequenze inferior’ al rosso, limite della sensibilita dell’occhio umano
(da qui il nome di “luce” infrarossa).
Per capire che cos’é un LED e come funziona partiamo dal nome che gia dice
molto. LED significa Light Emitting Diode, cioé diodo emettitore di luce.
E quindi un tipo di diodo.
Il diodo, il cui simbolo é riportato in Fig.
elettronico che consente i | passaggio di correr
simbolo assomiglia a una freccia).
Cap. 2 - Input e Output: i pulsanti e i LEDFig. 8
Diodo generico:
simbolo elettrico e
dispositivo reale,
Fig. 9
Le:
a) simbolo elettrico;
) vista di fronte;
¢) vista dall’alto.
Anode > Cathode
(A) (k)
Il diodo standard viene utilizzato in tutti
quei casi in cui si vuole impedire il passag-
gio di corrente in un particolare verso (0
viceversa consentirlo nell’altro). Il diodo
viene prodotto in moltissime tipologie e utilizzato in altrettante applicazioni,
dai microcircuiti fino ai grandi dispositivi dell’industria che gestiscono poten-
ze dell’ordine dei MW (MegaWatt). Si pud dire che il diodo é il primo vero
componente elettronico; esso ha portato alla costruzione del transistor e, suc-
cessivamente, allo sviluppo di tutti i componenti dell’elettronica moderna. Il
diodo quindi é nato per svolgere una funzione diversa dal produrre luce. Nasce
per fare da “porta di sicurezza” per la corrente elettrica che pud passare solo
in un verso. Gli scienziati si sono per accorti che scegliendo opportunamente
i materiali da usare, si poteva ottenere un effetto interessante: |’emissione di
luce visibile al passaggio della corrente. Il simbolo del LED é quindi uguale a
quello del diodo, con Vaggiunta delle due freccette che indicano l’emissione
di luce (vedi Fig. 9).
aH
te a “| ~
Janooe “| camooe
a) > e)
Come evidenziato nella Fig. 9, c’é un terminale positivo (anodo +) e uno nega-
tivo (catodo —). Come abbiamo gia detto, la corrente circola in un solo verso,
per cui, se si collega una batteria nel verso sbagliato, la corrente non pud
passare e il LED non si accendera.
Descriviamo alcune peculiarita dei LED attualmente in commercio.
+ | LED sono dispositivi a basso consumo in relazione alla luce emessa (circa 1/5
rispetto alle lampade a incandescenza di pari luminosita).
‘Molti LED per funzionare hanno bisogno di una tensione di circa 2 V (1,5 volt
in genere) e di una corrente di qualche mA (5-10 mA in genere sono sufficien-
ti). La potenza assorbita, che si calcola con la relazione P = V-/, € quindi circa
P = 2 V-10 mA = 20 mW. Se usiamo 100 LED otteniamo una buona luminosita
consumando solo 2 watt (100-2 mW = 2000 mW = 2 W).
Per capire il significato quantitativo di queste considerazioni, si faccia riferi-
mento al Box 1 Le grandezze elettriche, riportato nella pagina seguente.
E possibile costruire LED che emettono luce di vari colori (rosso, giallo, verde,
blue, ec.) e, grazie a una scoperta abbastanza recente, anche luce bianca
da cui le lampade a LED che usiamo nel campo dell’illuminazione. Si possono
costruire LED che emettono luce anche fuori dal campo visibile (infrarosso),
con la possibilita di controllare molto bene la frequenza della luce emessa.
Cap. 2 - Input e Output: i pulsanti e i LED 35+ TLED hanno una durata superiore rispetto alle altre sorgenti per illuminazione,
anche se, attualmente, a causa della diffusione ancora limitata, costano di pi.
+ I LED devono essere alimentati con una tensione continua (cioé costante e
sempre con le stesse polarita). Per questo motivo le lampade a LED devono
integrare un circuito in grado di trasformare la tensione elettrica alternata
(AC) disponibile alle prese di casa in una tensione elettrica costante (DC) da
inviare ai LED (questo @ un elemento che incide sul costo).
Per comprendere il significato delle considerazioni che riguardano i segnali
elettrici gestiti da Arduino e, in generale, dai dispositivi che lavorano grazie
all’elettricita, si richiamano le grandezze elettriche fondamentali, le loro uni-
ta di misura e una breve definizione.
Quantita Qa {c) Carica elettrica degli elementi della struttura atomica: il protone ha
di carica coulomb | carica unitaria positiva q = 1,602 107° [C] e l'elettrone ha la stessa
carica con segno opposto.
Tensione Vv 1V1__ | tavoro compiuto da un generatore per spostare la carica unitaria q. Se
volt | un punto (morsetto) ha tensione di 1 V rispetto a un altro, significa
che tra i due punti c’é la differenza di potenziale (ddp) di 1 volt e i!
‘generatore che la sostiene comple un lavoro di 1J per portare da uno,
| allfaltro la carica di 1 C.
Corrente: t TAL Flusso ordinato di elettroni attraverso un materiale conduttore.
elettrica ampere | Per sostenere il moto degli elettroni occorre un generatore che li fa |
Circolare in un circuito elettrico collegato ai suoi morsetti. |
In un dircuito scorre una corrente di 1 ampere se una sua sezione @
attraversata da una carica di 1 Cin 1s.
Potenza vi [W] | Lavoro compiuto da un generatore di tensione V, che fa circolare la
wott | corrente /nelfunita di tempo. 1 watt = 1 volt x 1 ampere. |
1 Resistenza [0] _ | Rapporto tra le aifferenza dl potenziale V applicata al capi di un con |
ohm duttore e la corrente / che vi circola. La resistenza R di un conduttore
& costante e dipende dalla resistivita p [@-mm/m], dalla lunghezza L
Im] e dalla sezione 5 [mm] del conduttore, in base alla relazione:
L
| Rape
‘Conduttanza gel | ($0 (24 | Inverso detia resistenca
V_| siemens :
Frequenza f {Hz]__ | Numero di ripetiioni che una grandezza elettrica variable in modo
hertz _| periodico compie nel'unita di tempo.
| Period T | (sl secondo | E Vinverso della frequenza.
| Capacita Pera Tr | Bue superfcl conduttril separate da un isolante, se vengono portate
ne farad a una differenza di potenziale V accumulano cariche di segno oppo-
sto, per una quantita di carica complessiva Q. |
Linsieme delle superfici conduttrici (armature) con 'isolante (dielettrico)
realizza un condensatore; la capacita del condensatore si misura in
{arad(F} unital dimensioni notevol, per ut si utiizzanoisottomuitpli:
mF =F-103; uF = F-10%; nF = F10°; pF= F10% |
36 Cap. 2 - Input e Output: i pulsanti e i LED
Potrebbero piacerti anche
ARDUINO
Nessuna valutazione finora
ARDUINO
105 pagine
Eos Book1c
Nessuna valutazione finora
Eos Book1c
69 pagine