Il 0% ha trovato utile questo documento (0 voti)
45 visualizzazioni120 pagine

Libro Kit Base Arduino

Questa guida pratica su Arduino fornisce un'introduzione alla computazione fisica, all'elettronica e alla programmazione, con l'obiettivo di rendere accessibili concetti complessi attraverso un approccio DIY. Include informazioni sui componenti elettronici, tutorial pratici e utilizza strumenti come Fritzing per facilitare il prototipaggio. È destinata a studenti, appassionati e professionisti che desiderano esplorare il mondo dell'elettronica e della robotica.

Tradotto da

ScribdTranslations
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, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
45 visualizzazioni120 pagine

Libro Kit Base Arduino

Questa guida pratica su Arduino fornisce un'introduzione alla computazione fisica, all'elettronica e alla programmazione, con l'obiettivo di rendere accessibili concetti complessi attraverso un approccio DIY. Include informazioni sui componenti elettronici, tutorial pratici e utilizza strumenti come Fritzing per facilitare il prototipaggio. È destinata a studenti, appassionati e professionisti che desiderano esplorare il mondo dell'elettronica e della robotica.

Tradotto da

ScribdTranslations
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, TXT o leggi online su Scribd

Una guida pratica sul mondo di Arduino

GUIDA BASE DI ARDUINO


GUIDA BASE DI ARDUINO
Hoja lasciata in bianco intenzionalmente
Scopo..................................................................................... 9 T
A
Cosa imparerò?.................................................................... 10 B
Fonte di informazione .................................................................. 10 L
A
1. Introduzione............................................................................ 11
D
1A. Computazione fisica................................................................12 E
2. Da tenere in considerazione................................................................. 13 C
O
2A. Negozio di Robotica...............................................................13
2B. Cose di Meccatronica.............................................................13 N
2C. Hardware libero ....................................................................14 T
Software libero E
2E. Creative commons ................................................................14 N
2F. Arduino .............................................................................15 Io
2G. Fritzing.............................................................................15 D
2H. Licencia de la obra ...............................................................16
O
3. Elettronica............................................................................. 17

3A. Concetto di elettronica.........................................................17


3B. Voltaje..............................................................................17
3C. Tensione DC..........................................................................18
3D. Tensione AC..........................................................................18
3E. Corrente ...........................................................................18
3F. Resistenza .........................................................................19
3G. Legge di Ohm........................................................................19
3H. Sistemi elettronici............................................................19
3I. Entrate............................................................................19
3J. Salidas ..............................................................................20
3K. Elaborazione del segnale..........................................................20
3L. Segnali elettronici..............................................................21
3M. Digitale variabile....................................................................21
3N. Variabile analoga..................................................................21
3O. Entrata/uscita digitale ............................................................22
3P. Ingresso/uscita analogica...........................................................22
3Q. Divisore di tensione .................................................................22
3R. Convertitore analogico-digitale........................................................22
3S. Modulazione a larghezza di impulso PWM..........................................23
3T. Comunicazione seriale..............................................................23

4. Componenti Elettronici.......................................................... 25

4A. Microcontrollore..................................................................25
4B. Protoboard.........................................................................26
4C. Resistenza ........................................................................26
4D. Tabella dei colori delle resistenze............................................27
4E. Diodo................................................................................28
4F. Transistor.......................................................................... 28
4G. Condensatore ...................................................................... 28
4H. LED .................................................................................. 29
4I. LED RGB ........................................................................... 29
[Link]............................................................................ 29
Interruttore Reed 4K ....................................................................... 30
4L. Potenziometro.................................................................... 30
4M. Fotocelda.......................................................................... 30
4N. Zumbatore o buzzer............................................................... 31
4O. Motore CC........................................................................... 31

5 Programmazione............................................................................ 33

5A. Concepto de programación...................................................... 33


5B. Lenguaje de programación...................................................... 34
5C. Linguaggio macchina................................................................ 34
5D. Linguaggio assembly........................................................... 34
5E. Linguaggio di alto livello ........................................................... 35
5F. Algoritmo .......................................................................... 35
5G. Corpo di un programma in Arduino............................................ 35
5H. Strutture ........................................................................ 36
5I . Variabili........................................................................... 36
5J. Operatori booleani............................................................ 36
5K. Operatori di confronto.................................................... 36
5L. Operatori matematici........................................................ 37
5M. Strutture di controllo........................................................... 37
5N. Condizionali ..................................................................... 37
5O. Cicli............................................................................... 37
5P. Funzioni.......................................................................... 38
5Q. Funzioni digitali............................................................... 38
5R. Funzioni analoghe............................................................... 39
5S. Riferimento rapido per la programmazione............................................. 40

6. Arduino .................................................................................. 43

6A. Progetto Arduino ................................................................. 43


6B. Famiglia Arduino .................................................................. .44
6C. Espandere Arduino con gli shield ............................................... 45
6D. Placca Arduino Uno e le sue parti ................................................. 46
6E. Installazione dei driver................................................................. 48
6F. Conoscere il software Arduino................................................ 51
6G. Caricando il mio primo programma.................................................. 52

7. Kit di base................................................................................ 55

7A. Descrizione........................................................................ 55
7B. Distribuzione........................................................................ 55
7C. Foto ............................................................................... 56
8. Fritzing.................................................................................. 57

8A. Software............................................................................57
8B. Vista protoboard...................................................................57
8C. Vista esquema .....................................................................58
8D. Vista PCB—Circuito impresso .....................................................58
8E. Esercizio master...................................................................59

9. Tutoriales............................................................................... 60

T0. Scopri come sono i tutorial ..................................................60


T1. Ciao Mondo–LED lampeggiante..................................................62
T2. Accendere un LED con un pulsante...............................................66
T3. Lettura seriale di un ingresso digitale...........................................70
T4. Lettura seriale di un ingresso analogico .........................................74
T5. Escritura serial.....................................................................78
T6. Accendere un LED tramite PWM .......................................................82
T7. Controllo ON/OFF con potenziometro ...........................................86
T8. Controllo di un LED con una fotocella..........................................90
T9. Contatore di impulsi...............................................................94
T10. Interruttore magnetico per un allarme visivo...............................98
T11. LED RGB appoggiato su tabella dei colori ...................................... 102
T12. Controllo ON/OFF di un motore................................................. 106
T13. Controllo PWM di un motore................................................ 110
T14. Generare toni con un buzzer................................................. 114
Foglio lasciato in bianco in modo intenzionale
PROPÓSITO

Conoscere il funzionamento delle cose è qualcosa che ci siamo chiesti


fin dall'inizio dei tempi; oggi ci confrontiamo con una realtà
dove abbondano l'automazione, la domotica (automazione delle
case e edifici), l'interazione delle persone con le macchine, la
elettronica, meccanica e programmazione.

Quasi qualsiasi processo che possiamo immaginare ha una percentuale di


dipendenza da queste macchine, per esempio: La tua sveglia ha suonato alle
6 del mattino per venire a scuola o andare al lavoro, quella macchina, orologio,
ha lavorato per tutta la notte per avvisarti alla fine che era ora di dis-
pertar.

Lo scopo di questa guida è affrontare il concetto di calcolo fisico che


è la capacità di interazione e comunicazione di una macchina con i
umani, usando sensori e attuatori. Le decisioni su questo le prenderà
prendere un microcontrollore che si trova sulla scheda Arduino.
La scheda Arduino è il cuore di questa guida.

9
COSA IMPARERÒ?

Muchas veces pensamos que los temas tecnológicos requieren de gran habi-
lità tecnica e di una grande conoscenza, ma questo non è vero. Vogliamo
che con lo sviluppo di questa guida tu capisca che molti di quei processi
tecnologici sono semplici da capire e quelli che sono complessi sono la
unione di molti processi semplici.

In questa guida imparerai a immaginare e concretizzare tutte le idee in concetti


tangibili di cui puoi essere orgoglioso, dato che è stata la tua idea e tu lo
hai sviluppato ;)

F Wikipedia è una delle enciclopedie cloud più grandi che possano esistere,
U puoi trovare una grande varietà di informazioni in diverse lingue e sei libero di
E usarla para aprender.
N
La presente guida incorpora contenuti di Wiki-
T pedia (testo e immagini) con l'animo di ex-
E esplicare i diversi concetti che vengono enunciati.
Il contenuto di Wikipedia preso in questo
D la guida è stata trascritta testualmente in qualche-
E nei casi, in altri casi i concetti sono stati
riadattato per poter comprendere più facilmente
Io mentre l'idea.
N
F Per riferire che abbiamo preso contenuti
O da Wikipedia, accanto a ciascun concetto tecnico
troverai il logo di Wikipedia di questo
R
maniera potrai leggere più contenuti se cerchi
M lo stesso concetto su Wikipedia.
A
C Wikipedia è di contenuto libero, in modo che tutto il testo sia disponibile sotto
Io laLicenza Creative Commons-Attribuzione-Condividi allo stesso modo 3.0 (CC-BY-SA).La maggiore
O parte del contenuto è disponibile anche sotto laLicencia de Documentación
Libre GNU (GFDL). Questo significa che il contenuto di Wikipedia può essere distribuito e
N
collegarsi secondo quanto stabilito in queste licenze.

10
1. INTRODUZIONE

La Negozio di Robotica e il Team di Cose di Meccatronica portano questa guida


che affronta l'apprendimento sul concetto DIY (Fai da te) o in es-
italiano ―Fallo tu stesso‖. Dopo una selezione accurata dei componenti-
I dispositivi elettronici e supportati dalla scheda Arduino creano il prodotto Kit
Básico di Arduino supportato da questa guida.

Affrontiamo temi fondamentali come l'hardware e il software libero, rivedi-


sanding in modo accurato il progetto Arduino e appoggiandoci al Soft-
ware Fritzing per ottenere montaggi molto accattivanti e simili alla realtà
papà. Non è necessario che tu sappia di elettronica e programmazione perché con
Nei seguenti due capitoli affrontiamo i concetti dalla base.
fino a quello fondamentale. Dopo aver conosciuto questi concetti abbiamo un capí-
titolo dedicato a farti conoscere i componenti elettronici come un LED,
un motore, un buzzer e molti altri. Abbiamo progettato un capitolo speciale
su Arduino e Fritzing che non puoi perdere di vista. Questo Kit di Base
è ideale per ogni ambito di apprendimento dalla scuola all'università
dati e se sei un appassionato o un goloso non puoi fare a meno di avere questa
guida in casa, un capitolo intero è dedicato a mostrare il kit di sotto a
arriba :).

Finalmente siamo arrivati a una parte molto speciale, al capitolo dei tutorial
les, dove passo passo si spiegano 14 esempi, durante il reco-
Fai da te
Nell'ambiente di apprendimento ti imbatterai in domande, suggerimenti ed esercizi.
cicios.

11
Computazione fisica
La computazione fisica significa la costruzione di sistemi inter-
attivi fisici mediante l'uso di software e hardware che possono
sentire e rispondere al mondo analogico. Sebbene questa definizione sia
sufficientemente ampia per comprendere aspetti come i sistemi
intelligenti di controllo del traffico automobilistico o i processi di
1A automazione delle fabbriche, in un senso più ampio, la computa-
La scienza fisica è un quadro creativo per comprendere la relazione
degli esseri umani nel mondo digitale. Nella pratica, spesso
il termine descrive l'arte fatta a mano, design di progetti DIY
o passatempi che utilizzano sensori e microcontrollori per tra-
condurre ingressi analogici a sistemi basati su software, e/o con-
trolare dispositivi elettromeccanici come motori, servomotori, illuminazione
nazione o altro hardware.

Altre implementazioni di computa-


lavoro fisico con il riconoscimento
manto della voce, che viene catturato e
interpretano le loro onde sonore attraverso
di microfoni o altri dispositivi di
rilevamento delle onde sonore, anche il
visione artificiale, che applica qualcosa-
ritmi ai video rilevati da
un tipo di macchina fotografica. Interfacce tattili-
i suoni sono anche un esempio della com-
punizione fisica.

