Download - Electronics LAB [with Arduino] | DAY 1
![Page 1: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/1.jpg)
ELECTRONICS LAB [WITH ARDUINO]
Daniele Costarella
Teatro Carlo Gesualdo / Casina Del Principe – Avellino – 28 > 31 agosto 2013
Salvatore Carotenuto
![Page 2: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/2.jpg)
Rights to copy
Electronics LAB [with Arduino]28 > 31 agosto 2013 2
Attribution – ShareAlike 3.0 Unported
You are free:● to Share - to copy, distribute and transmit the work● to Remix – to adapt the work
Under the following conditions:
Attribution – You must attribute the work in the manner specified by the authors.
Share Alike – If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.
Your fair use and other rights are in no way affected by the above.To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/.
![Page 3: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/3.jpg)
Filosofia del corso
MAKE! MAKE! MAKE!
Electronics LAB [with Arduino]28 > 31 agosto 2013 3
![Page 4: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/4.jpg)
Il programma di oggi
Mattina• Presentazione del corso• Microcontrollori e introduzione ad Arduino• Elementi di programmazione
Pomeriggio• Cenni di elettronica• Primi passi con Arduino
Electronics LAB [with Arduino]28 > 31 agosto 2013 4
![Page 5: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/5.jpg)
Di cosa parleremo?
In questo corso impareremo a costruire semplici oggetti elettronici in grado di interagire con gli esseri umani usando
sensori e attuatori controllati da dispositivi elettronici.
Electronics LAB [with Arduino]28 > 31 agosto 2013 5
![Page 6: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/6.jpg)
Cos'è Arduino?
Il mondo Arduino, fondamentalmente,si compone di 3 componenti essenziali
Electronics LAB [with Arduino]28 > 31 agosto 2013 6
![Page 7: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/7.jpg)
Cos'è Arduino?
1. Una scheda elettronica
Electronics LAB [with Arduino]28 > 31 agosto 2013 7
![Page 8: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/8.jpg)
Cos'è Arduino?
1. Una scheda elettronica2. Un ambiente di sviluppo
semplificato
Electronics LAB [with Arduino]28 > 31 agosto 2013 8
![Page 9: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/9.jpg)
Cos'è Arduino?
1. Una scheda elettronica2. Un ambiente di sviluppo
semplificato3. Una filosofia e una
comunità enorme
Electronics LAB [with Arduino]28 > 31 agosto 2013 9
![Page 10: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/10.jpg)
A cosa serve?
Con Arduino è possibile creare circuiti per molte applicazioni nel campo della robotica, dell'automazione,
e nella realizzazione di effetti luminosi e sonori
E' inoltre un prodotto ideale per la protipazione rapida e per l'apprendimento delle basi dell'elettronica
e della programmazione
Electronics LAB [with Arduino]28 > 31 agosto 2013 10
![Page 11: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/11.jpg)
Perché Arduino?
Electronics LAB [with Arduino]
• Artisti e designer
• Progettisti elettronici
• Open source hardware● Open Source Physical Computing Platform
• Open source● Aperto a modifiche, schemi sempre disponibili
• Community● Wiki, forum, tutorial
28 > 31 agosto 2013 11
![Page 12: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/12.jpg)
Physical Computing?!
Electronics LAB [with Arduino]
“Physical Computing is about prototyping with electronics, turning sensors, actuators and microcontrollers into materials for designers and artists.”
“It involves the design of interactive objects that can communicate with humans using sensors and actuators controlled by a behaviour
implemented as software running inside a microcontroller.”
Massimo Banzi, Arduino Co-Founder
28 > 31 agosto 2013 12
![Page 13: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/13.jpg)
CENNI DI ELETTRONICA
![Page 14: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/14.jpg)
Segnali analogici e digitali
Electronics LAB [with Arduino]28 > 31 agosto 2013 14
![Page 15: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/15.jpg)
Parleremo di “tensione” per indicare la differenza tra il potenziale elettrico di due punti dello spazio.
Una semplice analogia:• Acqua ↔ Carica• Pressione ↔ Tensione• Flusso ↔ Corrente
Corrente, tensione e resistenza
Electronics LAB [with Arduino]28 > 31 agosto 2013 15
![Page 16: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/16.jpg)
Possiamo pensare all’ammontare di acqua che fluisce attraverso la condotta come la “corrente” che scorre in cavo elettrico
Il nostro modello:• Acqua ↔ Carica [Coulomb]• Pressione ↔ Tensione [Volt]• Flusso ↔ Corrente [Ampere]• Ampiezza tubo ↔ Resistenza [Ohm]
Corrente, tensione e resistenza
Electronics LAB [with Arduino]28 > 31 agosto 2013 16
![Page 17: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/17.jpg)
La “resistenza elettrica” è una grandezza fisica che misura la tendenza di un corpo ad opporsi al passaggio di una corrente elettrica, quando sottoposto a una tensione elettrica.
Il nostro modello:• Acqua ↔ Carica [Coulomb]• Pressione ↔ Tensione [Volt]• Flusso ↔ Corrente [Ampere]• Ampiezza tubo ↔ Resistenza [Ohm]
Corrente, tensione e resistenza
Electronics LAB [with Arduino]28 > 31 agosto 2013 17
![Page 18: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/18.jpg)
Riconoscere i componenti
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Resistori
18
![Page 19: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/19.jpg)
Cenni di elettronicaResistori: codice colori
28 > 31 agosto 2013 Electronics LAB [with Arduino] 19
![Page 20: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/20.jpg)
Cenni di elettronica
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Condensatori
20
![Page 21: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/21.jpg)
Cenni di elettronica
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Diodi
21
![Page 22: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/22.jpg)
Cenni di elettronica
28 > 31 agosto 2013 Electronics LAB [with Arduino]
LED (Light Emitting Diode)
22
![Page 23: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/23.jpg)
Cenni di elettronica
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Switch
23
![Page 24: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/24.jpg)
Cenni di elettronica
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Uso della breadboard ?!?
24
![Page 25: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/25.jpg)
Cenni di elettronica
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Uso della breadboard
Una breadboard (o anche detta basetta sperimentale) è uno strumento utilizzato per creare prototipi di circuiti elettrici.
Non richiede saldature ed è completamente riusabile (è perciò utilizzata soprattutto per circuiti temporanei).
25
![Page 26: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/26.jpg)
Cenni di elettronica
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Uso della breadboard: struttura
Tutte le breadboard hanno, generalmente, una struttura simile composta da linee di trasmissione (strips) che consistono in collegamenti elettrici tra i fori. Come in figura, si possono notare le linee di alimentazione, poste generalmente ai lati e collegate lungo tutto l’asse, e le linee dedicate ai componenti, collegate in posizione perpendicolare alle linee di alimentazione.
26
![Page 27: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/27.jpg)
Cenni di elettronica
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Uso della breadboard !!!
27
![Page 28: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/28.jpg)
Arduino: “Studiamo” l'hardware
USB
LEDRX/TX
LED Test (pin 13)
Alimentazione esterna
ATmega328
Pin di in/out digitaliPulsante direset
Power LED
Alimentazioni e massa Input analogici
Electronics LAB [with Arduino]28 > 31 agosto 2013 28
![Page 29: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/29.jpg)
Caratteristiche tecniche
Giffoni HackLAB 2013
Parametro Valore
Microcontrollore ATmega328
Tensione operativa 5 V
Tensione di ingresso (raccomandata) 7-12 V
Tensione di ingresso (Limiti) 6-20 V
Pin di I/O digitali 14 (di cui 6 PWM)
Pin di ingresso analogici 6
Corrente DC per i pin di I/O 40 mA
Corrente DC per i pin a 3.3V 50 mA
Memoria Flash 32 kB (ATmega328) di cui 0.5 usata per il bootloader
SRAM 2 kB (ATmega 328)
EEPROM 1 kB (ATmega328)
Velocità del Clock 16 MHz
28 > 31 agosto 2013 29
![Page 30: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/30.jpg)
Qualche termine strano
Giffoni HackLAB 2013
sketchIl programma che scrivete e fate girare sulla scheda Arduino
pinI connettori di input e output
digitalVuol dire che può assumere solo due valori: ALTO o BASSO, ON o OFF oppure 0 o 1
analogQuando i valori utili che rappresentano i segnali sono continui (infiniti)
28 > 31 agosto 2013 30
![Page 31: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/31.jpg)
Hardware Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino Leonardo
31
![Page 32: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/32.jpg)
Hardware Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino Due
32
![Page 33: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/33.jpg)
Hardware Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino YUN
33
![Page 34: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/34.jpg)
Hardware Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino Robot
34
![Page 35: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/35.jpg)
Hardware Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino Esplora
35
![Page 36: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/36.jpg)
Hardware Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino ADK
36
![Page 37: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/37.jpg)
Hardware Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino Ethernet
37
![Page 38: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/38.jpg)
Hardware Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino Mega 2560
38
![Page 39: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/39.jpg)
Hardware Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino Micro
39
![Page 40: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/40.jpg)
Hardware Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
LillyPad Arduino USB LillyPad Arduino Simple
40
![Page 41: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/41.jpg)
Hardware Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
LillyPad Arduino SimpleSnap
LillyPad Arduino
41
![Page 42: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/42.jpg)
Hardware Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino Pro Arduino Fio
42
![Page 43: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/43.jpg)
Arduino: gli Shield
28 > 31 agosto 2013 Electronics LAB [with Arduino] 43
![Page 44: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/44.jpg)
Shield
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino GSM Shield
44
![Page 45: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/45.jpg)
Shield
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino Ethernet Shield
45
![Page 46: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/46.jpg)
Shield
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino WiFi Shield
46
![Page 47: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/47.jpg)
Shield
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino SD Shield
47
![Page 48: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/48.jpg)
Shield
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Arduino Motor Shield
48
![Page 49: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/49.jpg)
PRIMI PASSI CON ARDUINO
![Page 50: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/50.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Installazione dell’ambiente di sviluppo
1. Scaricare l’IDE di Arduino dal sito web del progetto: arduino.cc
2. Collegare la board Arduino tramite il cavo USB
3. Installare i driver necessari
4. Riavviare il computer
5. Avviare il software di Arduino
50
![Page 51: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/51.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Installazione dell’ambiente di sviluppo
● Collegarsi al sito web del progetto: arduino.cc
● Nella sezione Getting Started scegliere il sistema operativo in uso: Windows, Mac OS X, Linux
● Scaricare il software di Arduino
51
![Page 52: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/52.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Installazione driver chip FTDI
● Collegarsi al sito web del progetto: www.ftdichip.com
● Download dei driver adatti alla propria piattaforma
● Installare i driver● Riavviare il sistema
52
![Page 53: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/53.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Collegare la board
● Collega Arduino al computer con un cavo USB
● Un LED di colore verde (PWR) si accede quando la scheda è alimentata correttamente
53
![Page 54: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/54.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Avvio dell'ambiente di sviluppo
54
![Page 55: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/55.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Impostazione dell’ambiente di lavoro: Tools > Board
55
![Page 56: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/56.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Impostazione dell’ambiente di lavoro: Tools > Serial Port
56
![Page 57: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/57.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
La semplice interfaccia
Verifica Carica Nuovo Apri Salva Monitor Seriale
57
![Page 58: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/58.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Il “ciclo” di sviluppo
58
![Page 59: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/59.jpg)
Elementi di programmazione
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Esaminiamo, innanzitutto, un po’ di sintassi utile:
Simbolo Spiegazione
// Commento su una rigaEs. // questo è un commento
/* Inizio di un commento su più righe
*/ Chiusura di un commento su più righe
void Dichiarazione di una funzione senza nessun valore di ritorno: la funzione esegue tutte le istruzioni senza restituire alcun valore.
setup() E’ la funzione (obbligatoria in Arduino) dedicata alle impostazioni iniziali
59
![Page 60: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/60.jpg)
Elementi di programmazione
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Esaminiamo, innanzitutto, un po’ di sintassi utile:
Simbolo Spiegazione
loop() Funzione obbligatoria in Arduino: costituisce il loop principale del programma
int Usato per dichiarare una variabile di tipo integer (intero)
pinMode(pin, mode) Configurazione dei pin di Arduino (INPUT o OUTPUT)
digitalWrite(pin, level) Comando di scrittura su un pin digitale
delay(seconds) Funzione che introduce un’attesa (espresso in millesimi di secondo)
60
![Page 61: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/61.jpg)
Elementi di programmazione
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Un listato di esempio:
/* FLUSSI 2013 day 1 Esempio: lampeggio di un LED collegato al pin 13*/ int ledPin = 13; // LED connesso al pin 13 void setup(){ pinMode(ledPin, OUTPUT); // configura il pin come output} void loop(){ digitalWrite(ledPin, HIGH); // accende il LED delay(1000); // attende un secondo (ossia 1000 millisecondi) digitalWrite(ledPin, LOW); // spegne il LED delay(1000); // attende un secondo prima di ripartire}
61
![Page 62: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/62.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Input / Output di segnali digitali: LED blinking
62
![Page 63: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/63.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Input / Output di segnali digitali: lettura di un pulsante
63
![Page 64: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/64.jpg)
Elementi di programmazione
28 > 31 agosto 2013 Electronics LAB [with Arduino] 64
Il costrutto if e if/else
Simbolo Spiegazione
if (condizione) { // esegue questo codice // se la condizione è vera }
Esecuzione condizionata: esegue un blocco di codice se e solo se la condizione espressa è verificata
if (condizione) { // esegue questo codice // se la condizione è vera }else { // esegue questo codice // se la condizione è falsa }
Se la condizione è vera esegue un blocco di codice; se la condizione non è vera viene eseguito il codice del blocco else
![Page 65: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/65.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Input / Output di segnali digitali
Il costrutto if
/* FLUSSI 2013 day 1: Accendiamo il LED con un pulsante*/
int led_pin = 13;int button_pin = 8;
int state = 0;int value = 0;
void setup() { pinMode(led_pin, OUTPUT); pinMode(button_pin, INPUT); }
[ Continua … ]
65
![Page 66: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/66.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Input / Output di segnali digitali
void loop() { value = digitalRead(button_pin); if (value == HIGH) { state = 1; } else { state = 0; } if (state == 1) { digitalWrite(led_pin, HIGH); } else { digitalWrite(led_pin, LOW); } }
66
![Page 67: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/67.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Lettura di segnali analogici
Il componente LDR (Light Dependent Resistor)
67
![Page 68: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/68.jpg)
Elementi di programmazione
28 > 31 agosto 2013 Electronics LAB [with Arduino] 68
La funzione analogRead
Simbolo Spiegazione
int analogRead(pin)Legge la tensione applicata al pin di input analogico e restituisce un numero compreso tra 0 e 1023 che rappresenta una tensione tra 0 e 5V
val = analogRead(0)Esempio: legge l'analog input 0 e memorizza il risultato nella variabile val
![Page 69: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/69.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Lettura di segnali analogici
Il componente LDR (Light Dependent Resistor)
69
![Page 70: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/70.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
/* FLUSSI 2013 day 1: Lettura di un segnale analogico: LDR*/
const int SENSOR = 0;
int val = 0;
void setup() { Serial.begin(9600); }
void loop() { val = analogRead(SENSOR); Serial.println(val); delay(100); }
Lettura di segnali analogici
Il componente LDR
70
![Page 71: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/71.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
/* FLUSSI 2013 day 1: Lettura di un segnale analogico: LDR*/
const int SENSOR = 0;
int val = 0;
void setup() { Serial.begin(9600); }
void loop() { val = analogRead(SENSOR); Serial.println(val); delay(100); }
Lettura di segnali analogici
Il componente LDR
71
![Page 72: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/72.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
Lettura di segnali analogici: aggiungiamo un LED
72
![Page 73: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/73.jpg)
Primi passi con Arduino
28 > 31 agosto 2013 Electronics LAB [with Arduino]
/* FLUSSI 2013 day 1: Regoliamo il lampeggio in base al valore analogico letto */
# define LED 13 // pin usato per il LED
int val = 0; // variabile usata per il// valore letto dall'LDR
void setup() { pinMode(LED, OUTPUT); }
void loop() { val = analogRead(0);
digitalWrite(13, HIGH); // accendi il LED delay(val); // attendi digitalWrite(13, LOW); // spegni il LED delay(val); // attendi }
Lettura di segnali analogici
Il componente LDR
73
![Page 74: Electronics LAB [with Arduino] | DAY 1](https://reader033.vdocuments.net/reader033/viewer/2022060109/5552db9ab4c90532498b4b51/html5/thumbnails/74.jpg)
FINE... PER OGGI