Il 0% ha trovato utile questo documento (0 voti)
2 visualizzazioni

Arduino

Caricato da

arduinoscuola
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
2 visualizzazioni

Arduino

Caricato da

arduinoscuola
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 14

LED BLINK

IDE di Arduino: nel ciclo di setup () dobbiamo abilitare il pin 13 come pin di output e,
per far ciò ci vuole il comando pinMode(a,b) che ha 2 parametri, il primo indica il
numero del pin, il secondo la modalità “OUTPUT” o “INPUT” a seconda degli usi. Nel
nostro caso bisogna far uscire una corrente da Arduino (Output), quindi l’istruzione
da usare è pinMode(13, OUTPUT);

void setup() {
pinMode(13, OUTPUT);
}

void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}

Di seguito ci vule il ciclo di loop, che è il ciclo che il controllore esegue


continuamente. Bisogna, ciclicamente, accendere il led, cioè mandare una corrente
sul pin 13 digitalWrite(13, HIGH), poi aspetare 1000 millisecondi delay(1000), poi
spegnere il led, cioè abbassare la corrente sul pin 13 digitalWrite(13, LOW), infine
aspettare altri 1000 millisecondi delay(1000).

Il diodo a emissione di luce è anche detto LED, acronimo delle parole inglesi Light
Emitting Diode, ed è un dispositivo elettronico che sfrutta la proprietà di alcuni
materiali di emettere luce se attraversati da corrente elettrica.

Un diodo LED ha la caratteristica corrente-tensione (I-V) tipica di tutti i diodi, fatta


come in figura, che fa capire come i valori di tensione e corrente, utili per il suo
funzionamento, sono in precisi intervalli al di fuori dei quali il diodo o non conduce o
rischia di rompersi. La curva caratteristica è un po’ differente a seconda della luce
emessa dal diodo e dal tipo di prodotto.
Per far accendere un diodo LED è necessario polarizzarlo direttamente. La tensione
applicata alla giunzione dei LED per avere emissione luminosa (tensione di soglia
Vf), dipende dalla “banda proibita” del materiale che a sua volta determina il colore
della luce emessa, come riportato nella seguente tabella:

Tipo LED tensione di giunzione Vf (volt)

Colore infrarosso 1,3

Colore rosso 1,8


Colore giallo 1,9

Colore verde 2,0

Colore arancione 2,0

Flash blu/bianco 3,0

Colore Blu 3,5

Colore Ultravioletto 4 – 4,5

di seguito riportiamo una tabella più completa, con indicati anche i materiali
semiconduttori utilizzati nel LED.

Color Lunghezza Tensione di Materiale semiconduttore


e d’onda [nm] soglia [ΔV]

Infrar λ > 760 ΔV < 1.9 Arseniuro di gallio (GaAs)


osso
Arseniuro di gallio e allumninio
(AlGaAs)

Rosso 610 < λ < 760 1.63 < ΔV < Arseniuro di gallio e allumninio
2.03 (AlGaAs)

Fosfuro arseniuro di gallio (GaAsP)

Fosfuro di alluminio gallio indio


(AlGaInP)

Fosfuro di gallio (GaP)


Aranci 590 < λ < 610 2.03 < ΔV < Fosfuro arseniuro di gallio (GaAsP)
one 2.10
Fosfuro di alluminio gallio indio
(AlGaInP)

Fosfuro di gallio (GaP)

Giallo 570 < λ < 590 2.10 < ΔV < Fosfuro arseniuro di gallio (GaAsP)
2.18
Fosfuro di alluminio gallio indio
(AlGaInP)

Fosfuro di gallio (GaP)

Verde 500 < λ < 570 1.9 < ΔV < 4.0 Nitruro di gallio e indio (InGaN) /
Nitruro di gallio (GaN)

Fosfuro di gallio (GaP)

Fosfuro di alluminio gallio indio


(AlGaInP)

Fosfuro di gallio e alluminio


(AlGaP)

Blu 450 < λ < 500 2.48 < ΔV < Seleniuro di zinco (ZnSe)
3.7
Nitruro di gallio e indio (InGaN)

Carburo di silicio (SiC)