Il prototipaggio (creare assemblaggi rapidi con l'aiuto di un proto-


scheda e componenti di base dell'elettronica) gioca un ruolo impor-
tante nella computazione fisica. Strumenti come Arduino e Frit-
zing sono utili per designer, artisti, studenti e in-
tusiastas perché aiutano a elaborare prototipi rapidamente.

12
[Link] TENERE IN CONSIDERAZIONE

Ti presentiamo un'informazione di interesse che ti consigliamo di avere.


in considerazione per lo sviluppo della presente guida. Scopri di più su i
sviluppatori e i pilastri di questo eccellente materiale.

Negozio di Robotica
LaTienda di Robótica nasce
nel 2010 con l'idea di
mettere a disposizione di estu-
diantes, professionisti e afi-
cionados della robotica i migliori prodotti usati nel mondo per
sviluppare i propri progetti.

La responsabilità sociale che il mondo ci chiede fa sì che attraverso la


2A
Negozio di Robotica e il sito web Cose di Meccatronica possiamo confrontare
tir: noticias, eventos, tutoriales, proyectos entre otros. La Tienda de
La robotica si trova nella città di Bogotá D.C, Colombia ed è
solo virtuale. Ti ringraziamo per aver acquistato i nostri prodotti con il migliore
prezzo di mercato. Contattaci per saperne di più su di noi.

Cose di Meccatronica
Cose di Meccatronica
Gennaio 2007, dopo aver
tre tentativi del suo creatore
Yesid Hernández di fare pagine-
nas web. Fino ad Aprile 2009 è stato ospitato su wordpress (http://
[Link]). A partire da Maggio 2009, Cose di Mecatronica-
Nica ha acquisito un dominio proprio con l'idea di continuare a condividere informazioni.
formazione e aiutare a far crescere la comunità di Meccatronica in Spagnolo. 2B
In principio nacque solo come un sito in cui si pubblicasse e si condividesse
i progetti meccatronici realizzati da Ibraim Yesid Hernández Olarte,
ora cerca di essere un ambiente collaborativo di tutte le persone e organizza-
azioni interessate a condividere informazioni sulla Meccatronica.
La partecipazione al BLOG proviene principalmente dagli studenti del SENA,
ma non solo di loro e si cerca di creare una comunità condividendo
informazioni su piccoli e grandi progetti in cui siamo tutti coinvolti
lavorando.

13
Hardware libero
Se chiama hardware libera i dispositivi di hardware
cui le specifiche e i diagrammi schematici sono di
accesso pubblico, sia sotto forma di pagamento o di for-
ma gratuita. La filosofia del software libero (le idee
sulla libertà della conoscenza) è applicabile a quella del
hardware libero. Si deve ricordare in ogni momento che
2C libero non è sinonimo di gratis. L'hardware libero forma
parte della cultura libera.

Poiché l'hardware comporta costi vari


nessuna definizione di software libero può essere applicata direttamente senza
modifica. Al contrario, il termine hardware libero è stato utilizzato principalmente per
riflettere l'uso del software libero con l'hardware e il lancio libero di
le informazioni riguardanti l'hardware, spesso incluso il lancio-
mento dei diagrammi schematici, design e montaggi.

Software libero
Il software libero (in inglese free software, anche se questa
denominazione a volte viene confusa con "gratis"
per l'ambiguità del termine "free" nella lingua
2D inglese, per cui si usa anche "software libero" e
"libre logico") è la denominazione del software che
rispetta la libertà degli utenti riguardo al proprio prodotto
acquisito e, quindi, una volta ottenuto può essere usato-
fatto, copiato, studiato, modificato e ridistribuito
liberamente. Secondo la Free Software Foundation, il software-
ware libre se refiere a la libertad de los usua-
diritti di eseguire, copiare, distribuire, studiare, modificare il software e
distribuirlo modificato.

Creative Commons
Creative Commons (CC) è un'organizzazione non
gubernamentale senza scopo di lucro che sviluppa
piani per contribuire a ridurre le barriere legali
2E dalla creatività, attraverso una nuova legislazione
e nuove tecnologie. Le licenze Creative Com-
mons o CC sono ispirate alla licenza GPL (Licenza Pubblica Generale) della Free
Fondazione Software, condividendo buona parte della sua filosofia. L'idea principale
dietro di esse è possibile un modello legale sostenuto da strumenti informatici
cas, per facilitare così la distribuzione e l'uso dei contenuti.

Esiste una serie di licenze Creative Commons, ognuna con diversi configura-
zioni, che consente agli autori di decidere il modo in cui la loro opera sarà
circular su internet, offrendo libertà di citare, riprodurre, creare opere
derivate e offrirle pubblicamente, sotto certe diverse restrizioni.
La licenza di quest'opera è esposta a pagina 16.

14
Arduino
Arduino è una piattaforma di elettronica
aperta alla creazione di prototipi basa-
da un software e hardware libero, flessibile e
facile da usare. È stato creato per artisti, progetta-
dolorosi, appassionati e chiunque sia interessato a
creare ambienti o oggetti interattivi.

Arduino può prendere informazioni dall'ambient-


no attraverso i suoi pin di ingresso, per
2F
questa è tutta una gamma di sensori
usata e può influenzare ciò che la circonda controllando luci, motori e altri ac-
tuadores. Il microcontrollore sulla scheda Arduino viene programmato tramite il linguaggio
di programmazione Arduino (basato su Wiring) e l'ambiente di sviluppo Arduino
(basato su Processing). I progetti realizzati con Arduino possono essere eseguiti senza
necessità di collegarlo a un computer, sebbene abbiano la possibilità di farlo e
comunicare con diversi tipi di software (ad es. Flash, Processing, MaxMSP).

Le schede possono essere fatte a mano o acquistate montate in fabbrica; il software


può essere scaricato gratuitamente. I file di design di riferimento (CAD)
sono disponibili sotto una licenza aperta, quindi sei libero di adattarli ai tuoi
necesidades.

[Link]

Fritzing
Fritzing è un programma di automazione del design.
elettronico libero che cerca di aiutare designer e artisti
affinché possano passare da prototipi (usando, ad esempio,
placche di prova) a prodotti finiti.

Fritzing è stato creato secondo i principi di Processing e Ar-


duino e consente a designer, artisti, ricercatori e
aficionados documentare i loro prototipi basati su Arduino e
creare schemi di circuiti stampati per il successivo
2G
fabbricazione. Inoltre, dispone di un sito web complementare che aiuta a confrontare
tirare e discutere bozze, esperienze e ridurre i costi di produzione.

[Link]

15
Licenza dell'opera

2H

[Link]/licenses/by-nc-sa/3.0/[Link]

16
3. ELETTRONICA

Sin dall'inizio di questo capitolo verrà introdotto il glossario tecnico


che ha l'elettronica e che alla fine di questo molto probabilmente finirai per ma-
negar in modo esperto.

Concetto di elettronica
Studia e impiega sistemi la cui funzione
Il rinvenimento si basa sulla conduzione e il
controllo del flusso degli elettroni
altre particelle caricate elettricamente
te.

Il design e la grande costruzione di


circuiti elettronici per risolvere
i problemi pratici fanno parte della
3A
elettronica e dei campi della ingegneria
niería elettronica, elettromeccanica e
l'informatica nel design del software
per il suo controllo.

L'elettronica sviluppa attualmente una grande varietà di compiti. I principali


gli usi dei circuiti elettronici sono il controllo, l'elaborazione, la distribuzione di
informazioni, la conversione e la distribuzione dell'energia elettrica. Questi due usi
implicano la creazione o la rilevazione di campi elettromagnetici e correnti elettriche
tricas.

Guarda intorno a te radio, televisore, PC, telefono cellulare, lavatrice tutti


loro hanno elettronica.

Tensione

Una magnitudine fisica che spinge gli elettroni a ciò


largo di un conduttore (ad esempio un cavo) in
un circuito elettrico chiuso, provocando il flusso di 3B
una corrente elettrica. La sua unità è il Volt (V). L'ins-
Lo strumento usato per misurare la tensione è conosciuto
come voltmetro.

17
Tensione DC
È il flusso continuo di elettroni attraverso
un conduttore tra due punti di diverso potenziale. In
la corrente continua le cariche elettriche circolano sempre
pre nella stessa direzione, è continua la corrente man-
ha sempre la stessa polarità. Nella norma sistemà-
Nella tradizione europea, il colore nero corrisponde al negativo e il

3C rosso al positivo o semplicemente si simboleggia per il


positivo con VCC, +, VSS e per il negativo con 0V, -, GND.

Molti apparecchi necessitano di corrente continua per


funzionare, su tutti quelli che portano elettrónica
(attrezzature audiovisive, computer, ecc.), per
Ciao, si utilizzano alimentatori. Puoi farlo.
trovare nelle batterie, pile, uscita di carica-
dolori al computer.

Tensione AC
È la corrente elettrica in cui la magnitudine e
la direzione varia ciclicamente. L'onda di
la corrente alternata più comunemente utilizzata è la
3D di un'onda seno.

La tensione AC è quella che arriva alle prese di elettricità


papà delle famiglie e delle aziende, è molto comune
trovarla nelle prese di corrente dove si co-
innettano i nostri elettrodomestici. Tuttavia, i segnali audio
e le onde radio trasmesse dai cavi elettrici sono anche esempi
di corrente alternata. In questi usi, il fine più importante
di solito è la trasmissione e il recupero delle informazioni
codificata (o modulata) sulla segnale della CA.

Corrente
È il flusso di elettroni attraverso un conduttore o semiconduttore
tor in un senso. L'unità di misura di questa è l'ampere (A).
Una corrente elettrica, poiché si tratta di un movimento di
3E le cariche producono un campo magnetico, un fenomeno che può
sfruttare nell'elettromagnete, questo è il principio di funzionamento
movimento di un motore.

Lo strumento utilizzato per misurare l'intensità della corrente


elettrica è il galvanometro che, calibrato in ampere, si chiama
amperimetro, collocato in serie con il conduttore la cui
intensità che si desidera misurare.

18
Resistenza

È la proprietà fisica attraverso la quale tutta la materia-


tendono a opporsi al flusso della corrente. L'unità
di questo parametro è l'Ohmio (Ω). Puoi trovare 3F
resistenze nei riscaldatori elettrici, schede
elettroniche, le stufe sono molto utili per limitare il passaggio
della corrente.

Legge di Ohm
La legge dice che la corrente (I) che circola per
un conduttore elettrico è direttamente proporzionale
al voltaggio (V) e inversamente proporzionale a
la resistenza (R). 3G
La piramide a destra è molto utile per conoscere
la formula a cui è uguale la variabile che tappo con
il dito, per esempio: Copri con il tuo dito la V
(voltaggio), quindi il voltaggio sarà uguale a I
(corrente) per R (resistenza), un'altra, tappo I
(Corrente), I sarà uguale a V diviso R.

Sistemi elettronici
Un sistema elettronico è un insieme di circuiti che interagiscono
úan entre sí para obtener un resultado. Una forma de entender
i sistemi elettronici consistono nel dividerli in ingressi, uscite- 3H
l'elaborazione del segnale.

Entradas
Le entrate o Inputs: Sono sensori (o trasduttori) elettronici
cos o meccanici che prendono i segnali (in forma di tempera-
tura, pressione, umidità, contatto, luce, movimento, pH ecc.
del mondo fisico e le trasformano in segnali di corrente o 3I
tensione

Ad esempio un sensore di temperatura, un pul-


sador, una fotocella, un potenziometro, un
sensore di movimento tra molti altri.

19
Salidas
Le uscite o Outputs: Sono attuatori o altri dispositivi (anche
trasduttori) che convertono i segnali di corrente o tensione in
segnali fisicamente utili come movimento, luce, suono, forza
rotazione tra gli altri.
3J
Per esempio: un motore che gira, un LED o un sistema di luci che si
si accende automaticamente quando sta diventando buio, un
buzzer che genera diversi toni.

Elaborazione del segnale

Si realizza mediante circuiti di elaborazione dei segnali


generalmente conosciuti come microcontrollori. Consistono
3K in pezzi elettronici collegati insieme per manipolare,
interpretare e trasformare i segnali di tensione e corrente
provenienti dai sensori (Entrate) e prendere le rispettive
prendere decisioni per generare azioni nelle uscite.

Riepilogo dei Sistemi Elettronici

Prendiamo come esempio un televisore. La sua entrata è un segnale analogico ricevuto


per un'antenna o per un cavo. I circuiti integrati all'interno della televisione
estraggono le informazioni sulla luminosità, il colore e il suono di questo segnale. I dispositivi
I dispositivi di uscita sono uno schermo LED che converte i segnali elettronici in immagini.
noi visibili su uno schermo e degli altoparlanti.

Un altro esempio può essere quello di un circuito che controlla la tempera-


tura di un luogo, il sensore di temperatura e il circuito integrato
si occupa di convertire il segnale di ingresso in un livello di tensione
appropriato e se la temperatura registrata è molto alta il
circuito integrato invia le informazioni a un motore per
che accenda il ventilatore e rinfreschi il luogo.

20
Segnali elettronici
Le entrate e le uscite di un sistema elettronico saranno considerate
radas como las señales variables. En electrónica se trabaja con
variabili che vengono assunte sotto forma di tensione o corrente, queste
possono essere comunemente denominate segnali. 3L
Le segnali possono essere fondamentalmente di due tipi
descritti di seguito: Digitale o analogico

Digitale variabile

Sono anche chiamate variabili discrete. Si caratteri-


zan per avere due stati distinti e per quello 3M
tanto si possono chiamare binarie. Essendo queste va-
variabili più facili da trattare (in logica sarebbero i
valori Vero (V) e Falso (F) o potrebbero essere 1 o
0 rispettivamente).

Un esempio di un segnale digitale è l'interruttore


del campanello di casa tua, perché questo interruttore
ha due stati: premuto e non premuto

Variabile analoga

Sono quelle che possono prendere un numero infinito di


valori compresi tra due limiti. La maggior parte di
I fenomeni della vita reale sono segnali di questo tipo.
(suono, temperatura, voce, video, ecc.)
3N

Un esempio di sistema elettronico analogico


è un diffusore, che si usa per amplificare
il suono in modo che esso sia udito da una
grande udienza. Le onde sonore che sono
analogiche nel loro'origine, vengono catturate da un
microfono e convertite in una piccola varia-
cion analógica di tensione denominata
segnale audio.

21
Ingresso / uscita digitale

30
Ingresso Uscita Ingresso
Pulsatore LED Interruttore Reed

Ingresso / uscita analogica

3P

Ingresso Uscita Ingresso


Fotocella Motore DC Potenziometro

Divisore di tensione
Un divisore di tensione è una configurazione di circuito elettrico
trico che distribuisce la tensione di una fonte (Vin) tra un
o più resistenze (R1, R2) collegate in serie (una a
continuazione di un'altra).
3Q

Conversore analogico-digitale CAD o ADC


Un convertitore (o convertitore) analogico-digitale (CAD), (o tam-
bién ADC dell'inglese "Analog-to-Digital Converter" è un dispositivo-
dispositivo elettronico capace di convertire un ingresso analogico di
tensione in un valore binario. Viene utilizzato in apparecchiature elettroniche
3R come computer, registratori audio e video, e attrezzature
pos di telecomunicazioni. Il segnale analogico, che varia da
forma continua nel tempo, si collega all'ingresso del dis-
positivo e si sottopone a un campionamento a una velocità
fissa, ottenendo così un segnale digitale in uscita dallo stesso.

22
Modulazione a larghezza di impulso PWM
La modulazione a larghezza di impulso (nota anche come PWM, acronimo inglese di)
La modulazione della larghezza dell'impulso di un segnale o fonte di energia è una tecnica in cui
si modifica il ciclo di lavoro di un segnale periodico (una sinusoidale o un quadra,
per esempio), sia per trasmettere informazioni attraverso un canale di comunicazione 3S
azioni o per controllare la quantità di energia che viene inviata a un carico.

Ad esempio, se applichiamo il PWM a un LED, possiamo variare la sua intensità di luminosità e se


applichiamo un PWM a un motore DC e riusciamo a variare la sua velocità con il
caratteristica di mantenere il suo paio (forza) costante.

Comunicazione seriale
È un'interfaccia di comunicazione di
dati digitali, frequentemente utili
dato da computer e periferiche,
dove l'informazione viene trasmessa- 3T
da bit a bit inviando un solo bit alla
vez. Uno dei suoi usi è monitorare a
attraverso lo schermo del computer
lo stato del periférico
connesso, ad esempio premendo la lettera A sulla tastiera deve accendersi
un LED connesso in remoto al computer.

ESCANEA CON IL TUO


SMARTPHONE

CERCA T03AB
COSI

VISITA LA OPZIONE DI

23
Hoja dejada en blanco de manera intencional

24
4. COMPONENTI ELETTRONICI

Diversi componenti elettronici uniscono le loro forze per raggiungere applicazioni


cose fantastiche come ad esempio il televisore di casa tua o il computer,
Dentro di essi troverai schede con resistenze, condensatori
res, circuiti integrati, transistor tra gli altri.

Microcontrollore
Un microcontrollore (abbreviato μC, UC o MCU) è un circuito
programmabile integrato, capace di eseguire gli ordini registrati
nella sua memoria. È composto da diversi blocchi funzionali,
i quali svolgono un compito specifico. Un microcontrollore
include al suo interno le tre unità funzionali principali:
unità centrale di elaborazione (CPU), memoria e periferiche di ingresso e uscita
(I/O).

Affinché possa controllare qualche processo 4A


è necessario creare e poi salvare nel
memoria EEPROM del microcontrollore
un programma, che può essere scri-
a linguaggio assembly o un altro len-
guaje per microcontrollori; deve essere
codificato in sistema numerico esadecimale
cimal che cos'è finalmente il sistema che
fa lavorare il microcontrollore quando
questo è alimentato con la tensione adeguata e associato a dispositivi analogici e
discreti per il loro funzionamento.

I microcontrollori rappresentano la stragrande maggioranza dei chip venduti, hai-


distribuiti sicuramente tra gli elettrodomestici della tua casa uno o due
dozzine di microcontrollori. Possono essere trovati in quasi qualsiasi dispositivo
elettronici come automobili, lavatrici, forni a microonde, telefoni, Arduino.

I microcontrollori vengono utilizzati principalmente per ricevere segnali da dispositivi di


entrata/uscita, con il grande vantaggio di poter fare a meno di qualsiasi altro
circuiteria esterna.

Le porte di I/O (ingresso/uscita o I/O) in


il microcontrollore, si raggruppa in porte
di 8 bit di lunghezza, il che consente di leggere
dati dall'estero o scrivere in essi dal
interno del microcontrollore, la destinazione è il
lavoro con dispositivi semplici come relè,
LED, motori, fotocellule, pulsato-
ris o qualsiasi altra cosa che le si
accada al programmatore.

25
Protoboard
È una scheda riutilizzabile usata per costruire prototipi di circuiti elettronici senza
saldatura. Composte da blocchi di plastica perforati e numerosi fogli
delicate di una lega di rame, stagno e fosforo

4B

Vista reale Connessioni interne

Resistenza

4C

Simbolo Componente

È un materiale composto da carbone e altri elementi resistivi per ridurre la


corrente che passa. Si oppone al passaggio della corrente. La corrente massima in un
il resistore è condizionato dalla massima potenza che può dissipare il suo corpo.
Questa potenza può essere identificata visivamente a partire dal diametro senza che sia
è necessaria un'altra indicazione. I valori più comuni sono 0,25 W, 0,5 W e 1 W.

Il valore della resistenza elettrica si ottiene leggendo le cifre come un


numero di una, due o tre cifre; si moltiplica per il moltiplicatore e si
ottiene il risultato in Ohm (Ω).

Q Completa in base alla tabella dei colori della pagina seguente


U
Io 1- 2-
Z _____Ω
_____Ω

26
Tabella dei colori delle resistenze

4D

Esempio

La caratterizzazione di una resistenza di


2.700.000Ω (2,7MΩ), con una tolleranza di
±10%, sarebbe quella rappresentata nella figura:

1ª cifra: rojo (2)

2ª cifra: viola (7)

Moltiplicatore: verde (100000)

Tolleranza: argentato (±10%)

27
Diodo

4E
Simbolo Componente
Un diodo è un componente elettronico a due terminali che permette la circolazione
della corrente elettrica che lo attraversa in un solo senso. Ha due parti: il cáto-
do e l'anodo.

Transistor

4F
Símbolo Componente
Il transistor è un dispositivo elettronico a semiconduttore che svolge funzioni di
amplificatore, oscillatore, commutatore o rettificatore. Ha tre parti: la base (B), il
emettitore (E) e collettore (C).

Attualmente si trovano praticamente in tutti gli apparecchi domestici di uso


diario: radios, televisores, grabadoras, reproductores de audio y video, hornos de
microonde, lavatrici, automobili, apparecchi di refrigerazione, allarmi, orologi di
quarzo, computer, calcolatrici, stampanti, lampade fluorescenti
apparecchi di raggi X, tomografi, ecografi, lettori mp3, telefoni
cellulari, ecc.

Condensatore

4G
Simbolo Componente
Un condensatore o capacitore è un dispositivo utilizzato nell'elettronica, capace di
immagazzinare energia mantenendo un campo elettrico. È formato da una coppia di
superfici conduttrici, generalmente sotto forma di lamine o placche, in situazione
di influenza totale separate da un materiale dielettrico o dal vuoto.
Le placche, sottoposte a una differenza di potenziale, acquisiscono una deter-
minada carica elettrica, positiva in una di esse e negativa nell'altra.

28
LED

Simbolo Componente
4H
Un LED (Diodo emettitore di luce, anche "diodo luminoso") è un diodo semiconduttore
che emette luce. Vengono utilizzati come indicatori in molti dispositivi,
e ogni volta con maggiore frequenza nell'illuminazione. I LED
presentano molti vantaggi sulle sorgenti di luce incandescenti
te come un consumo di energia molto inferiore, maggiore tempo di
vita, dimensioni più piccole, grande durabilità e affidabilità.

Il LED ha una polarità, un ordine di connessione, e se lo si connette al contrario


si può bruciare, controlla i disegni nella parte superiore per conoscere a
cosa corrisponde al positivo e al negativo.

LED RGB

4I

Simbolo Componente

Un LED RGB è un LED che incorpora nel suo stesso involucro tre
LED, è RGB perché R (rosso), G (verde) e B (blu)
così si possono formare migliaia di colori regolando in modo indivi-
duale ogni colore. I tre LED sono uniti dal negativo o catodo.

Pulsante

Simbolo Componente
4J
Un pulsante o tasto viene utilizzato per attivare una funzione. I pulsanti sono per lo
general attivati quando premuti, normalmente con un dito. Un pulsante di un dispositivo
Il sito elettronico funziona generalmente come un interruttore elettrico, cioè in
su interno ha due contatti, se è un dispositivo NA (normalmente aperto)
a) o NC (normalmente chiuso), con cui premendolo si attiverà la fun-
ción inversa di quella che in quel momento stai effettuando.

29
Interruttore Reed

4K
Simbolo Componente

L'interruttore Reed è un interruttore elettrico attivato da un campo magnetico, per


esempio con un magnete. Quando i contatti sono normalmente aperti, si chiudono
in presenza di un campo magnetico; quando sono normalmente chiusi si
si aprono in presenza di un campo magnetico. Un uso molto esteso si può
di trovare nei sensori delle porte e delle finestre degli allarmi anti-
robo, il magnete è fissato alla porta e l'interruttore reed è sul telaio.

Potenziometro

4L
Simbolo Componente
Un potenziometro è una resistenza il cui valore di resistenza è variabile. Di questa
in modo indiretto, è possibile controllare l'intensità della corrente che scorre attraverso
Un circuito si connette in parallelo, o controlla la tensione collegandolo in serie.
Sono adatti per essere utilizzati come elemento di controllo negli apparecchi
elettronici. L'utente agisce su di essi per variare i parametri
normali di funzionamento. Ad esempio, il volume di una radio.

Fotocella

4M
Simbolo Componente
È una resistenza, il cui valore in ohm varia in base alle variazioni della luce che incidono.
Una fotocellula presenta un basso valore della sua resistenza alla presenza di luce e
un alto valore di resistenza in assenza di luce.

Possono essere trovati in molti articoli di consumo, come ad esempio


in telecamere, misuratori di luce, orologi con radio, allarmi di sicurezza o
sistemi di accensione e spegnimento dell'illuminazione pubblica delle strade.

30
Zumbador o buzzer

4N
Simbolo Componente
Il zumbador, buzzer in inglese, è un trasduttore elettroacustico che produce un
suono o ronzio continuo o intermittente di uno stesso tono. Serve come meccanismo
di segnalazione o avviso, e sono utilizzati in più sistemi come nelle automobili
o in elettrodomestici. Inizialmente questo dispositivo era basato su un sistema
elettromeccanico che era simile a una campana elettrica ma senza il battacchio metallico
co, che imitava il suono di una campana.

La sua costruzione consta di due elementi, un elettromagnete e una lamina metallica di


acero. Il ronzio può essere collegato a circuiti integrati speciali per così
ottenere toni diversi. Quando viene attivato, la corrente passa attraverso la bobina
del elettromagnete e produce un campo magnetico variabile che fa vibrare la
lama di acciaio sulla armatura.

Motore CC

4O
Simbolo Componente
Il motore a corrente continua (DC) è una macchina che converte l'energia elett
trica in meccanica, provocando un movimento rotatorio. Questa macchina di corrente
continua è una delle più versatili. Il suo facile controllo della posizione, arresto e velocità
è stata trasformata in una delle migliori opzioni nelle applicazioni di con-
controllo e automazione dei processi. Ad esempio, puoi trovarli in
la trazione delle macchine giocattolo a batteria o nelle gomme dei robot.

ESCANEA CON IL TUO


SMARTPHONE

CERCA T05AB
COSÌ

VISITA L'OPZIONE DI

31
Foglio lasciato bianco intenzionalmente

32
5. PROGRAMMAZIONE

La programmazione è una grande risorsa che ci permette di creare diverse sequenze


cias di passi logici che soddisferanno le nostre esigenze e quelle di
i nostri sistemi. Programmare è un'arte che richiede un grande
abilità logica e concentrazione da parte del programmatore.

Concetto di programmazione

È il processo di progettare, scrivere, testare, fare debugging e


mantenere il codice sorgente di programmi informatici
cionali. Il codice sorgente è scritto in un linguaggio
di programmazione. Lo scopo della programmazione è
creare programmi che mostrano un comportamento
desiderato. 5A
Il processo di scrivere codice richiede frequente-
mente conoscenze in diverse aree distinte,
oltre al dominio del linguaggio da utilizzare, algorit-
mos specializzati e logica formale. Programmare implica aree come l'analisi e
design dell'applicazione.

Per creare un programma che il computer interpreti ed esegua le istruzioni


scritte in esso, deve essere utilizzato un linguaggio di programmazione. Nei suoi inizi, i computer
i traduttori interpretavano solo istruzioni in un linguaggio specifico, il più basso
livello conosciuto come codice macchina, essendo questo eccessivamente complicato per
programmare. In effetti consiste solo in stringhe di numeri 1 e 0 (Sistema binario).

Per facilitare il lavoro di programmazione, i primi scienziati che lavoravano su


l'area hanno deciso di sostituire le istruzioni, le sequenze di uno e zero, con
parole o lettere provenienti dall'inglese, codificandole così e creando un linguaggio
di livello superiore, conosciuto come Assembly o linguaggio assemblatore. Ad esempio-
plo, per sommare si usa la lettera A della parola inglese add (sommare). In realtà è-
Scrivere in linguaggio assembler è fondamentalmente la stessa cosa che farlo in linguaggio
macchina, ma le lettere e le parole sono decisamente più facili da ricordare e comprendere
che sequenze di numeri binari.

Man mano che la complessità dei compiti eseguiti dai computer aumenta
allora, si è reso necessario disporre di un metodo semplice per programmare.
si crearono i linguaggi di alto livello. Mentre un compito così triviale come multi-
Moltiplicare due numeri può richiedere un insieme di istruzioni in len-
guaje assemblatore, in un linguaggio di alto livello basterà solo una.

33
Linguaggio di programmazione
Un linguaggio di programmazione è una lingua artificiale
progettato per esprimere operazioni che possono essere
eseguite da macchine come i computer.
Possono essere utilizzati per creare programmi che controllano il
5B comportamento fisico e logico di una macchina, per
esprimere algoritmi con precisione, o come modo di
comunicazione umana.

È formato da un insieme di simboli e regole sintattiche e semantiche che


definiscono la loro struttura e il significato dei loro elementi ed espressioni. Al processo per
il quale si scrive, si prova, si depura, si compila e si mantiene il codice
La fonte di un programma informatico si chiama programmazione.

Linguaggio macchina
Il linguaggio macchina è il sistema di codici
direttamente interpretabile da un circuito micro-
programmabile, come il microprocessore di un com-
computer o un microcontrollore. Questo linguaggio è
5C composto da un insieme di istruzioni che
determinan acciones a ser tomadas por la máqui-
na. Queste istruzioni vengono normalmente eseguite-
si svolge in sequenza, con eventuali cambiamenti di flusso causati dal programma stesso
o eventi esterni.

Il linguaggio macchina lavora con due livelli di tensione. Questi livelli, per astrazione-
ción, si simbolizzano con lo zero (0) e l'uno (1), per questo il linguaggio macchina solo
utilizza detti segni. Questo consente l'uso delle teorie dell'algebra
booleana e del sistema binario nel design di questo tipo di circuiti e in
la sua programmazione.

Linguaggio assembly
Il linguaggio assembly o assembler è un linguaggio di
programmazione di basso livello per i computer, mi-
microcontrollori, e altri circuiti integrati programma-
Implementa una rappresentazione simbolica dei
5D codici di macchina. Questa rappresentazione è solitamente
definita dal produttore hardware, ed è basata su
codici mnemonici che simboleggiano i passi di
elaborazione (le istruzioni).

Un linguaggio assembly è quindi specifico per una certa architettura


di computer fisico (o virtuale). Questo è in contrasto con la maggior parte di
i linguaggi di programmazione di alto livello che idealmente sono portabili.

34
Linguaggio di alto livello
Un linguaggio di programmazione di alto livello si caratterizza
per esprimere gli algoritmi in un modo adeguato alla
capacità cognitiva umana, invece della capacità
esecutrice delle macchine. 5E
Per i linguaggi ad alto livello sono richiesti certi
conoscenze di programmazione per realizzare le sequenze
cias di istruzioni logiche. I linguaggi ad alto livello
si crearono affinché l'utente comune potesse
risolvere un problema di elaborazione di
dati in modo più facile e veloce.

Algoritmo

Un algoritmo è un insieme pre-scritto di istruzioni


5F
cisioni o regole ben definite, ordinate e finite
che permette di svolgere un'attività tramite passaggi
sucessivi che non generino dubbi a chi deve reali-
zar detta attività. Dato uno stato iniziale e una
entrata, seguendo i passi successivi si arriva a un
stato finale e si ottiene una soluzione.

Corpo di un programma in Arduino


Arduino si programma nel linguaggio di alto livello C/C++ e generalmente ha i
seguenti componenti per elaborare l'algoritmo:

Strutture 5G
Variabili

Operatori matematici, logici e booleani

Strutture di controllo (Condizionali e cicli)

Funzioni

35
Strutture
Ci sono due funzioni principali che deve avere ogni programma in Arduino:

setup() {

5H }
Codice di configurazione iniziale, viene eseguito solo una volta.

ciclo(){
}
Questa funzione viene eseguita dopo il setup(), continua a essere eseguita fino a quando non
disconnetti o scollega l'Arduino.

Variabili
È un dato o un insieme di dati che cambia il suo valore con l'esecuzione del programma.

Booleano Intero Carattere

5I
vero o falso Valore intero Memorizza un ASCII

Booleanencendido=true; intconta=5; charletra=’a’;

Questi sono alcuni tipi di variabili e i più utilizzati in questa guida. Per ulteriori tipi
visita

[Link]/it/Reference/HomePage

Operatori booleani
Usati generalmente all'interno del condizionale If

5J &&(y)
Se (a||b)
|| (o)
no

Operatori di confronto
Usati generalmente all'interno del condizionale If e sui For e While

== (uguale a) (maggiore di)


5K != (diverso da) <= (minore o uguale)
< (minore di) >= (maggiore o uguale)

Se (a==b)

36
Operatori matematici
Si applicano alla gestione delle variabili, delle condizioni e dei cicli

(asignare) (resta)
% (modulo) (moltiplicazione) 5L
+ (somma) / (divisione)
int valor=valor+5

Strutture di controllo
Sono istruzioni che ci permettono di prendere decisioni e fare diverse ripetizioni
Secondo alcuni parametri, tra i più importanti possiamo evidenziare:

Se
5M
Switch/case
Per
Mentre

Condizionali
Ideali per prendere decisioni dopo aver valutato le condizioni logiche:

Se Switch/case (Casi)

5N
se (entrata<500) switch (var) {
{ case1:
// azione A // azione A
} altro interrompere;
{ caso2:
// azione B // azione B
} interrompere;
default:
// azione C
}

Cicli
Ideali per ripetere ciò che si trova all'interno di essi

per Mentre
5O
per(int a=0; a>10; a++ ) mentre (var<200) {
{ // azione da ripetere
// azione da ripetere var++;
} }

37
Funzioni
Una funzione è un insieme di righe di codice
che eseguono un compito specifico e possono ritornare
nar un valore. Le funzioni possono prendere pará-
metri che modificano il loro funzionamento. Le
5P le funzioni sono utilizzate per decomporre gran-
dei problemi in compiti semplici e per imple-
mentar operazioni che sono comunemente utili
zadas durante un programma e in questo modo
reducir la cantidad de código.
Quando una funzione viene invocata, le viene passato il
controllo a essa, una volta che ha completato il suo compito, il controllo è restituito al
punto dal quale la funzione è stata chiamata.

Funzioni digitali
Orienti a controllare lo stato e la configurazione delle entrate e uscite digitali

pinMode()

5Q Consenti di configurare un PIN

pinMode(pin, modo)

pinMode(13,OUTPUT);

pinMode(a, INPUT);

digitalRead() digitalWrite()

Leggere un pin digitale (0 o 1) Scrivere un pin digitale con 1 o 0

digitalRead(pin) digitalWrite(pin, stato)

inta= digitalRead (13); digitalWrite(13,ALTO);

digitalWrite(13,BASSO);

Q Completa secondo i concetti sulla programmazione


U
Io 1-Linguaggio macchina 2-ElIfes un tipo di:
Z si scrive in:

_____________ _____________

38
Funzioni analoghe
Ideali per la lettura e scrittura di valori analogici

analogRead() analogWrite()—> PWM


5R
Leggere un valore analogo da 0 a 1023 Scrivere un valore analogo da 0 a 255

analogRead(pin) analogWrite(pin, valore di PWM)

int a = analogRead(A0); analogWrite(9, 134);

ESERCIZI

1
Collega i seguenti termini, ogni lettera ha tre termini associati:

A–Carbone Flusso di elettroni


Amperio
B–Emittente di luce Verde
LED
C–Linguaggio in- Software libero
assembleatore analogWrite()
PWM
D–Digitale Hardware libero
Pulsante
E–Corrente Resistenza
Istruzione
F–Arduino AGGIUNGI
1kΩ
G–Análogo digitalRead()

SCAN WITH YOUR


SMARTPHONE

CERCA T04AB
COSÌ

VISITA LAOPCIÓN DI

39
5S Riferimento rapido per programmare
Il programma di Arduino può essere diviso in tre parti principali: la
struttura, le variabili (valori e costanti) e funzioni.

E - impostazione()
+Operatori di confronto
S - ciclo() - == (uguale a)
T - ! = (diverso da)
+Strutture di controllo - < (minore di)
R - se > (maggiore di)
U - se...altrimenti - <= (minore o uguale a)
C - per >= (maggiore o uguale a)
- switch case
T
- mentre +Operatori booleani
U - fare... mentre -&&(y)
R pausa - || (o)
A - continua -! (no)
- ritorna
vai a
+Accesso con puntatori
- * eliminare il riferimento dell'opera-
+Sintassi dor
-; punto e virgola
-&operatore di riferimento
-{} (chiavi)
-/ / (commento su una sola linea)
-/ * * / (commento su più righe)
+Operatori bit a bit
-&(operatore AND bit a bit)
# definire
- # includi - | (bit a bit OR)
- ^ (XOR bit a bit)
- ~ (bit a bit NO)
+Operatori matematici
- << (a sinistra BitShift)
-= (operatore di assegnazione)
- >> (a destra BitShift)
- + (somma)
- - (resta)
× (moltiplicazione)
+Operatori composti
/ (divisione) - + + (incremento)
-% (modulo) (decremento)
-+ = (composto addizione)
- -= (sottrazione composta)
-* = (composto moltiplicazione)
-/ = (divisione composta)
(composto bit a bit E)
- | = (operatore OR bit a bit)

V +Costanti +Utilità
A - byte -dimensione()
- HIGH | LOW
- int
R - INPUT | OUTPUT +Conversione
parola
- true | false - char()
Io lungo
- Costanti intere byte()
A - Costanti flottanti
- lungo non firmato
fluttuare - int()
B +Tipi di dati parola()
doppio
L - vuoto - string - array char lungo()
E booleano - String - oggetto - float()
- carattere
S array

40
+Ingresso/Uscita Digitale
F
pinMode() U
- digitalWrite() N
digitalRead() C
+Numeri casuali
- randomSeed() Io
+I/O Analogico random()
- analogReference() O
analogRead() N
- analogWrite() - PWM E
+Bit e Byte
lowByte() S
+Avanzate I/O
highByte()
tonalità()
bitLeggi()
- noTone()
bitWrite()
- shiftOut()
- bitSet()
- shiftIn()
bitClear()
-pulseIn()
- bit()

+Tempo +Interruzioni esterne


- millis() attachInterrupt()
- micros() - detachInterrupt()
- ritardo()
delayMicroseconds()
+Interruzioni
interruzioni()
+Matematica noInterruzioni()
- min()
- max() +Comunicazione
- valore assoluto()
Seriale
vincolare() - inizio()
- mappa() - fine()
- pow() disponibile()
- radice quadrata()
leggi()
- spiare()
+Trigonometrica flush()
- sin() - stampa()
- cos() - println()
tan() - scrivi()

L
- EEPROM - leggere e scrivere Io
- Ethernet - connettersi a Internet B
-Cristallo liquido- controllo di LCD
- SD - lettura e scrittura di schede SD
R
- Servo - controllo dei servomotori E
- SPI - comunicazione tramite il bus SPI R
- Passo dopo passo - controllo dei motori
Í
- Wire - inviare e ricevere dati TWI/I2C
A
... e molte altre visite S

[Link]

41
Pagina lasciata in bianco intenzionalmente

42
6. ARDUINO

Con le capacità di Arduino dobbiamo solo avere nozioni di base di


elettronica e programmazione, questo è sufficiente per iniziare a sviluppare
i nostri progetti. Arduino ha una grande comunità dove si com-
parte tutto ciò che è stato sviluppato ed è una grande finestra per vedere tutto
ciò che è possibile sviluppare.

Progetto Arduino
Il progetto è iniziato a Ivrea, Italia (il sito dell'azienda di
computer Olivetti), nell'anno 2005 con l'obiettivo di creare un
dispositivo per studenti per il controllo integrato dei progetti
tos de diseño e interacción, con la finalidad de que fuera más
barato che i sistemi di creazione di prototipi disponibili in
E quindi. A partire da maggio 2011, più di 300.000 unità-
da Arduino sono state distribuite. I fondatori Massimo
Banzi e David Cuartielles hanno chiamato il progetto Arduino di Ivrea, un protago- 6A
nista storico della città. Innanzitutto "Arduino" è un termine maschile ita-
liano, che significa "grande amico".

Il progetto Arduino è un fork (nell'ingegneria del software, un


fork è un progetto che succede quando gli sviluppatori tie-
ottenere una copia legale del codice sorgente e iniziare lo sviluppo
indipendente da lei, creando un'opera distinta di software)
dalla piattaforma Wiring a codice aperto. Wiring è stato creato
per l'artista colombiano e programmatore Hernando Barragán
como una tesis de maestría en el Instituto de diseño e interac-
zione Ivrea, sotto la supervisione di Massimo Banzi e Casey Reas. D'altra parte, Wiring
si basa su Processing e il suo ambiente di sviluppo integrato creato da Casey Reas e
Ben Fry.

Arduino è stato costruito attorno al progetto Wiring di Hernando


Barragán. Wiring è stato il progetto di tesi di Hernando nel
Istituto di design e interazione Ivrea. È stato progettato per essere un
versione elettronica di Processing che utilizza il nostro ambiente di
programmazione e fu modellato per la sintassi di Processing. Fu
supervisionato da me stesso e Massimo Banzi, un fondatore di Ar-
duino. Non credo che Arduino esisterebbe senza Wiring e non credo che
Il wiring non esisterebbe senza Processing. E so che Processing senza dubbio non esisterebbe senza Design By
Numeri y John Maeda1‖

1 Intervista con Ben Fry e Casey Reas di Shiffman Daniel (23 settembre 2009)vedere di più

43
Famiglia Arduino
Come ogni famiglia che si rispetti, abbiamo gli membri dai più grandi ai più piccoli.
piccoli, vi invitiamo a conoscerli:

6B Arduino UNO Arduino Mega2560

Arduino Pro Arduino Fio Arduino Mini

Leggero e pratico Programmazione Piccolo, ideale


XBee per protoboard

Arduino Bluetooth Arduino Mega ADK Arduino LyliPad

Programmazione tramite Per connettere il Per artisti e


bluetooth Android gestire e-tessili

Arduino Nano Arduino Serial Arduino Leonardo

Un piccolo podere- L'inizio del pro- Il più giovane e


roso Progetto Arduino economico

44
Espandere Arduino con gli shield
Un shield è un'interfaccia che consente di espandere le funzionalità del tuo Arduino.
con cui puoi collegare motori, o a rete cellulare, a una rete WiFi, a una rete
Ethernet o avere un MP3 nell'Arduino, tra molti altri basta guardare:
6C
Cellulare Ethernet Proto GPS

XBee WiFi LCD a colori Host USB

Joystick Motori DC Scheda SD

ESCANEA CON IL TUO


SMARTPHONE

CERCA T01AB
COSI

VISITA L'OPZIONE DI

45
6D Placca Arduino Uno e le sue parti

Vista frontale

2 3

5
6 4
1

8
10

11 9

12

13 14

Viste ausiliarie

46
D
E
1 Connettore USB per cavo Tipo AB
S
C
2 Pulsante di Reset
R
Io
3 Pini di E/S digitali e PWM P
C
4 LED verde della scheda acceso Io
Ó
5 LED arancione collegato al pin13 N

6 ATmega 16U2 incaricato della comunicazione con il PC


D
7 LED TX (Trasmettitore) e RX (Ricevitore) della comunicazione seriale E

8 Puerto ICSP per programmazione seriale P


A
9 Microcontrollore ATmega 328, cervello dell'Arduino R
T
10 Cristallo di quarzo da 16 MHz E
S
11 Regolatore di tensione

12 Connettore femmina 2.1mm con centro positivo

13 Pini di tensione e terra

14 Entrate analoghe

ESCANEA CON IL TUO


SMARTPHONE

CERCA T02AB
COSI

VISITA L'OPZIONE DI

47
6E Installando driver

MAC e LINUX
Se il tuo computer ha come sistema operativo qualche versione di Mac o una distribuzione-
installazione di LINUX, l'unica cosa che devi fare è:

1
Collegare la scheda Arduino Uno al PC

2 Scarica il software [Link]/it/Main/Software

3 Pronto per lavorare e caricare programmi

WINDOWS 7, Vista e XP
Se il tuo computer ha come sistema operativo Windows nella versione
7, Vista o XP, devi eseguire la seguente successione di semplici
pasos:

1 Scarica il software [Link]/it/Main/Softwareper Windows

2 Decomprimere la cartella di Arduino in una posizione facilmente accessibile

3 Collegare la scheda Arduino Uno al PC e vedere questo avviso. Non dobbiamo preoccuparci di
occupare

4 Visita il Pannello di controllo e poi Amministratore dispositivi, lì cerca


l'opzione seguente

48
WINDOWS 7, Vista e XP

5 Fai clic destro su Dispositivo sconosciuto e poi sull'opzione Aggiorna


lizzare il software del controller.

6
Accedi all'opzione Cerca software di driver sul computer

7 Esaminare e cercare la cartella di Arduino precedentemente decompressa in


passo 2. All'interno di quella cartella accedere alla cartella Driver e fare clic su Accetta

8 Una vez buscamos la carpeta deDriversle damosSiguiente

49
Riceviamo la conferma del Porto COM assegnato, questo numero di Porto
9
È molto importante tenerlo in considerazione al momento di programmare.

ESCANEA CON IL TUO


SMARTPHONE

CERCA T07AB
COSÌ

VISITA L'OPZIONE DI

50
Conoscere il software Arduino

Per eseguire il programma Arduino, inserire-


andiamo nella cartella di Arduino e lì cerca-
mos l'icona di Arduino e diamo doppio
clicca

6F

Zona per scrivere il codice

Zona di messaggi del software


Errori e azioni

1 Puerto COM

51
2 Selezionare la scheda su cui lavorare

3 Consola seriale

Caricando il mio primo programma


Alla fine di questo esercizio avrai la capacità di caricare programmi sulla tua scheda.
Arduino. Per fare ciò, apri il software di Arduino e segui le istruzioni indicate nella si-
seguente immagine.

6G
1

52
Caricando il mio primo programma
Prima di continuare con il passo successivo, assicurati di configurare correttamente
ta:
A–Puerto COM, rivedi il Passo 1 della sezione 6F, ricorda che il valore del
La porta COM l'abbiamo ottenuta nel Passo 9 della sezione 6E

B–Board, rivedi il Passo 2 della sezione 6F, ricorda che per questo caso la
scheda esArduino UNO

Il programma di intermittenza (Blink) che hai appena caricato in elettronica si


3 llama―Ciao mondo‖, consiste nell'accendere e spegnere un LED a intervalli di
Un secondo. Il LED che si accende e si spegne è la parte5secondo la sezione6Dove il
contrassegnato con la lettera L secondo l'immagine qui sotto. Ora possiamo darti la
Benvenut@ nel mondo di Arduino :D!

53
Esercizio
A partire dall'esempio caricato nella sezione precedente, ora ti proponiamo di modificare
fai un po' il programma, per questo nelle due righe di codice dove dice:
ritardo(1000);
Cambia il valore di 1000 in 2000 e ricarica il programma sulla tua scheda Arduino
Uno, cosa osservi?

54
7. KIT BÁSICO

È la risorsa centrale di questa guida, ti proponiamo di conoscerla.


per avere una gestione adeguata dei suoi componenti.

Descripción
La Negozio di Robotica porta il Kit Base di
Arduino comprende una selezione accurata
scelta dei migliori componenti per iniziare
nel mondo di Arduino. È uno strumento
progettata per i principianti che conta
7A
con tutto il necessario per sviluppare progra-
ma che contribuiscano all'apprendimento e alla gestione
del Arduino.

Distribuzione del kit

KIT BÁSICO 7 6

2 5 7B
1

3 4

1 3 5
1 xArduino Uno 5 xLed 5mm 5 xResistencia 220Ω

1 xProtoboard 1 xLed multicolore 5 xResistenza 1KΩ

1 x Piezo elettrico 5 x Resistenza 10KΩ


2 2xTransistor 2N3904
1 x Fotocelda 4
6
1 x Potenziometro 10K 1 x Batteria Alcalina 9V
1 xImán
1 xInterruttore Reed 1 x Spilla con batteria
1 xMotore CC
2 x Pulsatori NO 1 x Connettore 2.1mm

7
1 cavo USB Tipo AB

10 connettori rapidi MM

55
Fotos

7C

NELLA SUA SCATOLA DI KIT

56
8. FRITZING
Fritzing è un software per progettare gli assemblaggi su protoboard e a partire
de ello generar el plano y la PCB (Circuito impreso), así de fácil :)

Software
Fritzing permette a designer, artisti, ricercatori e appassionati
documentare i suoi prototipi basati su Arduino e creare schemi di cir-
cuitos stampati per la successiva fabbricazione.

8A

Vista protoboard

8B

57
Vista schema

8C

Vista PCB—Circuito stampato

8D

58
ESERCIZIO MASTER

1
Nel seguente esercizio vogliamo che consolidare le tue
capacità di montaggio in Fritzing, è un esercizio che
requiere que coloques a prueba tus capacidades de
riconoscimento di montaggi elettronici e cablaggio
tra l'Arduino e una protoboard, è un riepilogo
pratico dei capitoli precedenti. Per svilupparlo
ti consigliamo di lavorare insieme al software e
dell'immagine che segue. Il software puoi trovarlo
en:

[Link]/download/ 8E

Fai da te

59
9. TUTORIALI
Questi tutorial sono progettati con esercizi pratici che permettono di
prendere il concetto e in modo costante si sta verificando quanto appreso
mediante domande. Infine vengono proposti esercizi che coinvolgono ca-
sos della vita reale.

T0 Conoce como son los tutoriales

A
E

F
C

G
D

A Titolo del tutorial

B Quello che devi sapere e ciò che imparerai

C I materiali di cui hai bisogno

D Più vicino a te, contenuti multimediali

E Piano di montaggio

F Schema di montaggio

60
Prova il tuo apprendimento
G

H Codice di programmazione
passo dopo passo

H
Io Suggerimenti molto utili

Io

J Esercizi applicati

K Esprimi le tue idee

61
T1 Ciao mondo—LED intermittente

¿Qué aprendo? Conoscenze pregresse

Attivare un'uscita digitale segnale digitale

Accendere un LED in ON/OFF Funzione digitalWrite()

Temporizzare un segnale di uscita Polarità di un LED

Sintassi di un programma in Connessione della scheda Ardui-


Arduino no al computer

Materiali

1 1

Arduino UNO LED Verde

Cavo USB Tipo AB

ESCANEA CON IL TUO


SMARTPHONE

CERCA
COSI

VISITA LA OPZIONE DI

62
P
L
A
N
O

E
S
Q
U
E
M
A

P
1—Qual è il valore 2—Cosa fa questa 3—Completa R
di questa resistenza? funzione? E
G
digitalRead()
U
_______________ ?
Io =___ N
_____Ω
_______________ R T
_____KΩ
A

63
C /*
Ó -----------------------------------
D Ciao Mondo
Io -----------------------------------
G Accendi un LED per un secondo e spegnilo per lo stesso tempo
0 */

//------------------------------------
D
//Funzione principale
E
//------------------------------------
voidsetup() // Viene eseguito ogni volta che l'Arduino si avvia
{
P
pinMode(13,OUTPUT);// Inizializza il pin 13 come uscita
R
}
O
G
R
//------------------------------------
A
//Funzione ciclica
M
//------------------------------------
A
voidloop() // Questa funzione continua a essere eseguita
C
{ // quando l'Arduino è energizzato
Io
digitalWrite(13,HIGH);// Accende il LED
Ó
ritardo(1000); // Temporizza un secondo (1s = 1000ms)
N
digitalWrite(13,LOW);// Spegni il LED
ritardo(1000); // Temporizza un secondo (1s = 1000ms)
}

// Fine del programma

T 1-El//in programmazione si usa per fare commenti, è molto utile per che
Io puoi spiegare qualcosa riguardo alla sintassi di una riga di codice. Un esempio del suo
P uso:
S
digitalWrite(13,LOW);// Spegni il LED

2–I segnali digitali (Acceso o spegnimento) sono molto presenti in tutti i


sistemi, e molti sensori lavorano su questo principio, ti invitiamo a conoscere
alcuni:

Sensore PIR Sensore ottico SHARP


Rileva movimento Rileva la presenza di qualche
oggetto in un raggio di 5cm

64
EJERCICIOS

1
A partire dal codice di programmazione spiegato in precedenza, vogliamo che
un LED si accende in modo intermittente nel seguente modo:

A)3 segundos prendido y 3 segundos apagado

B) 200 millisecondi acceso e 500 millisecondi spento

Consiglio: 1s = 1000ms

2
L'azienda di automazione NRJ Inc. ti assume per fare un montaggio di
un LED intermittente su una scheda Arduino UNO, con l'unico requisito che
il LED deve essere posizionato sul Pin 5, loro molto gentilmente ti hanno facilitato
fai lo schema, il tuo compito è:

A) Realizzare il montaggio e la rispettiva programmazione di 2 secondi acceso e


