lunedì 15 dicembre 2014

Output digitali di Arduino


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.

  1. int const pin = 12;
  2. void setup(){
  3.    pinMode(pin, OUTPUT);
  4. }
  5. void loop(){
  6.    digitalWrite(pin, HIGH);
  7.    delay(500);
  8.    digitalWrite(pin, LOW);
  9.    delay(500);
  10. }

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