21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti...

24
Corso Arduino 2014 21 Maggio 2014 Riccardo Binetti [email protected] Lezione 1 - Blinking LEDs with style Riccardo Binetti Arduino 2014 Lezione 1 1 / 24

Transcript of 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti...

Page 1: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Corso Arduino 201421 Maggio 2014

Riccardo [email protected]

Lezione 1 - Blinking LEDs with style

Riccardo Binetti Arduino 2014 Lezione 1 1 / 24

Page 2: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Fate domande

Riccardo Binetti Arduino 2014 Lezione 1 2 / 24

Page 3: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Nel dubbio, non fatelo

Riccardo Binetti Arduino 2014 Lezione 1 3 / 24

Page 4: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Iscrivetevi al gruppo

http://bit.ly/arduino2014

Riccardo Binetti Arduino 2014 Lezione 1 4 / 24

Page 5: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Arduino Leonardo

13

12

11

10 9 8 7 6 5 4 3 2 1 0

+VIN

L

ON

RESET

RX

TX

5V A0

AR

EF

SC

L

SD

A

1

GN

D

DIGITAL (PWM ~)

RS

T

3V

3

ww

w.a

rduin

o.c

cM

AD

E IN

ITA

LY

Arduino

TM

LEONARDO

A1

A2

A3

A4

A5

VIN

GN

D

~ ~~ ~ ~ ~

~IO

REF

GN

D

ICSP

TX

RX

Sarà il cervello dei nostri progettiLeonardo rispetto a Uno permette di essere vista come un diversodispositivo USB

Riccardo Binetti Arduino 2014 Lezione 1 5 / 24

Page 6: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Breadboard1

1

55

1010

1515

2020

2525

3030

3535

4040

4545

5050

5555

6060

A A

B B

C C

D D

E E

F F

G G

H H

I I

J J

Serve per connettere i vari componenti tra di loroNon richiede saldaturaCe ne sono di varie misure e tipi

Riccardo Binetti Arduino 2014 Lezione 1 6 / 24

Page 7: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Collegamenti della Breadboard

I due blocchi centrali sono collegati tra di loro a blocchi di 5 (latocorto)I due blocchi centrali non sono collegati tra di loroLe 4 (o 2) file sul lato lungo sono tutte collegate tra di loroSu alcune breadboard, le file sul lato lungo sono interrotte a metà

Riccardo Binetti Arduino 2014 Lezione 1 7 / 24

Page 8: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Fili in rame

Servono a connettere Arduino alla Breadboard e i componenti quandola breadboard non bastaEsistono dei set pretagliati per le breadboard se siete pigriAltrimenti basta del cavo rigido e un paio di pinze

Riccardo Binetti Arduino 2014 Lezione 1 8 / 24

Page 9: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Arduino IDE

È il programma che ci permette di scrivere sketch Arduino e dicaricarliContiene anche molti esempi già prontiGira su Linux, Mac e Windows

Riccardo Binetti Arduino 2014 Lezione 1 9 / 24

Page 10: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Il primo componente: il LED

Il LED si accende quando l’anodo si trova almeno a ~0.7 V in piùrispetto al catodoIn soldoni, il - sarà collegato a GND e il + sarà collegato in serie aduna resistenza, che poi andrà al pinQuasi tutte le schede Arduino hanno un LED integrato (nel caso diArduino Leonardo è sul pin 13), per oggi useremo quello

AttenzioneNon collegate mai un LED senza una resistenza in serie

Riccardo Binetti Arduino 2014 Lezione 1 10 / 24

Page 11: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Test 1,2,3

int ledPin = 13;void setup(){pinMode(ledPin, OUTPUT);}void loop(){digitalWrite(ledPin, HIGH);}

Il risultato dovrebbe essere il LED acceso fisso

AttenzionePrima di caricare il codice, selezionate la board Arduino Leonardo(Strumenti -> Tipo di Arduino)

Riccardo Binetti Arduino 2014 Lezione 1 11 / 24

Page 12: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Analisi

int ledPin = 13;

Assegna alla variabile ledPin il numero 13Non è indispensabile ma appena i pin usati superano i 2 diventacomodoVa definito fuori dalle funzioni di setup e loop (variabile globale)

void setup(){}

È una delle due funzioni che devono essere definite in ogni sketchTutto ciò che è al suo interno viene eseguito solo una volta appenaArduino viene accesaDi solito la si usa appunto per il setup iniziale

Riccardo Binetti Arduino 2014 Lezione 1 12 / 24

Page 13: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Analisi/2

void loop(){}

L’altra funzione che deve venire definita in ogni sketchCome si intuisce dal nome, viene eseguita tutta e poi si rinizia dacapo, finchè non si spegne Arduino

pinMode(ledPin, OUTPUT);

Imposta la modalità del pinIl primo argomento è il numero del pin che si vuole impostareIl secondo è la modalità (INPUT, OUTPUT o INPUT_PULLUP)