1 secondo spento

3 Un Strober è una lampadina che si accende e si spegne molto rapidamente,


molto usato alle feste, la tua missione è realizzare il tuo strober
casero con un LED, con lo stesso schema montato in questo
tutorial.

IL MIO BLOCK NOTES

65
T2 Encender un LED con un pulsador

Cosa imparo? Conoscenze pregresse

Cablaggio di un circuito Segnale digitale

Condizionale Se/Altrimenti Funzione digitalWrite() e


digitalRead()
Stato di un pulsante
Divisore di tensione
Leggere un'entrata digitale e
scrivere un'uscita digitale Condizionale e operatori di
confronto

Materiali

1
1
1
LED Giallo

Arduino UNO 1
Protoboard

Pulsante
1

1 4

Cavo USB Tipo AB


Resistenza 1K Connettori MM

ESCANEA CON IL TUO


SMARTPHONE

BUSCA T10AB
COSÌ

VISITA L'OPZIONE DI

66
P
L
A
N
O

E
S
Q
U
E
M
A

P
1—Qual è il valore 2—Cosa fa questa 3—Un esempio di R
di questa resistenza? funzione? un linguaggio di alto E
livello G
digitalWrite()
U
_______________ _______________ N
_____Ω
_____KΩ _______________ T
A

