Nei post precedenti abbiamo introdottola scheda di Arduino, il suo IDE per scrivere i programmi e caricarli
sul microcontrollore e oggi andremo a scrivere il nostro primo
programma, utilizzando i piedini di output digitali.
INTRODUZIONE
In queste serie di guide su Arduino noi
assumiamo che abbiate già delle conoscenze sui linguaggi di
programmazione come il C, invece per quanto riguarda la parte di
elettronica vi mostreremo gli schemi elettrici e li spiegheremo.
Quando scriviamo i programmi per
Arduino, nel codice ci devono essere due funzioni principali:
void setup() e void loop()
Come si può immaginare, la prima
funzione serve per impostare i piedini o eventuali funzionalità che
andremo ad usare nel codice, per esempio impostare se i piedini
saranno di input o output, impostare la velocità (baud rate) della
porta seriale, oppure, come vedremo nei prossimi post, impostare gli
interrupt del microcontrollore.
La funzione void loop() funzionerà
come ciclo principale del microcontrollore, qui inseriremo il codice
che dovrà eseguire.
Iniziamo
Per iniziare proveremo ad accendere e
spegnere un diodo led con il nostro Arduino. I componenti, per chi non ha comprato Arduino start kit, si possono trovare in qualsiasi negozio di elettronica oppure su Ebay. Per fare ciò abbiamo
bisogno di:
- Un diodo led
- Una resistenza da 470 Ohm
- Una breadboard
- Dei cavetti
- Arduino (ovviamente xD)
La resistenza da 470 Ohm la useremo per
limitare la corrente in entrata sul diodo, altrimenti si brucerebbe e
l'odore è particolarmente sgradevole :D.
Per vedere il valore della
resistenza dobbiamo guardare le strisce che ci sono su di essa, e
basandoci su un codice colori possiamo trovare il suo valore, qui di seguito possiamo vedere il codice colori:
Di seguito riportiamo un piccolo
schema con i collegamenti da effettuare:
Dove:
![]() |
Il nostro diodo led |
![]() |
La nostra resistenza da 470 Ohm |
Ricordate che internamente la
breadboard è fatta così:
Le linee gialle indicano che i piedini
di quella linea della breadboard sono collegati tra di loro.
Montiamo il tutto
Prendiamo un cavetto e colleghiamolo
dal pin 12 di Arduino ad un pin della breadboard, e nella stessa
pista (ossia nella stessa linea gialla dell'immagine
di sopra) colleghiamo l'anodo del led (il piedino più lungo,
rappresentato nell'immagine qui sotto):
Invece il catodo del led (il piedino
più corto) lo colleghiamo ad un'altra pista della breadboard (linea gialla
dell'immagine sopra), nella stessa pista inseriamo
un piedino della resistenza, mentre l'altro piedino lo inseriamo nel
pin GND di Arduino.
Alla fine di tutti i collegamenti
dovremmo avere una cosa del genere:
Bene terminati i collegamenti ora
passiamo al codice che dobbiamo caricare sul microcontrollore.
Il CODICE
Di seguito vi metterò tutto il codice
sorgente e successivamente lo commenteremo.
- int const pin = 12;
- void setup(){
- pinMode(pin, OUTPUT);
- }
- void loop(){
- digitalWrite(pin, HIGH);
- delay(500);
- digitalWrite(pin, LOW);
- delay(500);
- }
Commentiamo
Alla riga 1 dichiariamo una variabile
globale di tipo intero e costante di nome pin al valore 12, in poche
parole sarà il pin che andremo ad utilizzare per l'output su
Arduino.
Alla riga 2 inizia la prima funzione
principale, che a differenza di void loop essa verrà eseguita solo
una volta, all'interno della funzione, alla riga 3 con pinMode, mettiamo il pin
12 in modalità OUTPUT, così possiamo regolare la tensione in
uscita.
Alla riga 5 inizia la seconda funzione
principale che verrà eseguita fino a quando non scolleghiamo
dall'alimentazione Arduino. All'interno utilizziamo due funzioni la
prima è digitalWrite che agisce su un pin mandandogli o tensione
bassa oppure tensione alta (da impostare nel secondo parametro della
funzione scrivendo 1 che sarebbe HIGH oppure scrivendo 0 che è LOW),
invece come primo parametro vuole il pin su cui agire, in questo caso
gli passiamo il pin numero 12 che è salvato nella variabile pin.
La seconda funzione che troviamo è
delay, che non fa altro che far dormire Arduino per un certo tempo,
come parametro vuole un valore intero che rappresenta i millisecondi
che deve dormire (in questo caso noi gli abbiamo passato 500
millisecondi che sarebbe semplicemente mezzo secondo).
In sostanza il nostro diodo led si
accenderà e spegnerà ogni 500 millisecondi, questo piccolo esempio
è simile a quello utilizzato nella documentazione della funzione
pinMode.
Conclusioni
Bene, oggi con questo semplicissimo esempio abbiamo visto le funzioni principali void setup e void loop, poi abbiamo visto la funzione per impostare i piedini la pinMode, e abbiamo utilizzato la delay e la digitarWrite per spegnere e accendere il nostro diodo led. Ora che abbiamo terminato e sappiamo usare queste funzioni, possiamo estenderle a progettini più interessanti come ad esempio simulare un semaforo (semplicemente applicare quello che abbiamo fatto anche su altri due pin utilizzando i diodi gialli e rossi, e temporizzare il tutto con la funzione delay).
Per il disegno dello schema elettrico ho usato il programma kicad, se siete interessati potete installarlo dando questo comando da terminale:
sudo apt-get install kicad
Nel prossimo post andremo a vedere come utilizzare i piedini digitali di input.
-Immagini di Joel Garia;
-Immagini led, codice colore e breadboard da Google Immagini;
Nessun commento:
Posta un commento