Scienze e Tecnologie Applicate Con Arduino

Potrebbero piacerti anche

Sei sulla pagina 1di 160
Sergio Bolognini PRESENTAZIONE “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 www.edatlas.it 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 SOLUZIONI Capitoto 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 159 Capitolo 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 Einstein Nella Fig. 1 é riprodotta la scheda Arduino. Figt Arduino UNO. ce cme d [e} etry Sul sito ufficiale www.arduino.cc 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 Arduino Fig2 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 7 Open 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) ‘ Serkat.prine (ennogeeed pia) ¢ Serdal.peine ("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 Arduino Open 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 9 9 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 Arduino Fig. 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 Arduino Fig. 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 Arduino La 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 15 Risorse 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: + www.arduino.cc - II sito originale, da dove partire. + scuola.arduino.cc - I\ sito che raccoglie alcuni tutorial del team Arduino. + playground.arduino.cc - Il forum, dove trovare risposte a vari quesiti. Proget per» fritzing.org/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. + learn.adafruit.com/category/learn-arduino - Adafruit & un importante ri- venditore americano di componenti elettronici. La sua sezione di apprendi- mento (learning) @ davvero ottima. + learn.sparkfun.com - come il precedente, Sparkfun vende componenti in tutto il mondo. + www.instructables.com/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 Arduino Fig. 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 17 Fig. 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 Arduino Dal sito http://arduino.cc/en/Main/ 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- A.un 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 http://arduino.cc/en/Main/ Software. Cap. 1 - Introduzione: conoscere Arduino 19 Comte 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 01.Basics 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 al 22 + 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 Arduino Alcune 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 http://s4a.cat/. 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 S4AFirmware16.ino (che possiamo trovare in http://vps34736.ovh.net/S4A/ S4AFirmware 16.ino). ‘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 Arduino Riconosciuta 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 $4A.cat dice che il programma funziona sicuramente con le schede Arduino Uno, Diecimila e 2008. Le altre schede “dovrebbero” funzionare. Cap. 1 - Introduzione: conoscere Arduino 25 26 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 Arduino Fig. 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 27 tt»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 Arduino 6. 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 Arduino Capitolo 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 Newton Ogni 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 LED Fig. 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 33 2 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 LED Fig. 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