67
C /*
-----------------------------------
Ó Accendere il LED con un pulsante
-----------------------------------
D
Io Premere un pulsante e mantenerlo premuto
un LED si accende
G
Cose di Meccatronica e Negozio di Robotica
0
*/

//------------------------------------
D //Dichiara porte di ingresso e uscita
//------------------------------------
E intpulsador=2; //Pin dove si trova il pulsatore, ingresso
intled=13; //Pin dove si trova il LED, uscita

//------------------------------------
P //Funzione principale
//------------------------------------
R void setup()// Viene eseguito ogni volta che l'Arduino si avvia
{
O pinMode(pulsador, INPUT);//Configurare il pulsante come un ingresso
G pinMode(led, OUTPUT); //Configurare il LED come uscita
}
R
A //------------------------------------
//Funzione ciclica
M //------------------------------------
A voidloop()// Questa funzione rimane in esecuzione
{ // quando l'Arduino è alimentato
C
//Condizionale per sapere lo stato del pulsante
Io se(digitalRead(pulsador)==ALTO)
{
Ó //Pulsante premuto
N digitalWrite(led,HIGH);//Accende il LED
}
altrimenti
{
//Pulsatore NO premuto
digitalWrite(led,LOW);//Spegne il LED
}
}
//Fine programma

