introduzione a arduino
TRANSCRIPT
![Page 2: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/2.jpg)
Benvenuti!
Introduzione 2
• Cosa è Arduino?
• Cosa si può fare?
• La sua storia
• Com’è fatto?
• Come si usa?
• Esempi pratici
![Page 3: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/3.jpg)
Cosa è Arduino?
Introduzione 3
Arduino, come tutte le invenzioni di successo,
è la risposta ad un problema.
E’ uno strumento open source che semplifica la
progettazione e la prototipazione elettronica
offrendo a studenti, insegnanti, artisti o semplici
appassionati una piattaforma hardware e software
per l’implementazione rapida di progetti interattivi,
multimediali e multidisciplinari.
![Page 4: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/4.jpg)
Cosa è Arduino?
Introduzione 4
• Piattaforma Open-source per la prototipazione elettronica
• Composta da una parte di hardware ed una di software open-source
• Artisti, designers, hobbisti, CHIUNQUE!
![Page 5: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/5.jpg)
Cosa è Arduino?
Introduzione 5
Una PIATTAFORMA di PROTOTIPAZIONE ELETTRONICA OPEN SOURCE:
PIATTAFORMA: Architettura hardware con un framework
software su cui fare girare un programma software.
PROTOTIPO: Un modulo iniziale che può servire come base o
modello per la creazione di altre cose.
ELETTRONICA: Tecnologia che fa uso del movimento
controllato di elettroni attraverso differenti media.
OPEN SOURCE: Risorse possono essere usate, redistribuite o
riscritte gratis.
![Page 6: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/6.jpg)
Cosa NON è Arduino?
Introduzione 6
• NON è un computer, ma un physical computer.
• NON è un giocattolo.
• NON è costoso.
![Page 7: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/7.jpg)
Cosa NON è Arduino?
Introduzione 6
• NON è un computer, ma un physical computer.
• NON è un giocattolo.
• NON è costoso.
Mini-elaboratori elettronici adibiti al
controllo di oggetti nel mondo reale.
![Page 8: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/8.jpg)
Con Arduino si possono realizzare in
maniera relativamente rapida e semplice
piccoli dispositivi come controllori di luci,
di velocità per motori, sensori di luce,
temperatura e umidità e molti altri
progetti che utilizzano sensori, attuatori e
comunicazione con altri dispositivi.
Cosa si puo fare?
Introduzione 7
![Page 9: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/9.jpg)
Storia di Arduino
Introduzione 8
Il progetto nasce da Wiring, una piattaforma per la
prototipazione elettronica semplificata, destinata ad
artisti, architetti e altri professionisti digiuni di
elettronica, realizzata da Hernando Barragán per la
sua tesi di laurea (di cui Banzi era relatore) presso
l’Interaction Design Institute di Ivrea.
Arduino ha di fatto ereditato i presupposti
e gli scopi originali di Wiring, espandendo
la portata e il potenziale del progetto.
![Page 10: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/10.jpg)
Storia di Arduino
Introduzione 9
Il nome della scheda deriva da quello di un bar di Ivrea (che richiama a sua volta il nome di Arduino d'Ivrea, Re d'Italia nel 1002) frequentato da alcuni dei fondatori del progetto.
![Page 11: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/11.jpg)
Storia di Arduino
Introduzione 10
La “faccia” di Arduino è Massimo Banzi, InteractionDesigner che nel 2005 fonda ad Ivrea il team di sviluppo originale insieme a David Cuartielles, Tom Igoe, Gianluca Martino e Davide Mellis.
![Page 12: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/12.jpg)
Storia di Arduino
Introduzione 11
La vera svolta per il progetto è arrivata grazie all’appoggio globale negli ambienti di quello che è ormai all’unanimità chiamato Maker Movement, la “sottocultura” degli hobbisti tecnologici del 21-esimo secolo.
I maker “non sono nerd, anzi sono dei tipi piuttosto fighi che
si interessano di tecnologia, design, arte, sostenibilità, modelli
di business alternativi. Vivono di comunità online, software e
hardware open source ma anche del sogno di inventare
qualcosa da produrre autonomamente, per vivere delle
proprie invenzioni. In un momento di crisi si inventano il loro
lavoro invece che cercarne uno classico.”
![Page 13: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/13.jpg)
Storia di Arduino
Introduzione 12
Pubblicazioni su internet e
riviste come Make e promozioni
di iniziative come la Maker Faire
hanno ulteriormente promosso
il movimento.
![Page 14: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/14.jpg)
Storia di Arduino
Introduzione 13
A ottobre 2008 erano già stati venduti più di 50.000
esemplari di Arduino in tutto il mondo.
Arduino ha ricevuto una menzione d'onore nella
sezione Digital Communities del 2006 Ars
Electronica Prix.
![Page 15: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/15.jpg)
Hardware generico di Arduino
Introduzione 14
Arduino è, di fatto, un’interfaccia semplificata per un microcontrollore, che è dunque il cuore di ogni “board”.
Un “microcontroller” è un dispositivo elettronico integrato su un unico chip, progettato appositamente per interagire con input esterni, analogici o digitali, e restituire output analogici o digitali derivati dalle operazioni di processamento interno determinate da un programma caricato nella memoria del chip.
Physical computer 8-bit a 16MHz con 32kb di memoria(l’equivalente circa di un computer desktop degli anni 80)
![Page 16: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/16.jpg)
Hardware generico di Arduino
Introduzione 15
Nei primi modelli Banzi e il suo team utilizzarono un microcontrollore Atmel a 8-bit AVR, per poi passare a soluzioni più potenti con le versioni successive.
![Page 17: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/17.jpg)
Hardware generico di Arduino
Introduzione 16
Per permettere agli Arduino di comunicare con un computer tramite USB e renderne semplice la programmazione, ogni scheda integra un ulteriore chip per la conversione del segnale digitale da USB a seriale.
![Page 18: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/18.jpg)
Hardware generico di Arduino
Introduzione 17
Quasi tutte le schede Arduino integrano altri componenti, alcuni specifici a seconda del modello, quali ad esempio un oscillatore ceramico, un pulsante di reset che fa ripartire la scheda in caso di stallo del programma in memoria, un jack per la connessione dell’alimentazione diretta.
Su ogni board Arduino sono presenti infine dei pin (“piedini”) di input e output attraverso i quali il microcontrollore riceve le “informazioni” in ingresso e restituisce all’ambiente un segnale in uscita.
![Page 19: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/19.jpg)
Hardware generico di Arduino
Introduzione 18
E’ un hardware open source, distribuito nei termini della licenza Creative Commons Attribution-ShareAlike 2.5.
In questo modo, chi lo desidera può legalmente auto-costruirsi un clone di Arduino o derivarne una versione modificata, scaricando gratuitamente lo schema elettrico e l'elenco dei componenti elettronici necessari. Questa possibilità ha consentito lo sviluppo di prodotti Arduino compatibili da parte di piccole e medie aziende in tutto il mondo: è quindi divenuto possibile scegliere tra un'enorme quantità di schede Arduino-compatibili.
![Page 20: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/20.jpg)
I vari modelli di Arduino
Introduzione 19
![Page 21: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/21.jpg)
Arduino UNO
Introduzione 20
Microcontrollore: ATmega328
Numero di Input/Output digitali: 14 (di cui 6 output PWM)
Numero di Input Analogici: 6
Memoria: 32KB; 2KB SRAM; 1KB EEPROM
Velocità di Clock: 16MHz
![Page 22: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/22.jpg)
Arduino MICRO
Introduzione 21
Microcontroller ATmega32U4
Digital I/O Pins 20
PWM Channels 7
Analog Input
Channels12
Flash Memory
32 KB
(ATmega32U4)
of which 4 KB
used by
bootloader
SRAM2.5 KB
(ATmega32U4)
EEPROM1 KB
(ATmega32U4)
Clock Speed 16 MHz
Length 48 mm
Width 18 mm
Weight 13 g
![Page 23: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/23.jpg)
Arduino Lilypad
Introduzione 22
• Indossabile
• Lavabile
![Page 24: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/24.jpg)
Arduino YUN
Introduzione 23
The Arduino Yun is a MIPS board based on
the Atheros AR9331 and the ATmega32u4.
The Atheros processor supports Linino, a
Linux distribution based on OpenWRT. The
board has built-in Ethernet, 802.11 g/b/n
WiFi support, USB-A port, micro-SD card slot,
20 digital input/output
pins(of which 7 can be
used as PWM outputs
and 12 as analog
inputs), a
16 MHz crystal
oscillator, a micro
USB connection, an
ICSP header, and 3
reset buttons.
![Page 25: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/25.jpg)
Il linguaggio
Introduzione 24
Linguaggio programmazione simile al C
• Derivato da Wiring
• Due funzioni principali:
• setup()
• loop()
• Facilmente espandibile
• Codice organizzato in «sketch»
![Page 26: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/26.jpg)
L’ambiente di sviluppo
Introduzione 25
setup()
loop()
![Page 27: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/27.jpg)
Sensori e attuatori
Introduzione 26
![Page 28: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/28.jpg)
Segnali
Introduzione 27
SEGNALI
![Page 29: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/29.jpg)
Segnali
Introduzione 27
SEGNALI
ANALOGICI
![Page 30: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/30.jpg)
Segnali
Introduzione 27
SEGNALI
ANALOGICI
DIGITALI
![Page 31: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/31.jpg)
Segnali analogici
Introduzione 28
Un segnale analogico può assumere qualsiasi valore (all'interno di un range noto).
![Page 32: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/32.jpg)
Segnali digitali
Introduzione 29
01001000 01100101 01101100 01101100 01101111 Hello
La quantità può essere SOLO di
valori specifici
![Page 33: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/33.jpg)
Come viene letto un segnale
Analogico o Digitale?
Introduzione 30
• Un segnale analogico deve essere campionato, ovvero
convertito in una sequenza di bit che ne esprime l'ampiezza
affinchè possa essere letto ed elaborato da Arduino,
• Un segnale digitale è immediatamente "leggibile" non
appena ne è stato discriminato il livello (High/Low).
• Del segnale analogico interessa leggere il valore istantaneo,
opportunamente campionato.
• Del segnale digitale occorre sapere solo lo stato alto o
basso.
![Page 34: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/34.jpg)
Come viene letto un segnale
Analogico o Digitale?
Introduzione 30
• Un segnale analogico deve essere campionato, ovvero
convertito in una sequenza di bit che ne esprime l'ampiezza
affinchè possa essere letto ed elaborato da Arduino,
• Un segnale digitale è immediatamente "leggibile" non
appena ne è stato discriminato il livello (High/Low).
• Del segnale analogico interessa leggere il valore istantaneo,
opportunamente campionato.
• Del segnale digitale occorre sapere solo lo stato alto o
basso.
Arduino come riconosce se un
segnale è di ingresso o di uscita?
![Page 35: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/35.jpg)
Come viene letto un segnale
Analogico o Digitale?
Introduzione 30
• Un segnale analogico deve essere campionato, ovvero
convertito in una sequenza di bit che ne esprime l'ampiezza
affinchè possa essere letto ed elaborato da Arduino,
• Un segnale digitale è immediatamente "leggibile" non
appena ne è stato discriminato il livello (High/Low).
• Del segnale analogico interessa leggere il valore istantaneo,
opportunamente campionato.
• Del segnale digitale occorre sapere solo lo stato alto o
basso.
Come leggo o scrivo sui PIN?
Arduino come riconosce se un
segnale è di ingresso o di uscita?
![Page 36: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/36.jpg)
Hello world! – Blink sketch
Esempio di output digitale
Introduzione 31
HANDS ON!
![Page 37: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/37.jpg)
Hello world! – Blink sketch
Esempio di output digitale
Introduzione 32
![Page 38: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/38.jpg)
I LED
Introduzione 33
I LED standard sono in grado di assorbire fra 1,2V e 3,8V (dipende dal colore)
I pin di Arduino erogano fino a 5V!
Come assorbire la tensione in eccesso?
![Page 39: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/39.jpg)
Richiami di elettronica
Introduzione 34
Intensità di corrente
La quantità di carica
elettrica che attraversa
la sezione di un
conduttore entro
un'unità di tempo; si
misura in ampere (A).
Tensione
E’ il dislivello elettrico a
cui vengono mantenuti
gli elettroni e si misura
in volt (V). Questo
dislivello è creato dal
generatore di corrente.
Resistenza
E’ la capacità di un
conduttore di opporsi al
passaggio di corrente; si
misura in ohm (Ω) e
dipende dal materiale,
dalla sezione e dalla
lunghezza del conduttore.
![Page 40: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/40.jpg)
Legge di Ohm
Introduzione 35
![Page 41: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/41.jpg)
Legge di Ohm
Introduzione 36
Ecco a cosa possono servire le resistenze!
La luminosità del led è proporzionale all’intensità della corrente che lo attraversa
I led sopportano una corrente di circa 20mA = 0,02A
Come assorbire la tensione in eccesso? Esempio: Led giallo da 2,1V
• Devo assorbire 5V – 2,1V = 2,9V => 2,9 = 0.02*R
• R = 2,9/0.02 = 145 Ohm
I valori standard sono limitati, devo prendere il valore superiore più vicino (150 Ohm)
Normalmente per essere sicuri, usare 220 Ohm e si possono evitare i calcoli, al più il led è meno luminoso
![Page 42: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/42.jpg)
Legge di Ohm
Introduzione 36
Ecco a cosa possono servire le resistenze!
La luminosità del led è proporzionale all’intensità della corrente che lo attraversa
I led sopportano una corrente di circa 20mA = 0,02A
Come assorbire la tensione in eccesso? Esempio: Led giallo da 2,1V
• Devo assorbire 5V – 2,1V = 2,9V => 2,9 = 0.02*R
• R = 2,9/0.02 = 145 Ohm
I valori standard sono limitati, devo prendere il valore superiore più vicino (150 Ohm)
Normalmente per essere sicuri, usare 220 Ohm e si possono evitare i calcoli, al più il led è meno luminoso
![Page 43: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/43.jpg)
Legge di Ohm
Introduzione 36
Ecco a cosa possono servire le resistenze!
La luminosità del led è proporzionale all’intensità della corrente che lo attraversa
I led sopportano una corrente di circa 20mA = 0,02A
Come assorbire la tensione in eccesso? Esempio: Led giallo da 2,1V
• Devo assorbire 5V – 2,1V = 2,9V => 2,9 = 0.02*R
• R = 2,9/0.02 = 145 Ohm
I valori standard sono limitati, devo prendere il valore superiore più vicino (150 Ohm)
Normalmente per essere sicuri, usare 220 Ohm e si possono evitare i calcoli, al più il led è meno luminoso
![Page 44: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/44.jpg)
Le resistenze
Introduzione 37
![Page 45: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/45.jpg)
Le resistenze
Introduzione 37
![Page 46: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/46.jpg)
La breadboard non
richiede saldature ed è
completamente riusabile
(e perciò utilizzata
soprattutto per circuiti
temporanei).
Prototyping: la breadboard
Introduzione 38
Lo sviluppo di un circuito è un processo iterativo e richiede molte modifiche possibilmente in modo dinamico e veloce.
![Page 47: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/47.jpg)
Prototyping: la basetta millefori
Introduzione 39
Si tratta di una piastra di vetronite (solitamente), che può essere di varie misure, caratterizzata da una griglia di fori regolari a distanza di 2,54 mm (cioè un decimo di pollice) l'uno dall'altro.
Adatta per costruire
circuiti elettronici
definitivi
![Page 48: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/48.jpg)
Let’s code!
Introduzione 40
![Page 49: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/49.jpg)
Let’s code!
Introduzione 40
Commenti
multilinea
![Page 50: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/50.jpg)
Let’s code!
Introduzione 40
Commenti
multilinea
Commenti linea singola
![Page 51: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/51.jpg)
Let’s code!
Introduzione 41
Dichiarazione variabile
![Page 52: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/52.jpg)
Let’s code!
Introduzione 41
Dichiarazione variabileTipi di dato comuni
boolean isSaturday = true;
int myNumber = 1;
float pi = 3.14;
char firstInitial = 'P';
char myName[] = "Pearl";
String myName = "Pearl Chen“
int myPins[] = {2, 4, 8, 3, 6};
![Page 53: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/53.jpg)
Let’s code!
Introduzione 42
Funzione
![Page 54: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/54.jpg)
Let’s code!
Introduzione 42
Funzione
![Page 55: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/55.jpg)
Let’s code!
Introduzione 43
Richiamo di funzione
![Page 56: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/56.jpg)
Let’s code!
Introduzione 44
SPERIMENTIAMO!
![Page 57: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/57.jpg)
Esempio di input digitale
Button sketch
Introduzione 45
![Page 58: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/58.jpg)
Il pulsante
Introduzione 46
Corrente MAX sul pin di input: 40mA
Buona norma: 20mA
R=V/I ossia 5/0.02 => 250 ohm
Resistenza standard più vicina 330 ohm
ON oppure OFF
![Page 59: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/59.jpg)
Ingresso indeterminato
Introduzione 47
PROBLEMA:
Quando il pulsante non è premuto non c’è nulla che “dica” al circuito di restare a livello LOW, infatti interferenze elettromagnetiche, correnti statiche o quant’altro potrebbero far alzare il livello della tensione sino ad arrivare ad un livello HIGH.
![Page 60: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/60.jpg)
Resistenza di pull-down
Introduzione 48
• Quando il pulsante non è
premuto le due resistenze
sono messe in serie ed il pin
leggerà zero, ossia il valore di
massa.
• Quando andiamo a premere il
pulsante la corrente seguirà la
via a minor resistenza che è
quella verso il pin, impedendo
perciò di creare un
cortocircuito fra 5V e massa.
![Page 61: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/61.jpg)
Resistenza di pull-up
Introduzione 49
• A pulsante non premuto c’è
costantemente corrente che passa
attraverso le due resistenze e
giunge al pin, infatti UP significa
alto, come il segnale (5V).
• Quando invece andiamo a premere
il pulsante la corrente seguirà la via
a minor resistenza per cui passerà
dalla resistenza di 10k al pulsante,
alla massa.
![Page 62: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/62.jpg)
Resistenza di pull-up interna
Introduzione 50
void setup() {// dichiara che il "pushButton" è un input:pinMode(pushButton, INPUT_PULLUP);
// dichiara che il "led" è un output:pinMode(led, OUTPUT);
}
Per attivare la resistenza di pull-up interna di 20kΩ è
sufficiente indicarlo nella funzione di setup
![Page 63: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/63.jpg)
Resistenza di pull-up interna
Introduzione 50
void setup() {// dichiara che il "pushButton" è un input:pinMode(pushButton, INPUT_PULLUP);
// dichiara che il "led" è un output:pinMode(led, OUTPUT);
}
Per attivare la resistenza di pull-up interna di 20kΩ è
sufficiente indicarlo nella funzione di setup
![Page 64: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/64.jpg)
Resistenza di pull-up interna
Introduzione 50
void setup() {// dichiara che il "pushButton" è un input:pinMode(pushButton, INPUT_PULLUP);
// dichiara che il "led" è un output:pinMode(led, OUTPUT);
}
Per attivare la resistenza di pull-up interna di 20kΩ è
sufficiente indicarlo nella funzione di setup
ATTENZIONE!
Se fate un errore nella
programmazione, il
pin non sarà protetto
dalla resistenza!
![Page 65: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/65.jpg)
Esempio di input digitale
Button sketch code
Introduzione 51
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pin
int buttonState = 0; // variable for reading the pushbutton status
void setup() {pinMode(ledPin, OUTPUT);pinMode(buttonPin, INPUT);
}
void loop() {buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {digitalWrite(ledPin, HIGH);}else {digitalWrite(ledPin, LOW);}
}
![Page 66: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/66.jpg)
Comunicazione seriale
Introduzione 52
Abilita seriale
Stampa in
console
Arduino può utilizzare la connessione seriale
(USB) non solo per l’alimentazione…
Ma anche per comunicare con il computer
host
• Scambio dati
• Debug
![Page 67: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/67.jpg)
Esempio di input analogico
Twilight switch sketch
Introduzione 53
![Page 68: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/68.jpg)
La fotoresistenza
Introduzione 54
La fotoresistenza è un componente elettronico la cui resistenza è inversamente proporzionale alla quantità di luce che lo colpisce.
Si comporta come un tradizionale resistore, ma il suo valore in ohm diminuisce mano a mano che aumenta l’intensità della luce che la colpisce.
Ciò comporta che la corrente elettrica che transita attraverso tale componente è proporzionale all'intensità di una sorgente luminosa
0v, 1.2v, 1.2435v, 3.4323v,
4.34332v, 4.34333v5v +
![Page 69: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/69.jpg)
Let’s code!
Introduzione 55
![Page 70: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/70.jpg)
Let’s code!
Introduzione 56
const int LED = 13; // pin for LEDconst int photoResistor = A0; // pin for photo resistor
int val = 0; // variable used to store value coming from sensor
void setup() {pinMode(LED,OUTPUT); // LED is an output// * analogue pins are automatically set as inputs
}
void loop() {val = analogRead(photoResistor);digitalWrite(LED,HIGH); // turn on LEDdelay(val); // wait (how long is determined by sensor value)digitalWrite(LED,LOW); // turn off LEDdelay(val);
}
![Page 71: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/71.jpg)
Let’s code!
Introduzione 57
const int LED = 13; // pin for LED
const int photoResistor = A0; // pin for LED
const int soglia = 500;
int val = 0; // variable used to store value coming from sensor
void setup() {
pinMode(LED,OUTPUT); // LED is an output
// * analogue pins are automatically set as inputs
}
void loop() {
val = analogRead(photoResistor);
if (val<soglia){
digitalWrite(LED,HIGH); // turn on LED
}
else{
digitalWrite(LED,LOW); // turn off LED
}
}
![Page 72: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/72.jpg)
Esempio di output analogico
Variable light sketch
Introduzione 58
![Page 73: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/73.jpg)
PWM
Introduzione 59
![Page 74: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/74.jpg)
PWM
Introduzione 60
![Page 75: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/75.jpg)
Let‘s code!
Introduzione 61
int ledPin = 9; // LED connected to digital pin 9int photoResistor= A0; int val = 0; // variable to store the read value
void setup(){pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop(){val = analogRead(photoResistor);
analogWrite(ledPin, val / 4);
}
![Page 76: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/76.jpg)
Let‘s code!
Introduzione 61
int ledPin = 9; // LED connected to digital pin 9int photoResistor= A0; int val = 0; // variable to store the read value
void setup(){pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop(){val = analogRead(photoResistor);
analogWrite(ledPin, val / 4);
}
analogRead restituisce valori da 0 a 1023
![Page 77: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/77.jpg)
Let‘s code!
Introduzione 61
int ledPin = 9; // LED connected to digital pin 9int photoResistor= A0; int val = 0; // variable to store the read value
void setup(){pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop(){val = analogRead(photoResistor);
analogWrite(ledPin, val / 4);
}
analogRead restituisce valori da 0 a 1023
analogWrite accetta valori da 0 a 255
![Page 78: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/78.jpg)
Altri componenti
Condensatore
Introduzione 62
Un condensatore è un dispositivo che può accumulare e rilasciare energia in un circuito. Tipicamente un condensatore è formato da due lastre cariche con un materiale isolante tra esse il quale ha il compito di evitare che si perda la carica elettrica accumulata.
![Page 79: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/79.jpg)
Altri componenti
Induttore
Introduzione 63
Un induttore è un dispositivo che immagazzina energia elettrica in un campo magnetico. Un induttore è
formato da un cavo a spirale. Quando viene fatta passare corrente elettrica attraverso il cavo viene generato un campo magnetico. Quando la corrente aumenta, viene immagazzinata più energia nel campo magnetico; quando la corrente diminuisce l'energia è rilasciata come potenza elettrica.
![Page 80: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/80.jpg)
Altri componenti
Diodo
Introduzione 64
Un diodo è un dispositivo che permette il passaggio della corrente elettrica in una sola direzione. Questi componenti sono spesso usati per isolare l'effetto di un componente su un altro.
Alcuni tipi di diodi:
• Diodo che emette luce (LED, Light Emitting Diode)
• Fotodiodo, rileva la luce
• Diodo laser, emette un fascio di luce laser
• Diodo Zener, impedisce il flusso di corrente sopra una certa soglia
![Page 81: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/81.jpg)
Altri componenti
Transistor
Introduzione 65
Un transistor è un dispositivo che limita o facilita il passaggio di corrente tra i suoi due contatti in base alla presenza o assenza di corrente su un terzo contatto. I pin di un transistor sono quindi tre: Collettore, Emettitore e Base.
il Collettore e l'Emettitore sono in pratica l'input e l'output del transistor
la Base, in pratica è l'innesco
![Page 82: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/82.jpg)
Altri componenti
Transistor
Introduzione 66
I due tipi di transistor più comuni sono:
PNP - questo transistor lascia passare corrente (dall'Emettitore al Collettore) se la tensione alla Base è minore della tensione dell'Emettitore
NPN - lascia passare corrente (dal Collettore all'Emettitore) se la tensione alla Base è maggiore della tensione dell'Emettitore
Gli usi più comuni dei transistor sono relativi all'uso come interruttori attivati dalla corrente elettrica, oppure come amplificatori della corrente in uscita.
![Page 83: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/83.jpg)
Relay elettromagnetici
Introduzione 67
Interruttori azionati elettronicamente
• Per attivare e disattivare apparecchi ad alte tensioni (lampadari, cancelli automatici, ventilatori, etc.)
• Attenzione a lavorare con la 220V!!!
![Page 84: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/84.jpg)
Le shield
Introduzione 68
Un Arduino 2009 trasformato in WebServer grazie a due shield.
![Page 85: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/85.jpg)
Le shield ufficiali
Introduzione 69
Arduino Proto Shield - fronte e retro
![Page 86: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/86.jpg)
Le shield ufficiali
Introduzione 70
Arduino Motor Shield
![Page 87: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/87.jpg)
Le shield ufficiali
Introduzione 71
Arduino Wifi Shield e Arduino Ethernet Shield
![Page 88: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/88.jpg)
Le shield non ufficiali
Introduzione 72
• Così come Arduino, le shield sono hardware open source: le schematiche di ogni scheda si possono scaricare e modificare a piacimento.
• Le shield attualmente in commercio sono centinaia. Talmente tante che si è resa necessaria la creazione di un database online per mettere ordine e raccogliere schematiche e caratteristiche tecniche di ognuna.
![Page 89: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/89.jpg)
Le shield non ufficiali
Introduzione 73
Arduino Wave Shield
![Page 90: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/90.jpg)
Buzzer
Introduzione 74
#define PIEZO 3
int del = 500;
void setup(){
pinMode(PIEZO, OUTPUT);
}
void loop(){
analogWrite(PIEZO, 128); // 50 percent duty cycle delay(del);
digitalWrite(PIEZO, LOW); // turn the piezo off
delay(del);
}
![Page 91: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/91.jpg)
Display
Moduli a caratteri
Introduzione 75
Sono display LCD capaci di visualizzare solo caratteri. Vengono commercializzati display completi di controllore di varie dimensioni a partire da 8x1, costituito da una riga di 8 caratteri, fino a dimensioni più grandi più tra cui 8x2, 16x2, 20x2, 16x4, 20x4, ecc
Controller Hitachi HD44780
![Page 92: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/92.jpg)
Display
Moduli a caratteri
Introduzione 76
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interfacepinsLiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {// set up the LCD's number of columns and rows:lcd.begin(16, 2);// Print a message to the LCD.lcd.print("hello, world!");
}
void loop() {// Turn off the display:lcd.noDisplay();delay(500);// Turn on the display:lcd.display();delay(500);
}
![Page 93: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/93.jpg)
Display
Moduli grafici
Introduzione 77
Controller
Philips PCD8544
• 48 righe
• 84 colonne
• economico
• basso consumo
![Page 94: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/94.jpg)
Motori semplici
Introduzione 78
![Page 95: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/95.jpg)
Servomotori
Introduzione 79
I servomotori sono composti da un motore elettrico meccanicamente collegato ad un potenziometro. I componenti elettronici al suo interno traducono il segnale PWM in ingresso in una posizione. I componenti elettronici al suo interno traducono il segnale PWM in ingresso in una posizione.
Quando si da il comando di rotazione, il motore si accende fino a quando il potenziometro raggiunge i valori corrispondenti alla posizione richiesta.
Analog 180° Micro Servo
module è un servomotore di
alta qualità che può essere
connesso direttamente al
Sensor Shield.
![Page 96: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/96.jpg)
Orologio RTC
Introduzione 80
Un real-time clock (RTC), orologio in tempo reale, è un dispositivo con funzione di orologio, costituito da un processore a circuito integrato specializzato per questa funzione, il quale conteggia il tempo reale anche quando l'utilizzatore viene spento
![Page 97: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/97.jpg)
RFID
Introduzione 81
Un sistema RFID utilizza un tag, o un etichetta, che viene attaccata all’oggetto che deve essere identificato. Il lettore, invia un segnale al tag in attesa di una risposta, ovvero le informazioni memorizzate all’interno del tag.
Mifare RC522
![Page 98: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/98.jpg)
Sensori ambientali
Temperatura e umidità
Introduzione 82
TMP36 - sensore analogicoTensione di alimentazione: 2.7 - 5.5 VDC
Fattore di conversione: 10mV/°C
Accuratezza di ±2°C su tutta la scala
Linearità ±0.5°C
Range di misura: -40°C +125°C
3.3-6V Input
1-1.5mA measuring current
40-50 uA standby current
Humidity from 0-100% RH
-40 - 80 degrees C temperature range
+-2% RH accuracy
+-0.5 degrees C
DHT22 – sensore digitale
![Page 99: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/99.jpg)
Sensori ambientali
Rilevatori di movimento
Introduzione 83
Sensore PIR SEN0018 con e senza cupola di diffusione
Trimmer delay
![Page 100: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/100.jpg)
Sensori ambientali
Rilevatori di movimento
Introduzione 84
Il funzionamento è semplice: quando rileva un movimento l’uscita del segnale passa da LOW ad HIGH, secondo le specifiche del costruttore l’uscita passa da 0,4v a 4v, quindi da una soglia inferiore ai 2,5v ad una superiore. Il sensore presenta anche un potenziometro per regolare il tempo di eccitazione dopo aver rilevato il
movimento, ossia il tempo in cui il pin del segnale digitale resta a HIGH prima che, in assenza di movimento, torni a LOW
![Page 101: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/101.jpg)
Sensori ambientali
Rilevatori di movimento
Introduzione 85
int signal = 3;int ledGreen = 4;int ledRed = 5;
void setup(){
pinMode( ledGreen, OUTPUT );pinMode( ledRed, OUTPUT );
digitalWrite( ledGreen, LOW );digitalWrite( ledRed, LOW );
}
void loop(){
int pirSignal = digitalRead( signal );int pirSignal2= (pirSignal == HIGH)? LOW:HIGH;
digitalWrite( ledGreen, pirSignal );digitalWrite( ledRed, pirSignal2 );
delay(100);}
![Page 102: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/102.jpg)
Sensori ambientali
Sonar
Introduzione 86
Un sensore a ultrasuoni come il HC SR 04 misura il tempo impiegato dalle onde sonore emesse da un sorgente a ritornarvici dopo aver incontrato un ostacolo che le riflette.
![Page 103: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/103.jpg)
Sensori ambientali
Sonar
Introduzione 87
![Page 104: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/104.jpg)
Wifi
ESP-8266
Introduzione 88
L’ESP8266 è un modulo
WiFi molto economico
che offre la possibilità di
essere connesso
facilmente ad un micro
controllore, come
arduino, mediante 2 pin
seriali Tx ed Rx ed
interagire con lo sketch
mediante comandi AT.
![Page 105: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/105.jpg)
Wifi
ESP-8266
Introduzione 89
![Page 106: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/106.jpg)
…e tanto altro!
Introduzione 90
• GPS
• Bluetooth
• Infrarossi
• Zeebee
• NFC
• Schede GSM dati
• Trasmettitori/ricevitori wireless 433Mhz
• Schede di sintesi e riconoscimento vocale
• …
![Page 107: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/107.jpg)
Uno sguardo sul web
Cat feeder
Introduzione 91
Sei in giro, lontano da casa, ed hai dimenticato di dar da
mangiare al tuo tenero gatto? Chiedi aiuto al Cat Feeder!
![Page 108: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/108.jpg)
Uno sguardo sul web
Cat feeder
Introduzione 92
Funzionamento:
Un piccolo sensore di luce
(LDR: light dependant resistor)
fissato sullo schermo di un
cellulare, ne rileva il
cambiamento di luminosità e
permette, tramite un micro
servomotore, di aprire un
barattolo contenente del cibo
per gatti. Basterà una chiamata
per attivare il Cat Feeder e
lasciar cadere i croccantini!
![Page 109: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/109.jpg)
Uno sguardo sul web
Cat feeder
Introduzione 93
Componenti:
• Sensore di luce (LDR)
• 1 Micro Servomotore
• Resistenza da 10 Kohm
• Cellulare
![Page 110: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/110.jpg)
Uno sguardo sul web
Cat feeder
Introduzione 94
![Page 111: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/111.jpg)
Uno sguardo sul web
Cat feeder
Introduzione 95
#include <Servo.h>
Servo myServo; // viene creato un oggetto "servomotore"int sensorValue, first = 0;
void setup() {myServo.attach(9); // Il servomotore è controllato dal pin 9Serial.begin(9600); // La porta seriale è abilitata per
eventuale debugwhile(digitalRead(8)) { // Il barattolo è chiuso fino myServo.write(45); // alla ricezione della prima chiamatafirst = 1;
}}
![Page 112: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/112.jpg)
Uno sguardo sul web
Cat feeder
Introduzione 96
void loop() {if(first){sensorValue = digitalRead(8);if(sensorValue) // Se il sensore ldr rileva della luce
myServo.write(45); // il servomotore chiude il contenitoreelse // altrimenti
myServo.write(120); // il servomotore apre il contenitore}
}
![Page 113: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/113.jpg)
Siti di riferimento
Introduzione 97
• Arduino Books
http://www.arduinobooks.com/
• Arduino Projects @ Instructables
http://www.instructables.com/id/Arduino-Projects/
• Arduino Tutorials
http://arduino.cc/playground/Main/TutorialList
• Electronics Technique Resources
http://arduino.cc/playground/Main/ElectroInfoResources
• PLAYGROUND
http://arduino.cc/playground/
• Linguaggio
https://www.arduino.cc/en/Reference/HomePage
![Page 114: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/114.jpg)
Siti di riferimento
Introduzione 98
![Page 115: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/115.jpg)
Domande?
Introduzione 99
![Page 116: Introduzione a Arduino](https://reader030.vdocuments.site/reader030/viewer/2022021418/589faf281a28abf9038b4b8f/html5/thumbnails/116.jpg)
Al prossimo
incontro… GRAZIE!
Introduzione 100