Viola 400 < λ < 450 2.76 < ΔV < Nitruro di gallio e indio (InGaN)
4.0
Ultravi λ < 400 3.1 < ΔV < 4.4 Diamante (235 nm)
oletto
Nitruro di Boro (BN) (215 nm)

Nitruro di alluminio (AlN) (210 nm)

Nitruro di gallio e alluminio (AlGaN)

Nitruro di gallio indio e alluminio


(AlGaInN) – (fino 210 nm)

Bianc Ampio spettro ΔV = 3.5 LED blu con fosfori gialli


o

Come si vede dalla tabella i valori di Vf sono leggermente variabili anche a parità di
colore emesso. La corrente tipica che scorre in un diodo LED oscilla così tra i 15 e i
20 mA. Di seguito riportiamo i valori di tensione che utilizziamo per semplicità.

● colore bianco: 3,0 V


● colore blu: 3,0 V
● colore arancio: 2,0 V
● colore verde: 2,0 V
● colore giallo: 1,9 V
● colore rosso: 1,8 V

Se consideriamo che sui pin di Arduino ci sono 5Volt, bisogna mettere una
resistenza in serie al LED in modo da avere una Vf adatta sul LED. Per calcolare la
resistenza R serie bisogna utilizzare la seconda legge di Ohm (legge di Ohm alle
maglie): Tensione del generatore = tensione sul LED + tensione sul resistore –> V =
Vresistenza + Vled , cioè Vresistenza = V – Vled e considerando che avrei
Vresistenza=R*I si ricava che R = (V – Vled) / I. Pertanto a seconda del colore del
led si ha:
● R (bianco) = (5 – 3)/ 0.02 = 2 * 50 = 100 Ohm
● R (verde) = (5 – 2)/ 0.02 = 3*50 = 150 Ohm
● R (rosso) = (5 – 1.8)/ 0.02 = 3.2 * 50 = 160 Ohm

Nella tabella sotto facciamo un riepilogo.


Funzione condizionale IF-ELSE

L’istruzione IF ci consente di far fare ad Arduino una scelta, in base ad un


evento che capita. Quando può servirmi?
● Vuoi accendere il led solo se un contando alla rovescia da 100 a 1 si
raggiunge il numero 10? Devi utilizzare l’istruzione IF.
● Vuoi accendere una lampadina se la luminosità nella stanza è inferiore
ad un certo valore? Ti serve un IF.
● Vuoi far ruotare il motorino di una sbarra se si avvicina una persona per
passare? Ti serve un IF

Per descrivere la funzione IF uso il suo diagramma di flusso classico:

se il controllo è positivo si esegue la parte sinistra del codice. altrimenti l’altra.


La codifica è di questo tipo:

if (a>0) eseguo sinistra

else esegua destra

Con Arduino, il linguaggio Wiring adotta questa sintassi, con unica scelta:
oppure con le due scelte:
Tieni premuto il pulsante per
accendere il LED.

Il pulsante, collegato al pin 2 (input), tende a restare aperto: per chiudere il


contatto bisogna tenere premuto. Nel circuito è utilizzata una resistenza di
PULL-DOWN da 10KOhm, messa tra il GND ed il pin del pulsante. Per leggere
lo stato del pulsante utilizziamo l’istruzione “digitalRead(pin)” in cui va
specificato un unico parametro, il pin da leggere. La funzione può individuare
due soli stati, HIGH o LOW che corrispondono alla presenza di una tensione di
+5V o +0V. Il materiale che serve è : un pulsante, cavi, Arduino uno, una
resistenza da 10K Ohm, la breadboard.

In questo caso ho usato la resistenza di pull-down per cui in uscita ho uno


stato logico HIGH solo se premo il pulsante.
Se collego la resistenza verso i +5V, avrò uno schema con resistenza di
PULL-UP per cui lo stato logico letto dal pin 2 è HIGH senza che premo il
pulsante: il pulsante funziona al contrario (normalmente acceso).

Creare un circuito con


pulsante ed un algoritmo che
consente di accendere il led
se premo una volta e
spegnerlo se premo una
seconda volta

Potrebbero piacerti anche