T 1–Quando programmi nel Software di Arduino, molte cose di cui


Io scrivere sono parole riservate dal linguaggio, tutte le parole riservate le
P puoi trovare nella sezione 5S, scrivendole queste si collocano in un colore diffe-
S rente, questo è un trucco per sapere che va bene, per esempio:

2–Tutte le istruzioni di programmazione per Arduino si trovano


totalmente documentate con chiari esempi di come si utilizzano, ti
ti invitiamo a visitare:[Link]/it/Reference/HomePage

68
ESERCIZI

1
La multinazionale francese Flante esperta in ma-
La macchina industriale ti ha assunto per fare auto-
matices una macchina tagliatrice di carta. La condi-
La funzione principale è che l'operatore della macchina
quando vai a effettuare il taglio, mantieni sempre
le due mani occupate, questa è una regola di segu-
ridad industrial per evitare incidenti. L'operatore deve premere i due pulsanti
tieni uno con ogni mano e la lama deve abbassarsi e fare il taglio. Il
Il seguente montaggio simula il controllo della macchina, i due pulsanti (S1 e S2)
e il LED rosso simula la lama tagliente.

S1 S2

2 Tuo padre vuole che tu realizzi un sistema di illuminazione a LED per


le scale della casa. La condizione è che se sei sopra e
se premi S1 o se sei giù e premi S2 il LED rosso si accende e
quando smetti di premere si spegne. Come guida per il montaggio prendi l'ima-
gen anterior.

IL MIO QUADERNO DEGLI APPUNTI

69
T3 Lettura seriale di un ingresso digitale

Cosa imparo? Conoscenze pregresse

Gestire un ingresso digitale Segnale digitale

Visualizza i dati sullo schermo del Funzione digitalRead() e Se-


computer [Link]()

Consola seriale Opzione di Console seriale,


ver6F(passo 3)
Leggere un'entrata digitale e
scrivere sulla console seriale

Materiali

1
1

Arduino UNO
Pulsatore Piastra prototipale

1
1

4
Resistenza 1K
Cavo USB Tipo AB
Connettori MM

ESCANEA CON IL TUO


SMARTPHONE

CERCA T11AB
COSI

VISITA LAOPCIÓN DI

70
P
L
A
N
O

E
S
Q
U
E
M
A

P
1—Qual è il valore 2—Cosa fa questa 3—Questo simbolo a R
di questa resistenza? funzione? che corrisponde E
G
[Link]()
U
_______________ N
_____Ω
_____KΩ _______________ _______________ T
A

71
C /*
--------------------------------------
Ó Lettura seriale di un ingresso digitale
--------------------------------------
D Leggere un'entrata digitale e mostrare sullo schermo del
Io computer (console serial) lo stato del pulsante
quando è oppresso
G Cose di Meccatronica e Negozio di Robotica
0 */

//------------------------------------
//Dichiarare le porte di ingresso e uscita
D //------------------------------------
intboton=2; //Pin dove si trova il pulsante, ingresso
E
//------------------------------------
//Funzione principale
//------------------------------------
voidsetup()// Viene eseguito ogni volta che l'Arduino si avvia
{
P //Configuración
pinMode(boton, INPUT);//Configurare il pulsante come un ingresso
R [Link](9600); //Inizia comunicazione seriale
}
O
G //------------------------------------
//Funzione ciclica
R //------------------------------------
voidloop()// Questa funzione continua a essere eseguita
A { // quando l'Arduino è alimentato
M //Salva in una variabile intera il valore del pulsante 0 o 1
intestado=digitalRead(boton);
A
//Condizionale per sapere lo stato del pulsante
C se(estado==1)
{
Io Pulsato
[Link]("Pulsato"); //Stampa nella console seriale
Ó } // "Pulsado"
altrimenti
N {
// Non è premuto
[Link]("NO Pulsato");//Stampa nella console seriale
} NO Pulsato
ritardo(100);//Ritardo per la visualizzazione dei dati nella console
}
//Fine programma

T 1–La codifica binaria è molto importante per trasmettere dati tra 0 000
Io dispositivi, sono le lunghe catene di 0 e 1, per esempio 1 001
P 00011101010101 questo potrebbe essere un messaggio che contiene informazioni
2 010
S riguardo a un codice personale per accedere a un edificio. I numeri
in base 10 si possono rappresentare come valori binari: 3 011

4 100
2–Per ricordare
5 101

6 110

7 111
- Per leggere un segnale digitale usa: digitalRead(numeroPin);

- Per scrivere un segnale digitale usa: digitalWrite(numeroPin, valore);

- Un'uscita o un'entrata digitale è sempre HIGHoLOW

72
ESERCIZI

1
Un'azienda di bibite ha un sistema con due
sensori, uno di essi indica se la bottiglia è piena
fa con il liquido e l'altro sensore indica se la bottiglia
ha già il coperchio. Per questo caso simuleremo entrambi
sensori tramite due pulsanti (S1 e S2).

La routine è descritta in questo modo: se la bottiglia si


riempire in modo adeguato (è necessario attivare S1 e
mostrare in console ―Gaseosa piena‖) dopo di ciò se ha il tappo inserito (si
debe activar S2 y mostrar por consola ―Gaseosa tapada‖), al finalizar el proceso
si deve accendere un LED che indica che il processo è terminato bene e inoltre si
deve mostrare un messaggio sulla console ―Gassosa ben imballata‖. Ricorda
che prima deve essere attivato S1 e poi S2 affinché il processo sia valido.

Un po' di luci natalizie moderate


nas son las siguientes: mien-
se si mantiene premuto S1
una variabile intera inizializza-
S1 S2
da en 0 si comincia a incre-
mentar de 20 en 20, al soltar
S1 la variabile per di incra-
mentarsi, quando si preme S2
il valore della variabile è
deve caricare a un ―Ciao

Mondo del LED, questo significa che il LED va


essere intermittente in intervalli di tempo uguali al valore
dalla variabile. Per console seriale devi mostrare il
valore della variabile. Affinché tu possa riportare la variabile a 0
e puoi fare un'altra routine di intermittente, inserisci la condizione che S1 e S2 si
opriman al tempo, con ello la variabile intera deve tornare a 0.

IL MIO QUADERNO DI APPUNTI

73
T4 Lettura seriale di un ingresso analogico

Cosa imparo? Conoscenze pregresse

Gestire un ingresso analogico Segnale analogico

Visualizza i dati sullo schermo del Funzione analogRead() e


computer [Link]()

Molteplici stati di un poten- Opzione della Console seriale,


ciómetro ver6F(passo 3)

Leggere un'entrata analoga

Materiali

1
1

1
Arduino UNO
Breadboard

1
Potenziometro 10K
3

Cavo USB Tipo AB


Connettori MM

ESCANEA CON IL TUO


SMARTPHONE

CERCA T12AB
COSI'

VISITA L'OPZIONE DI

74
P
L
A
N
O

E
S
Q
U
E
M
A

P
1—Qual è il valore 2—Cosa fa questa 3—Questo simbolo a R
di questa resistenza? funzione? che corrisponde E
G
analogRead()
U
_______________ N
_____Ω _______________
_____KΩ _______________ T
A

75
C /*
--------------------------------------
Ó Lettura seriale di ingresso analogico
D --------------------------------------
Io Leggere un'entrata analoga e mostrare sullo schermo del
G computer (console serial) il valore dopo aver girato
il potenziometro
0
Cose di Meccatronica e Negozio di Robotica

*/
D
E //------------------------------------
//Funzione principale
//------------------------------------
void setup() // Viene eseguito ogni volta che l'Arduino viene avviato
{
P [Link](9600);//Inizia comunicazione seriale
R }

O //------------------------------------
//Funzione ciclica
G //------------------------------------
R voidloop()// Questa funzione rimane in esecuzione
{ quando l'Arduino è alimentato
A
M //Salva in una variabile intera il valore del potenziometro da 0 a 1024
intvalor=analogRead(A0);
A
C //Stampa il valore della variabile nella console seriale
[Link](valor);
Io
Ó //Ritardo per la visualizzazione dei dati nella console
ritardo(100);
N
}

//Fin programma

T 1–Ti invitiamo a conoscere alcuni tipi di potenziometri


Io
P
S SoftPot Rasatore Codificatore RGB

Sistema touch Alta precisione Giro continuo

2–Per ricordare

- Para leer una señal análoga usa:analogRead(numeroPin);


- Per scrivere un segnale analogico di PWM usa: analogWrite(numeroPin, valore);
- Un ingresso analogo va da 0 a 1023
- Un'uscita analogica di PWM va da 0 a 255

