Libro Kit Base Arduino
Libro Kit Base Arduino
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
6. Arduino .................................................................................. 43
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
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.
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
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.
12
[Link] TENERE IN CONSIDERAZIONE
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.
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.
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.
[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.
[Link]
15
Licenza dell'opera
2H
[Link]/licenses/by-nc-sa/3.0/[Link]
16
3. ELETTRONICA
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.
Tensione
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
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.
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.
18
Resistenza
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
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.
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
Variabile analoga
21
Ingresso / uscita digitale
30
Ingresso Uscita Ingresso
Pulsatore LED Interruttore Reed
3P
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
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.
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.
CERCA T03AB
COSI
VISITA LA OPZIONE DI
23
Hoja dejada en blanco de manera intencional
24
4. COMPONENTI ELETTRONICI
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).
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
Resistenza
4C
Simbolo Componente
26
Tabella dei colori delle resistenze
4D
Esempio
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).
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à.
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
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.
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.
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.
CERCA T05AB
COSÌ
VISITA L'OPZIONE DI
31
Foglio lasciato bianco intenzionalmente
32
5. PROGRAMMAZIONE
Concetto di programmazione
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.
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).
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
Strutture 5G
Variabili
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.
5I
vero o falso Valore intero Memorizza un ASCII
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
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()
pinMode(pin, modo)
pinMode(13,OUTPUT);
pinMode(a, INPUT);
digitalRead() digitalWrite()
digitalWrite(13,BASSO);
_____________ _____________
38
Funzioni analoghe
Ideali per la lettura e scrittura di valori analogici
ESERCIZI
1
Collega i seguenti termini, ogni lettera ha tre termini associati:
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()
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
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".
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:
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
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
14 Entrate analoghe
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
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:
3 Collegare la scheda Arduino Uno al PC e vedere questo avviso. Non dobbiamo preoccuparci di
occupare
48
WINDOWS 7, Vista e XP
6
Accedi all'opzione Cerca software di driver sul computer
49
Riceviamo la conferma del Porto COM assegnato, questo numero di Porto
9
È molto importante tenerlo in considerazione al momento di programmare.
CERCA T07AB
COSÌ
VISITA L'OPZIONE DI
50
Conoscere il software Arduino
6F
1 Puerto COM
51
2 Selezionare la scheda su cui lavorare
3 Consola seriale
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
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
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.
KIT BÁSICO 7 6
2 5 7B
1
3 4
1 3 5
1 xArduino Uno 5 xLed 5mm 5 xResistencia 220Ω
7
1 cavo USB Tipo AB
10 connettori rapidi MM
55
Fotos
7C
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
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.
A
E
F
C
G
D
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
61
T1 Ciao mondo—LED intermittente
Materiali
1 1
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)
}
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
64
EJERCICIOS
1
A partire dal codice di programmazione spiegato in precedenza, vogliamo che
un LED si accende in modo intermittente nel seguente modo:
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 è:
65
T2 Encender un LED con un pulsador
Materiali
1
1
1
LED Giallo
Arduino UNO 1
Protoboard
Pulsante
1
1 4
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
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
69
T3 Lettura seriale di un ingresso digitale
Materiali
1
1
Arduino UNO
Pulsatore Piastra prototipale
1
1
4
Resistenza 1K
Cavo USB Tipo AB
Connettori MM
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);
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).
73
T4 Lettura seriale di un ingresso analogico
Materiali
1
1
1
Arduino UNO
Breadboard
1
Potenziometro 10K
3
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
2–Per ricordare
76
EJERCICIOS
77
T5 Scrittura seriale
Materiali
1 1
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.
//--------------------------------------------------
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
81
T6 Accendere un LED tramite PWM
Materiales
1
1
1
LED Giallo
Arduino UNO
Placca di prototipazione
1
1
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
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:
85
T7 Controllo ON/OFF con potenziometro
Materiali
1
LED Verde 1
1
Arduino UNO
Breadboard
1
Potenziometro 10K
1
3
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
89
T8 Controllo di un LED con una fotocellula
Materiali
1 1
1
LED Verde
Arduino UNO
1 1 Breadboard
Fotocella
Cavo USB Tipo AB
1 5
1
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
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
92
ESERCIZI
LED 1
LED 2
Sensore di luce
S1 S2
93
T9 Contatore di impulsi
Materiali
1
1
1
LED Giallo
Arduino UNO 1
Breadboard
Pulsante
1
1 4
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
[Link]/forum
96
ESERCIZI
B1 B2
Pulsante
97
T10 Interruttore magnetico per un allarme visivo
Materiali
1
1
1
LED Verde
Arduino UNO 1
Piastra di prototipazione
Interruttore Reed
1
1 4
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
}
//Fine del programma
100
ESERCIZI
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
101
T11 LED RGB supportato da tabella di colori
Materiales
1 1 1
Arduino UNO
LED RGB Breadboard
1 3 5
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
104
EJERCICIOS
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:
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:
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
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
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)
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
108
ESERCIZI
109
T13 Controllo PWM di un motore
Materiali
1
1
1
Transistor NPN
Arduino UNO 1
Piastra prototipale
Motore DC
1
1 5
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
112
EJERCICIOS
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:
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
Materiali
1 1 1
1 1
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
116
ESERCIZI
Campanello
S1 S2
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.
Scrivici a:
ventas@[Link]
118
Guida di base per Arduino
9 Capitoli di contenuto
Contattaci
[Link]
ventas@[Link]
tdrobotica
tdrobotica
Cose di Meccatronica