digitalWrite(ledPin, HIGH);

Setta un’uscita digitaleIl primo argomento è il numero del pin che si vuole settareIl secondo è lo stato che si vuole impostare (HIGH o LOW)Su Arduino Leonardo, HIGH significa che il pin sarà a 5v, LOW chesarà a 0v

Riccardo Binetti Arduino 2014 Lezione 1 13 / 24

Page 14: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Blinking LED

delay(int nMilliseconds);

Interrompe l’esecuzione per nMillisecondsCon questa funzione dovreste ora essere in grado di scrivere l’Hello Worldper eccellenza di Arduino: il blinking LED. Dovete fare accendere espegnere il LED ogni secondo.

Go!

Riccardo Binetti Arduino 2014 Lezione 1 14 / 24

Page 15: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Soluzione

int ledPin = 13;int interval = 1000;void setup(){pinMode(ledPin, OUTPUT);}void loop(){digitalWrite(ledPin, HIGH);delay(interval);digitalWrite(ledPin, LOW);delay(interval);}

Riccardo Binetti Arduino 2014 Lezione 1 15 / 24

Page 16: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Digital Input

Finora abbiamo usato solo i pin come output. Come avrete intuitopossono essere usati anche come input.

Come impostiamo il pin?

Riccardo Binetti Arduino 2014 Lezione 1 16 / 24

Page 17: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Digital Input/2

pinMode(ledPin, INPUT);digitalRead(pin);

Legge il pin (indicato con un numero) e ritorna HIGH o LOWif (condizione) {...} else {...}

se condizione è true esegue il codice tra la prima coppia diparentesi graffe, altrimenti il codice tra la seconda coppia di parentesigraffe (non è obbligatorio avere l’else)

A == B

Se A è uguale a B, ritorna true, altrimenti false

Riccardo Binetti Arduino 2014 Lezione 1 17 / 24

Page 18: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Bottone

A e C sono sempre connessi, B e D sono sempre connessi. Quando sischiaccia il bottone sono tutti connessiCercate sempre informazioni sul bottone che state usando per essernesicuri

Riccardo Binetti Arduino 2014 Lezione 1 18 / 24

Page 19: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Resistenza di pull-up (o pull-down)

Quando l’input pin non è connesso a niente, il suo ingresso è “floating”,non ha un valore ben definito. Aggiungendo una resistenza cosiddetta dipull-up, quando il bottone è aperto l’input pin viene “tirato” a Vcc (quindia HIGH), mentre quando si schiaccia il bottone l’input Pin va a LOW.Facendo la stessa cosa invertendo il sopra con il sotto del circuito si hauna resistenza di pull-down.

Riccardo Binetti Arduino 2014 Lezione 1 19 / 24

Page 20: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Circuito bottone1

1

55

1010

1515

2020

2525

3030

3535

4040

4545

5050

5555

6060

A A

B B

C C

D D

E E

F F

G G

H H

I I

J J

13

12

11

10 9 8 7 6 5 4 3 2 1 0

+VIN

L

ON

RESET

RX

TX

5V A0

AR

EF

SC

L

SD

A

1

GN

DDIGITAL (PWM ~)

RST

3V

3

ww

w.a

rduin

o.c

cM

AD

E IN

ITA

LY

Arduino

TM

LEONARDO

A1

A2

A3

A4

A5

VIN

GN

D

~ ~~ ~ ~ ~

~IO

REF

GN

D

ICS

PTX

RX

Riccardo Binetti Arduino 2014 Lezione 1 20 / 24

Page 21: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Tocca a voi

Realizzate un blinking LED che blinka soltanto quando il bottone èpremuto, mentre rimane spento se il bottone viene rilasciato.

Go!

Riccardo Binetti Arduino 2014 Lezione 1 21 / 24

Page 22: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Soluzione

int ledPin = 13;int buttonPin = 6;int interval = 1000;void setup(){

pinMode(buttonPin, INPUT);pinMode(ledPin, OUTPUT);

}void loop(){

if (digitalRead(buttonPin) == LOW){digitalWrite(ledPin, HIGH);delay(interval);digitalWrite(ledPin, LOW);delay(interval);

} else {digitalWrite(ledPin, LOW);

}}

Riccardo Binetti Arduino 2014 Lezione 1 22 / 24

Page 23: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Domande?

Se vi vengono in mente più tardi, fatele sul gruppo

Riccardo Binetti Arduino 2014 Lezione 1 23 / 24

Page 24: 21Maggio2014 RiccardoBinetti punkerbino@gmail · Corso Arduino 2014 21Maggio2014 RiccardoBinetti punkerbino@gmail.com Lezione1-BlinkingLEDswithstyle Riccardo Binetti Arduino 2014

Per oggi è tutto

Ci vediamo settimana prossima

Queste slides sono licenziate Creative Commons Attribution-ShareAlike 3.0 Unported

http://www.poul.org

Riccardo Binetti Arduino 2014 Lezione 1 24 / 24