76
EJERCICIOS

1 Questa sfida è semplice, ma ti darà un'idea di come


fare grandi cose scrivendo poche righe di
codice. Come ben sai, la lettura di un segnale
análoga ti dà un valore da 0 a 1023 (se hai qualche
dubbio solo controlla il codice della pagina precedente).

La sfida di questo esercizio consiste nel mostrare per la


inserisci un numero tra 0 e 10, questo numero
deve cambiare quando muovi il potenziometro. Il montaggio di questo esercizio
usa lo stesso schema di connessioni esposto a pagina 75. Sugger...
rencia… Controlla la funzione map()

2 Pensa a un numero segreto da 0 a 1023 e conservalo in una


variabile intera, fai un programma affinché il tuo amico debba mo-
vedere il potenziometro, se il numero che sta generando
(mostra sulla console seriale il valore della lettura del potenziometro)
metro) girando il potenziometro è 10 numeri sopra o
10 numeri sotto il numero che hai pensato e conferma con
il pulsante S1 che ese
è il numero, il programma-
ma deve mostrare per
consola ―Hai indovinato il
numero‖ altrimenti
S1 ―Riprovaci‖.

Questo caso potrebbe essere un


esempio per che lo
applíques a una cassa di
sicurezza, per cosa
guardi molti soldi ;)

IL MIO QUADERNO DEGLI APPUNTI

77
T5 Scrittura seriale

Cosa imparo? Conoscenze pregresse

Immissione tramite console (tastiera) Segnale digitale

Variabili booleane Funzione digitalWrite() e


[Link]()
Stato di un LED
Configurazione di una comu-
comunicazione seriale
Scrittura seriale digitale
Polarità di un LED

Materiali

1 1

Arduino UNO LED Verde

Cavo USB Tipo AB

ESCANEA CON IL TUO


SMARTPHONE

CERCA T13AB
COSÌ

VISITA L'OPZIONE DI

78
P
L
A
N
O

E
S
Q
U
E
M
A

P
1—Qual è il valore 2—Cosa fa questa 3—Nomina 4 tipi R
di questa resistenza? funzione? di variabili E
G
[Link]() a._______
U
_______________ b._______ N
_____Ω
_______________ c._______ T
_____KΩ
d._______ A

79
C /*
--------------------------------------
Ó Scrittura seriale
--------------------------------------
D Consiste en escribir por la pantalla del computador (consola serial)
Io una lettera predeterminata, la prima volta che viene scritta è
un LED si accende, se viene riscritto per la seconda volta
G il LED si spegne.

0 Cose di Meccatronica e Negozio di Robotica


*/

//--------------------------------------------------
D //Dichiara porte di ingresso e uscita e variabili
//--------------------------------------------------
E intled=13;
chiacchierare
//Pin dove si trova il LED, uscita
//Variabile dove viene memorizzato il testo
boolean prendido=false;//Stato LED la prima volta, spento

//------------------------------------
P //Funzione principale
//------------------------------------
R voidsetup()// Viene eseguito ogni volta che l'Arduino si avvia
{
O [Link](9600); //Inizia comunicazione seriale
pinMode(led, OUTPUT);//Configurare il LED come uscita
G }
R
//------------------------------------
A //Funzione ciclica
//------------------------------------
M voidloop()// Questa funzione rimane in esecuzione
{ // quando l'Arduino è energizzato
A
//Salva in una variabile il valore della console seriale
C leer=[Link]();
Io // Se è la lettera 'a' e inoltre il LED è spento
se( (leer=='a')&&(prendido==falso) )
Ó {
digitalWrite(led,HIGH);// Accende il LED
N prendido=true; // Aggiorna lo stato del LED
}
// Se è la lettera 'a' e inoltre il LED è acceso
altrimenti se (leer=='a')&&(prendido==vero)
{
digitalWrite(led,LOW);// Spegni il LED
prendido=false; // Aggiorna lo stato del LED
}
}
//Fine programma

T 1–Le tabelle booleani sono molto utili per comprendere la logica dei programmi,
Io Sai qual è la tabella booleana di AND?&&),O(||)yNON(!)?
P
S

80
ESERCIZI

Avisos luminosos S.A. ti ha assunto per realizzare un programma


1
che ha la caratteristica di ricevere dati, perché l'idea è che il
avviso di luci si trovi al piano 130 dell'Edificio Bulli e tu possa
controllare dal piano 1, quindi per ogni lettera che gli scrivi per
tastiera alla Console seriale il programma deve eseguire una determinata routine
con tre LED, se gli scrivi:
-Letra A:Prende los tres LED
-Letra B: Accende il LED1 per un secondo e poi lo spegne, poi accende il LED2 per un secondo
lo spegne e infine accende il LED3 per un secondo e poi lo spegne, e ritorna
a cominciare. Questa routine genera una sensazione di movimento
-Letra C: Spegni i tre LED

LED1 LED2 LED3

2 Tuo nonno ha un raccolto di grandi e verdi lattughe,


questo coltivato ha 3 irrigatori d'acqua e tuo nonno vuole
prendere questi spruzzatori dal suo computer scrivendo semplicemente-
Imposta dei valori da tastiera, gli irrigatori hanno uno stato
digitale (Valore 0 è spento e valore 1 è acceso). Devi reali-
creare un programma che legga una stringa di tre valori, per questo esercizio i
Gli irrigatori li simuleremo con tre LED 1, 2 e 3 per esempio:

Tutti gli irrigatori d'acqua devono essere spenti


Si tu abuelito escribe101: El aspersor 1 y 3 se prenden pero el dos debe estar apagado
L'irrigatore 1 e 2 si spengono ma il tre deve essere acceso

IL MIO QUADERNO DEGLI APPUNTI

81
T6 Accendere un LED tramite PWM

Cosa imparo? Conoscenze pregresse

Accendere un LED in modo PWM


proporzionale
Función analogWrite()
Appropriare il concetto di PWM
Polarità di un LED
Scrivere un'uscita analoga
Incrementare e manipolare
Se/altro con operatori logici variabili

Materiales

1
1
1

LED Giallo
Arduino UNO
Placca di prototipazione

1
1

Cavo USB Tipo AB Resistenza 220Ω


Connettori MM

ESCANEA CON IL TUO


SMARTPHONE

CERCA T14AB
COSÌ

VISITA L'OPZIONE DI

82
P
L
A
N
O

E
S
Q
U
E
M
A

P
1—Qual è il valore 2—Cosa fa questa 3—A che corrisponde- R
di questa resistenza? funzione? ponden estos ope- E
radores G
analogWrite()
&&_______ U
_______________ N
_____Ω ||_______
_____KΩ _______________ T
==_______
A
!=_______

83
C /*
---------------------------------------------
Ó Accendi/Spegni un LED in modo proporzionale
---------------------------------------------
D Programma che accende proporzionalmente un LED quando
raggiunge il suo massimo punto di luminosità inizia a spegnersi
Io proporzionalmente.
G Cose di Meccatronica e Negozio di Robotica
0 */

//--------------------------------------------------
//Dichiara porte di ingresso e uscita e variabili
D //--------------------------------------------------
intbrillo=0; //La variabile di luminosità inizia a 0
E intvariacion=5; //Variabile di incremento configurata di 5 in 5
intled=9; //Pin dove si trova il LED, uscita

//------------------------------------
//Funzione principale
P //------------------------------------
voidsetup()// Viene eseguito ogni volta che l'Arduino si avvia
R {
pinMode(led, OUTPUT);//Configurare il LED come uscita
O }
G
//------------------------------------
R //Funzione ciclica
//------------------------------------
A voidloop() // Questa funzione rimane in esecuzione
{ // quando è alimentato l'Arduino
M
// Scrittura analogica (PWM) sul LED scrivo il valore di luminosità
A analogWrite(led, brillo);
C // Incremente la variabile luminosità di 5 in 5
brillo=brillo+variacion;
Io
// Nota: PWM ----> 0 - 255
Ó
// Se la luminosità è 0 o 255
N se(brillo==0||brillo==255)
variacion=-variacion;//La variación se vuelve negativa
delay(30);//Tempo di incremento nella luminosità
}

//Fine programma

T 1–Questi elementi ricevono segnali di PWM e servono per:


Io
P
S
Pompa dell'acqua Micromotore
Variar la velocità di Variare la velocità di
pompa giro

PWM

LED Servomotore
Variare l'intensità di Variar la posizione in
luce gradi

84
ESERCIZI

1 Tua madre vuole avere delle luci a intensità variabile nel salotto
da casa tua, vuole poca luce per i momenti in cui la famiglia
Compatto per mantenere l'armonia ma richiede molta luce
quando realizza i suoi tessuti, lei vuole avere il controllo dell'intensità
dad di luce mediante un potenziometro e che la lampadina LED si
illuminare secondo quanto graduato da lei. Il tuo compito è realizzare il
programma che leggendo un ingresso analogico di un potenziometro (0—1023) si
regola il valore di PWM (0-255) di un LED, ricorda di scalare il valore…map()

2 Un forno per pane innovativo è prossimo a essere lanciato sul mercato. Questo
il forno è diverso da tutti gli altri perché puoi regolare la
temperatura y el tiempo de horneado desde el computador. Tu
il compito è realizzare un programma che legge dalla Console Serial la temperatura
ratura in °C (0-255) poi si separa con una virgola (,) e continua-
cion viene il tempo di cottura in secondi (1-10). Il valore di
La temperatura sarà il PWM che verrà regolato sul LED e il tempo-
po di cottura è il tempo durante il quale il LED rimane
accensione a quella temperatura. Usa lo Schema della pagina 83 come montaggio, per esempio:

Il LED si accende con un PWM di 180 per 3 secondi


Il LED si accende con un PWM di 50 per 2 secondi
9,5 Il LED si accende con un PWM di 9 per 9 secondi

IL MIO QUADERNO DEGLI APPUNTI

85
T7 Controllo ON/OFF con potenziometro

Cosa imparo? Conoscenze pregresse

Uscita digitale Se/Altrimenti

Controllo ON/OFF Funzione digitalWrite() e


analogRead()
Confronto
Valore di un ingresso analo-
Condizionale a partire da un ga
valore intero di un'entrata
analogico Condizionale e operatori di
confronto

Materiali

1
LED Verde 1

1
Arduino UNO
Breadboard

1
Potenziometro 10K

1
3

Cavo USB Tipo AB

Resistenza 220Ω Connettori MM

ESCANEA CON IL TUO


SMARTPHONE

CERCA T15AB
COSI'

VISITA L'OPZIONE DI

86
P
L
A
N
O

E
S
Q
U
E
M
A

P
1—Qual è il valore 2—A cosa serve 3—Questo simbolo a R
de esta resistencia? l'operatore? che corrisponde E
G
++ U
_______________ N
_____Ω
_____KΩ _______________ _______________ T
A

87
C /*
---------------------------------------------
Ó Controllo ON/OFF con potenziometro
---------------------------------------------
D
Io Programma che accende un LED quando il valore dell'ingresso
anàloga comandata dal potenziometro è a un certo valore,
G quando questo valore cambia il LED si spegne, è un sistema con
controllo ON/OFF
0
Cose di Meccatronica e Negozio di Robotica
*/
D //------------------------------------
//Funzione principale
E //------------------------------------
void setup() // Viene eseguito ogni volta che l'Arduino si avvia
{
[Link](9600);//Inizia comunicazione seriale
pinMode(13,OUTPUT);//Configurare il pin 13 come uscita
P }
R //------------------------------------
O //Funzione ciclica
//------------------------------------
G voidloop()// Questa funzione continua a essere eseguita
{ quando l'Arduino è alimentato
R
//Salvare in una variabile il valore della lettura analoga
A intvalor=analogRead(A0);
M [Link](valor);//Stampa il valore sulla console
A //Se il valore è maggiore o uguale a 500
C se(valore>=500)
{
Io digitalWrite(13,HIGH);//Accende il LED al pin 13
Ó }
//Se il valore è inferiore a 500
N altrimenti
{
digitalWrite(13,LOW);//Spegni il LED sul pin 13
}
ritardo(100);//Ritardo di 100ms per vedere i dati della console
}
//Fine programma

T
Io
Devi avere molta cautela nel
P
momento in cui la tua scheda Arduino è
S
energizzata, se guardi la palca per la
parte inferiore questa ha tutti i suoi pun-
tos di saldatura all'aria, se hai la
placa alimentata e la posizioni sopra
da una superficie metallica, per esempio
Plo una mesa, è possibile che la placca
se danneggia poiché rimane in corto. Se vai a
lavorare sulla scheda Arduino ti consiglio
dobbiamo lavorare su superfici di
materiali isolanti come sono i
sintetici, legno o vetro. Questo è un
consiglio per prenderti cura della tua piastra.

88
ESERCIZI

1 Un'auto da tuning ha luci al neon nella parte inferiore,


questo è il sentimento della fiera. Il pilota controlla le luci
(tre LED) tramite un potenziometro al lato del
leva del cambio, ha tre opzioni di luci di
accordo al valore di lettura del potenziometro che va da 0 a
1023

0 - 350 Intermittenza dei 3 LED a 100ms


351 - 700Intermittenza dei 3 LED a 500ms
701 - 1023Intermittenza dei 3 LED a 1000ms

2 Il sistema audio ha una manopola per alzare il volume


volume e inoltre dispone di 5 indicatori luminosi (LED)
disposti uno dopo l'altro in una linea retta (così come lo vedi in
il montaggio) nella misura in cui il valore del potenziometro va
aumentando al girarlo, si accende il LED1, poi il
LED2, poi il LED3 e così via fino al LED5. Se arrivi al valore di 1023, tutti i LED dovrebbero
essere accesi e se inizi a ruotare il potenziometro in senso contrario si stanno spegnendo
accendendo i LED uno dopo l'altro nel senso inverso in cui si sono accesi, alla fine se sei in
il valore 0 tutte le LED devono essere spente. Generare una sensazione di movimento.

LED1 LED2 LED3 LED4 LED5

89
T8 Controllo di un LED con una fotocellula

Cosa imparo? Conoscenze preesistenti

Scrittura PWM su un LED Segnale analogico

Leggere un ingresso analogo per Funzione analogWrite() e


mediante una fotocellula analogRead()

Lavorare con una variabile PWM

Regolare un ingresso analogo a Stampare dati sulla console


un'uscita analoga seriale

Materiali

1 1

1
LED Verde
Arduino UNO

1 1 Breadboard

Fotocella
Cavo USB Tipo AB

1 5
1

Resistenza 10K Resistenza 1K Connettori MM

ESCANEA CON IL TUO


SMARTPHONE

Cerca T16AB
COSI

VISITA L'OPZIONE DI

90
P
L
A
N
O

E
S
Q
U
E
M
A

P
1—Qual è il valore 2—La lettera A si 3—Questo simbolo a R
di questa resistenza? guarda in una va- che corrisponde E
variabile di tipo: G
U
_______________ N
_____Ω
_____KΩ
T
A
_______________

91
C /*
---------------------------------------------
Ó Controllo dell'intensità di un LED
---------------------------------------------
D Programma che accende un LED in modo proporzionale di
Io accordo alla quantità di luce che incide in una
fotocellula.
G Cose di Meccatronica e Negozio di Robotica
0 */
//------------------------------------
//Funzione principale
//------------------------------------
void setup() // Viene eseguito ogni volta che l'Arduino si avvia
D {
[Link](9600);//Inizia comunicazione seriale
E pinMode(9,OUTPUT);//Configurare il pin 9 come un'uscita PWM
}
//------------------------------------
//Funzione ciclica
//------------------------------------
P voidloop()// Questa funzione continua a essere eseguita
{ quando l'Arduino è alimentato
R
//Salvare in una variabile il valore della lettura analogica di
O fotocelda
intfoto=analogRead(A0);
G
//Verifica il valore massimo e eseguire una conversione
R intconversion=780-foto;
A //Condizionale per stabilire un valore assoluto
se(conversione<0)
M conversion=conversion*-1;//Moltiplicare per -1 perché è negativo

A //Stampare i dati del valore della lettura analogica della fotocellula


Foto :
C [Link](foto);
[Link]("");
Io
//Stampare i dati del valore della conversione
Ó [Link]("Conv : ");
[Link](conversion);
N [Link]("");
//Scrittura analogica di PWM nel LED in base alla conversione
analogWrite(9, conversion);
ritardo(100);//Ritardo per i dati nella console
}
//Fine programma

T 1–Pensa per un momento a dove puoi trovare una fotocella, questi sono
Io alcuni esempi:
P
S Macchina fotografica digitale
Calculadora
Carica la batteria e spegni Verifica se c'è necessità di
do automatico papà di foto con flash

Misuratore di luce Illuminazione pubblica

Misura una quantità di Accendi la luce quando


luce e lo dà in lux (lx) arriva l'oscurità

92
ESERCIZI

Ti proponiamo di creare un sensore per misurare la luce che irradia un corpo


1
luminoso. Avremo due squadre, A e B. Nella squadra A ci sarà un
LED che varia in luminosità in base alla posizione di un potenziometro (Vedi
T6) e nel team B sarà comandato da una fotocellula. L'idea è che
doppia il LED e la fotocellula a 90°, li posizioni il più vicini possibile e li
enfrentati, come se entrambi dovessero guardarsi in faccia. Tramite la console seriale devi iniziare a mostrare-
do la lettura della luce del fotocellula, questa lettura deve essere in percentuale dal 0% al 100%. Un
Esempio di output sulla console: Concentrazione di luce 57%

2 La bella biologa María Paula ;) è responsabile della cura


il grande Erbario di Santa Monica CA dove si preservano
diverse piante. Bilumetium, è un tipo di rosa che richiede-
re a temprana età illuminazione del tipo accesa-
dido/apagato, quando il suo sensore di luce è ma-
a 600 la luce deve accendersi (LED1), quando-
Quando la pianta è adulta, richiede una illumina-
nazione proporzionale, nella misura in cui si sta oscurando la luce
si accende gradualmente (LED2). Tramite il pulsante S1
si attiva il programma di pianta giovane e tramite il pulsante S2
si attiva il programma corrispondente alla pianta adulta.

LED 1

LED 2

Sensore di luce

S1 S2

93
T9 Contatore di impulsi

¿Qué aprendo? Conoscenze pregresse

Incrementare una variabile Segnale digitale

Condizionale If/else annidato Funzione digitalWrite() e


digitalRead()
Anti-rimbalzo di un pulsante
Stampare dati sulla console
Leggere un'entrata digitale e
scrivere un'uscita digitale a Dichiarare variabili intere
determinata condizione

Materiali

1
1
1
LED Giallo

Arduino UNO 1
Breadboard

Pulsante
1

1 4

Cavo USB Tipo AB


Resistenza 1K Connettori MM

ESCANEA CON IL TUO


SMARTPHONE

CERCA T17AB
COSÌ

VISITA L'OPZIONE DI

94
P
L
A
N
O

E
S
Q
U
E
M
A

P
1—¿Cuál es el valor 2—Quali sono i 3—Questo simbolo a R
di questa resistenza? stati di una che corrisponde E
variable booleana? G
U
a._____________ N
_____Ω _________
_____KΩ b._____________ T
A

95
C /*
---------------------------------------------
Ó Contatore di impulsi
---------------------------------------------
D Programma che visualizza a schermo (console seriale) il numero
Io di volte che il pulsante è stato premuto, viene eseguita una
processo che si accende in base al numero di pulsazioni
G un LED

0 Cose di Meccatronica e Negozio di Robotica


*/
//--------------------------------------------------
//Dichiara porte di ingresso e uscita e variabili
D //--------------------------------------------------
intconta=0;//Variable para guardar el conteo de los pulsos
E
//------------------------------------
//Funzione principale
//------------------------------------
voidsetup()// Viene eseguito ogni volta che l'Arduino si avvia
{
P [Link](9600);//Inizia comunicazione seriale
pinMode(2,INPUT); //Configura il pin 2 come un'entrata, pulsante
R pinMode(13,OUTPUT);//Configura il pin 13 come uscita, LED
}
O
//------------------------------------
G //Funzione ciclica
//------------------------------------
R voidloop()// Questa funzione continua a essere eseguita
{ quando l'Arduino è alimentato
A
// Se il pulsante è premuto
M se(digitalRead(2)==ALTO)
{
A // Se il pulsante non è premuto, fronte di discesa
se(digitalRead(2)==BASSO)
C {
conta++; //Incrementa il contatore
Io [Link](conta);//Stampa il valore sulla console
ritardo(100);// Retardo
Ó }
}
N
// Se il valore del contatore è 5
if(conta==5)
{
digitalWrite(13,ALTO);//Accende il LED
}
// Se il valore del contatore è 8
se(conta==8)
{
digitalWrite(13,LOW);// Spegni il LED
}
}
//Fine programma

T 1–Arduino ha una grande comunità di apprendimento e per condividere diverse pre-


Io domande, nel forum ufficiale puoi trovare vari argomenti con un'alta quantità di
P respuestas:
S

[Link]/forum

96
ESERCIZI

1 Per la prossima festa il DJ Lui Lote ti ha assunto per che


incorpora uno spettacolo di luci realmente fantastico, per questo ha
a disposizione un pulsante 1 (B1) che può essere premuto molte volte, il
il numero di volte che lui preme è il numero di volte che andranno a
accendere e spegnere le luci a intervalli di 1s. Si utilizza un pulsante 2
(B2) per confermare la routine. Una volta che ho finito di fare la routine il
Il sistema deve essere pronto per fornire molti più impulsi e vedere altro
routine distinta.

B1 B2

2 Il DJ Lui Lote dell'esercizio 1 è tornato ricaricato con


nuove idee per il suo Show. Ora ne ha tre
diverse zone di illuminazione per la tua pista da ballo,
nella sua console DJ ha un pulsante per dare una chiusura-
numero di impulsi e poi dalla Console Serial il
dice a che zona di illuminazione vengono assegnati quelli
pulsos a intervalli di 1s. Le parole che riceve la
Consola Serial son: zona1 zona2 zona3

zona1 zona2 zona3

Pulsante

97
T10 Interruttore magnetico per un allarme visivo

Cosa imparo? Conoscenze pregresse

Ciclo for Segnale digitale

Condizionale If/else Funzione digitalWrite() e


digitalRead()
Stato del Reed switch
Parámetros de un for
Leggere un ingresso digitale e
scrivere un'uscita digitale Intermittenza di un LED

Materiali

1
1
1
LED Verde

Arduino UNO 1
Piastra di prototipazione

Interruttore Reed
1

1 4

Cavo USB Tipo AB


Resistenza 1K Connettori MM

ESCANEA CON IL TUO


SMARTPHONE

Cerca T18AB
COSÌ

VISITA LAOPCIÓN DI

98
P
L
A
N
O

E
S
Q
U
E
M
A

P
1—Qual è il valore 2—Cosa riceve la 3—Questo simbolo a R
di questa resistenza? funzionedelay()? che corrisponde E
G
U
_______________ N
_____Ω
_____KΩ ____________ T
A

99
C /*
---------------------------------------------
Ó Interruttore magnetico-Ladro in casa
---------------------------------------------
D Programma che genera un allerta visiva con un LED
Io a partire da un campo magnetico generato a un
interruttore a lamina

G Cose di Meccatronica e Negozio di Robotica


0 */
//--------------------------------------------------
//Dichiara porte di ingresso e uscita e variabili
//--------------------------------------------------
D
intcontacto=2;//Pin asignado al reed switch
E intled=13; //Pin assegnato al LED
//------------------------------------
//Funzione principale
//------------------------------------
voidsetup()// Viene eseguito ogni volta che l'Arduino si avvia
P {
pinMode(contacto, INPUT); //Il reed switch come un ingresso
R pinMode(led, OUTPUT); Il LED come uscita
O }
G //------------------------------------
//Funzione ciclica
R //------------------------------------
voidloop()// Questa funzione continua a essere eseguita
A { // quando l'Arduino è alimentato
M Se il magnete si avvicina all'interruttore reed
se(digitalRead(contacto)==BASSO){
A
//Ciclo for che va da 0 a 50, il contatore è
C // nella variabile a, si ripete finché a è
// minore di 50
Io per(int a=0; a<50; a++){
Ó digitalWrite(led,HIGH);//Accende il LED
ritardo(50);//Tempo
N digitalWrite(led,LOW);//Spegni il LED
ritardo(50);//Tempo
}
// Se il magnete è lontano dall'interruttore reed
}else{
digitalWrite(led,LOW);//Mantiene apagado el LED
} //Fine del if

}
//Fine del programma

T 1–Questi dispositivi ti permetteranno di sviluppare applicazioni orientate alla sicurezza


Io di un recinto, nello stile di un allarme antintrusione o sistemi di riconoscimento per
P parametri biometrici (impronta, iride, voce o volto)
S
Macchina fotografica a colori Sensore di vibrazione
Cattura a una risoluzione Rileva vibrazioni in
cion VGA superfici orizzontali

PIR Microfono MEMS


Sensore per rilevare Supporta un alto range
movimento di rumore

100
ESERCIZI

1 Una casa richiede un sistema di allarme, per questo in questo esercizio ti


proponiamo di emularne una. Quando tutti escono di casa la
l'ultima persona a uscire si occupa di attivare l'allarme tramite un
numero di 4 cifre, in quel momento il sistema inizia a ricevere
informazioni sui rilevatori magnetici (reed switch) ubicati in
ogni finestra e in ogni porta. L'allerta deve scattare quando un
il campo magnetico altera lo stato del reed switch, quando l'allarme
si attiva inizia a emettere un suono e inoltre genera un allarme visivo, l'unico
Il modo per disattivare l'allerta è mediante un codice numerico di 4 cifre che deve essere
diverso dal codice di attivazione, i passaggi sono descritti di seguito:

A–Per console seriale si riceve un numero intero di 4 cifre, se questo numero è uguale al
guardato dal sistema il sistema di allerta si attiva, per questo deve essere mostrato per
consola―Allerta attivata‖
Se il Reed switch rileva un campo magnetico, la console seriale deve mostrare
―Presenza di estraneo, sistema attivato‖
C–Come l'allerta si è attivata, è necessario accendere il buzzer per generare suono.
fa (si gestisce come un'uscita digitale) e inoltre il LED giallo e rosso si
deve alternare accensione/spegnimento ed emulare i movimenti di una sirena di
bomberosa intervalli di 1s.
D–Se si desidera disattivare l'allarme, è necessario inserire un codice numerico
intero di 4 cifre se corretto mostrare in console seriale - Allarme disattivato
Il passo C deve essere ripetuto finché non viene inserito il codice corretto.

Sirena
Campanello

Canne

IL MIO QUADERNO DEGLI APPUNTI

101
T11 LED RGB supportato da tabella di colori

Cosa imparo? Conoscenze pregresse

Manejar el código de colores Segnale digitale


RGB
Funzione analogWrite()
Uso di una funzione
LED a anodo comune
PWM a tre uscite
Struttura di un programma
Manipolare una variabile in Arduino

Materiales

1 1 1

Arduino UNO
LED RGB Breadboard

1 3 5

Cavo USB Tipo AB


Resistenza 220 Connettori MM

ESCANEA CON IL TUO


SMARTPHONE

CERCA T19AB
COSÌ

VISITA LAOPCIÓN DI

102
P
L
A
N
O

E
S
Q
U
E
M
Un

P
1—Qual è il valore 2—La parola―pulso‖ 3—Questo simbolo a R
di questa resistenza? si deve conservare in che corrisponde E
una variabile di tipo : G
U
_____Ω _______________ ____________ N
_____KΩ
T
A

103
C /*
---------------------------------------------
Ó LED RGB - Tabella dei Colori
---------------------------------------------
D Programa que hace uso de una función llamada
Io color per generare diverse tonalità in
un LED RGB
G Cose di Meccatronica e Negozio di Robotica
0 */
//--------------------------------------------------
//Dichiarare porte di ingresso e uscita e variabili
//--------------------------------------------------
D intledRojo=9;//Declara Pin LED Rojo
intledVerde=10;//Declara Pin LED Verde
E intledAzul=11;//Declara Pin LED Azul
//------------------------------------
//Funzione principale
//------------------------------------
voidsetup()// Viene eseguito ogni volta che l'Arduino si avvia
P {
pinMode(ledRojo, OUTPUT);//Il LED Rosso come uscita
R pinMode(ledVerde,OUTPUT);//Il LED Verde come uscita
pinMode(ledAzul, OUTPUT);//Il LED Blu come un'uscita
O }
G //------------------------------------
//Funzione ciclica
R //------------------------------------
voidloop()// Questa funzione continua a essere eseguita
A { // quando l'Arduino è alimentato
M // Chiamata alla funzione Colore che riceve
1ª posizione: Intensità Rosso
A // 2da posizione: Intensità Verde
// 3ra posizione: Intensità Blu
C
color(255,0,0); //Rojo
Io ritardo(1000);
Ó colore(0,255,0); Verde
ritarda(1000);
N
color(0,0,255); Blu
ritardo(1000);
color(255,255,255);//Bianco
ritardo(1000);
color(255,0,255);//Magenta
ritardo(1000);
colore(255,128,0);//Arancione
ritarda(1000);
}
//------------------------------------
//Funzione colore
//------------------------------------
voidcolor(introjo,intverde,intazul){
//Scrittura del PWM del colore Rosso
analogWrite(ledRosso, 255-rojo);
//Scrittura di PWM del colore Verde
analogWrite(ledVerde,255-verde);
Scrittura del PWM del colore Blu
analogWrite(ledAzul,255-azul);
}
//Fine programma

T Questi due dispositivi possono generare fino a un miliardo di colori diversi


Io
P MegaBrite ShiftBrite
S

104
EJERCICIOS

1 L'illuminazione della reception dell'Hotel Mancherie è qualcosa di speciale perché di


in base allo stato d'animo del proprietario, il signor Martin, si deve configurare la luce in
una scala RGB. L'operatore delle luci è molto abile poiché si occupa di ricevere
i colori desiderati dal signor Martin, così l'operaio si occupa di scrivere
per Consola Serial un valore RGB separato da virgole (,). Quindi devi sviluppare
un programma che prenda queste informazioni e le applichi a un LED RGB, prende come
Esquema della pagina 103. Ad esempio, se viene inviato:

255,0,0-> LED RGB mostra il tono Rosso


153,255,0-> LED RGB mostra un Verde lime
0,102,255-> LED RGB mostra un Blu cielo

2 L'operaio del punto precedente va in vacanza, per cui il signor Martin è molto arrabbiato perché non
capisce molto bene come scrivere il colore separato da virgole. Per questo motivo, all'operatore è venuta in mente una
gran idea, collocare due pulsanti:

Il pulsante 1 (S1) permette di scegliere un colore all'interno di un menu (Rosso, Verde o Blu), ogni volta che viene premuto
S1 il testo sulla Console Serial che dice il colore deve cambiare, deve avere antirimbalzo affinché per ogni
pulso dato solo cambie un colore. Un esempio del pulso dato e il valore mostrato dalla console:

Pulso 1-> Rojo


Pulso 2-> Verde
Pulso 3-> Blu
Pulso 4-> Rojo

Il pulsante 2 (S2) consente di variare il colore da 0 a 255 dell'ultimo nome del colore che è stato assegnato tramite
te il Pulsatore 1 (S1). Mentre S2 è mantenuto premuto a intervalli di 100ms (millisecondi), la variabile di
quel colore deve aumentare di uno in uno. Deve essere stampato il nome del Colore (stato finale)
a causa di S1) e successivamente il valore numerico del colore, infine il risultato deve essere visibile riflesso
jado nel LED RGB. Ad esempio, in base all'ultimo stato del Pulsante 4 e poi si preme S2:

Pulso 4-> Rojo


Rosso 0
100ms
Rosso 1
100ms
Rosso 2

Aiuti per risolverlo: Per ogni colore devi creare due variabili, una per salvare il nome del colore e
l'altra per salvare il valore numerico che hai di quel colore.

LED RGB

S1 S2

105
T12 Controllo ON/OFF di un motore

¿Qué aprendo? Conoscenze pregresse

Controllo ON/OFF Segnale digitale

Condizionale If/else Función digitalWrite() y


digitalRead()
Collegare un motore DC tramite
transistor Divisore di tensione

Condizionali a partire dal Riconoscere un transistor e un


stato del pulsante motore

Materiali

1
1

1
Transistor NPN
Arduino UNO
1
1 Breadboard

Pulsante
Cavo USB Tipo AB

1 2 8

Resistenza 1K Connettori MM
Motore DC

ESCANEA CON IL TUO


SMARTPHONE

CERCA T20AB
COSÌ

VISITA L'OPZIONE DI

106
P
L
A
N
O

E
S
Q
U
E
M
A

P
1—Qual è il valore 2—Se voglio salvare 3—Questo simbolo a R
di questa resistenza? il numero π che che corrisponde E
tipo de variable G
devo usare? U
_____Ω N
_______________ _______________ T
_____ΩM
A

107
C /*
---------------------------------------------
Ó Controllo ON/OFF di un motore
---------------------------------------------
D Programma che utilizza un motore e un pulsante,
Io mentre è mantenuto premuto, il motore deve
essere acceso (ON) altrimenti deve essere
G spento (OFF)

0 Cose di Meccatronica e Negozio di Robotica


*/

D //--------------------------------------------------
//Dichiarare porte di ingresso e uscita e variabili
E //--------------------------------------------------
intpulsador=7;//Declara Pin del pusaldor
intmotor=3; //Dichiarare il pin del motore

P //------------------------------------
//Funzione principale
R //------------------------------------
voidsetup()// Se ejecuta cada vez que el Arduino se inicia
O {
pinMode(pulsador, INPUT);//Il pulsante come un'entrata
G pinMode(motor,OUTPUT);//Il motore come un'uscita
}
R
A
//------------------------------------
M //Funzione ciclica
//------------------------------------
A voidloop()// Questa funzione continua a essere eseguita
{ // quando l'Arduino è alimentato
C
Io Se il pulsante è premuto
se(digitalRead(pulsador)==ALTO){
Ó
digitalWrite(motor,HIGH);//Accende il motore
N
}else{//se il pulsante non è premuto
digitalWrite(motor,LOW);//Spegne il motore
}

}
// Fine programma

T 1–UnPuente È un circuito elettronico che permette a un motore


Io DC girare in entrambe le direzioni, avanzare e retrocedere. Sono ampiamente utilizzati.
P in robotica e come convertitori di potenza.
S
I ponti H sono disponibili come circuiti
integrati, ma possono anche essere costruiti a
partire da componenti discreti. Il termine
"puente H" proviene dalla tipica rappresentazione
grafico del circuito. Un ponte H è costruito con
4 interruttori (meccanici o tramite transistor-
res). Quando gli interruttori S1 e S4 sono chiusi-
dos e S2 e S3 aperti si applica una tensione positiva al motore, facendolo girare in un
senso. Aprendo gli interruttori S1 e S4 e chiudendo S2 e S3, la tensione si inverte,
consentendo la rotazione in senso inverso del motore. Con la nomenclatura che
stiamo usando, gli interruttori S1 e S2 non potranno mai essere chiusi al
stesso tempo, perché questo cortocircuiterebbe la fonte di tensione. Lo stesso
accade con S3 e S4.

108
ESERCIZI

1 Un mulino per estrarre acqua sotterranea ha un motore che aiuta


al processo di pompaggio del liquido, l'acqua si trova a una profondità di
didad di 40m e la motobomba deve funzionare in modo continuo.
Il contadino ha un unico pulsante (S1), premendo questo per
la prima volta si accende il motopompa se lui preme di nuovo il mi-
premo il pulsante per la seconda volta, la motobomba si spegne e quindi si
smetti di pompare il liquido. Il montaggio di questo esercizio usa il mis-
moSchema di connessioni che quello esposto a pagina 107.

2 Al mercato è uscito un nuovo detergente per lavatrici, con


una grande novità, se quando usi il detersivo nella tua lavatrice questa
bate verso destra (D) a un certo tempo è possibile
rimuovere le macchie nei vestiti mentre la lavatrice gira
a sinistra(I)a un certo tempo alla fine del ciclo di
lavado la ropa tendrá una textura muy sedosa como si se le
avrei applicato ammorbidente. L'azienda Lucky Lucgran fabbrica
cante di lavatori vuole implementare questo sistema, per questo
ti ha assunto per sviluppare il programma che dia
In base a ciò che viene ricevuto dalla console, si deve azionare la lavatrice, per esempio:

D,3La lavatrice batte a destra per 3 secondi


I,2Lavatrice colpisce a sinistra per 2 secondi
A Lavatrice spenta

IL MIO QUADERNO DEGLI APPUNTI

109
T13 Controllo PWM di un motore

Cosa imparo? Conoscenze pregresse

Leggere dati dalla Console Serial Segnale analogico

Manejo della funzione map() Funzione analogWrite() e


[Link]()
Variare il PWM per produrre 5
velocità distinte PWM

Fase di potenza per un Condizionale e operatori di


motore tramite transistor confronto

Materiali

1
1
1
Transistor NPN

Arduino UNO 1
Piastra prototipale

Motore DC
1

1 5

Cavo USB Tipo AB


Resistenza 1K Connettori MM

ESCANEA CON IL TUO


SMARTPHONE

CERCA T21AB
COSÌ

VISITA LAOPCIÓN DI

110
P
L
A
N
O

E
S
Q
U
E
M
A

P
1—Qual è il valore 2—Come si scrive- 3—Questo simbolo a R
di questa resistenza? ben i seguenti che corrisponde E
numeri in binario? G
U
7=______ N
_____Ω
_____KΩ 5=______ _______________ T
2=______
A

111
C /*
---------------------------------------------
Ó Controllo PWM di un motore
---------------------------------------------
D Programma che fa uso di un motore e della Console
Io la seriale di Arduino ha la possibilità di
configurare il motore a 5 velocità diverse,
G dal tastiera del PC puoi inviargli la
velocità desiderata. Le 5 velocità sono configurate
0 con 5 PWM distinti.
Cose di Meccatronica e Negozio di Robotica
*/
D //--------------------------------------------------
//Dichiara porte di ingresso e uscita e variabili
E //--------------------------------------------------
intmotor=3; //Dichiara Pin del motore
//------------------------------------
//Funzione principale
//------------------------------------
P voidsetup()// Viene eseguito ogni volta che l'Arduino si avvia
{
R [Link](9600);//Inizia la comunicazione seriale Arduino-PC
}
O
//------------------------------------
G //Funzione ciclica
//------------------------------------
R voidloop()// Questa funzione rimane in esecuzione
{ // cuando este energizado el Arduino
A
// Se c'è qualche valore nella Console Seriale
M se([Link]()){
A //Variabile dove viene memorizzato il carattere inviato dalla tastiera
chara=[Link]();
C
// Se il carattere inserito è tra 0 e 5
Io se(a>='0'&&a<='5'){
Ó //Variabile per scalare il valore inserito all'intervallo di PWM
intvelocidad=map(a,'0','5',0,255);
N //Scrittura di PWM al motore
analogWrite(motore, velocità);
//Messaggio per l'utente
[Link]("Il motore sta girando alla velocità ");
[Link](a);
}else{// Se il carattere inserito NON è tra 0 e 5
//Mensaje para el usuario
[Link]("Velocità non valida");
[Link](a);
}
}
}
//Fino programma

T 1–L'Arduino può essere programmato anche in linguaggi grafici, ad esempio:


Io
P
Modkit
S

Scratch per Arduino

112
EJERCICIOS

Il direttore del film Super Coccodrillo deve girare una


1 scena in cui Super Coccodrillo riceve forti venti per
far muovere il suo mantello da supereroe all'unisono con la
velocità del vento, per questo ha un grande ventilatore
(motore) ad alta potenza, il controllo della velocità del
ventilador la tiene el director, en la medida que él gire el potencióme-
La velocità deve cambiare. La tua missione è sviluppare un programma che soddisfi
queste caratteristiche affinché la scena possa essere registrata ;)

L'ultima novità della Fiera degli Elettrodomestici ha lasciato con grande re-
2
nomina un frullatore che incorpora due pulsanti tramite i quali è
è possibile variare le 10 diverse velocità (da 0 a 9) al momento di frullare.
Tutto questo è supportato dalla Console seriale dove è possibile vedere la Velocità
scelta, i pulsanti vengono regolati nel seguente modo:

Pulsatore 1 (S1) permette di scegliere una velocità all'interno di un menu (Velocità 0 … Velocità 9), ogni volta
che premendo S1 il testo sulla Consola Serial che dice la velocità deve cambiare, deve avere antirebote
affinché ad ogni impulso dato cambi solo una velocità. Un esempio dell'impulso dato e del valore mostrato
per console:

Pulso 1-> Velocidad 0


Pulso 2-> Velocità 1
Pulso 3-> Velocidad 2

Pulsatore 2 (S2): premendo S2 per la prima volta, il motore deve iniziare a girare alla velocità scelta.
di fronte a S1, se si preme per la seconda volta S2 il motore deve fermarsi. Sulla console seriale deve essere mostrato
―Frullatore che gira alla velocità x‖o―Frullatore fermo‖a seconda del caso.

S1 S2

113
T14 Generare toni con un buzzer

Cosa imparo? Conoscenze pregresse

Gestione delle variabili di tipo Segnale digitale e analogico


intera
Funzione map() e analogRead()
Utilizzare funzioni speciali di
Arduino Inviare parametri alle fun-
cioni
Generare diversi toni
Ritardi attraverso delay()
Produrre uscite di frequenza

Materiali

1 1 1

Arduino UNO Buzzer


Protoboard

1 1

Cavo USB Tipo AB Potenziometro 10K


Connettori MM

ESCANEA CON IL TUO


SMARTPHONE

CERCA T22AB
COSÌ

VISITA LAOPCIÓN DI

114
P
L
A
N
O

E
S
Q
U
E
M
A

P
1—Qual è il valore 2—Elswitch...case 3—Questo simbolo a R
di questa resistenza? è un tipo di cosa corrisponde E
G
U
_____Ω N
_______________ _______________
_____MΩ
T
A

115
C /*
---------------------------------------------
Ó Generare toni con un buzzer
---------------------------------------------
D Programma che utilizza un buzzer (chicharra) e un
Io potenziometro, l'idea è generare diversi toni
nel buzzer a partire dallo stato analogo del
G potenziometro. Inoltre si utilizza la funzione
tonalità che è molto utile per generare diverse melodie
0 Cose di Meccatronica e Negozio di Robotica
*/

//--------------------------------------------------
D //Dichiara porte di ingresso e uscita e variabili
//--------------------------------------------------
E intbuzzer=9;//Dichiara Pin del buzzer
inttono=0; //Dichiarare Pin del potenziometro

//------------------------------------
//Funzione principale
P //------------------------------------
void setup() // Viene eseguito ogni volta che l'Arduino viene avviato
R {
// Non vengono configurati parametri iniziali, ma devono essere impostati
O // posizionare l'intestazione della funzione setup()
}
G
R //------------------------------------
//Funzione ciclica
A //------------------------------------
voidloop()// Questa funzione continua a essere eseguita
M { // quando l'Arduino è alimentato
A //Variabile intera dove viene memorizzato il valore del potenziometro
intsensor=analogRead(tono);
C
//Variabile dove si scala la frequenza da 100 a 5000Hz
Io intfrecuencia=map(sensor,0,1023,100,5000);
Ó //Variabile intera per memorizzare il tempo desiderato in ms
intduracion=250;
N
//Funzione tone(), che riceve:
// 1ra posizione: Pin dell'elemento sonoro
// 2a posizione: Frequenza desiderata in Hz
// 3ra posizione: Durata del tono
tono(buzzer, frequenza, durata);
Ritardo
ritarda(100);
}

//Fine programma

T 1–Se hai difficoltà ad imparare i colori delle resistenze, un piccolo aiuto


Io online non ti farebbe male ;) inWolfram Alphapuoi fare questo:
P
S

116
ESERCIZI

Ti proponiamo di fare un sintetizzatore musicale di due


toni, usando due pulsanti. L'idea è che premendo
S1 produca un tono a una frequenza di 400Hz con
una durata di 100 ms, mentre se premi S2 si
produci un tono a frequenza di 2600Hz con una dura-
Combina questi due toni fino a quando
sviluppi una bella melodia.

Campanello

S1 S2

IL MIO QUADERNO DEGLI APPUNTI

117
A Ciao, vogliamo conoscere i tuoi
P
O opinioni riguardo a questo ma-
R Il materiale è di grande aiuto con il
T spirito di continuare a migliorare i
E
S contenuti e facendo questi
più chiari.

Siamo pronti a ricevere tutto


tipo de comentarios que nos
servano di realimentazione e rafforzino di più la nostra co-
comunità di conoscenze.

Scrivici a:

ventas@[Link]

Grazie mille per i tuoi contributi :D

118
Guida di base per Arduino

Fallo tu stesso e impara elettronica e programmazione

9 Capitoli di contenuto

14 Tutorial passo passo

28 Esercizi applicati a casi della vita reale

Domande, consigli, quiz e molto altro

Contattaci

[Link]
ventas@[Link]

tdrobotica

tdrobotica

Cose di Meccatronica

Potrebbero piacerti anche