Output digitali di Arduino

postato in: Arduino, Articoli | 0

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:
coefficiente-temperatura-resistenze
 
Di seguito riportiamo un piccolo schema con i collegamenti da effettuare:
schema elettrico
 
Dove:
led_sch
Il nostro diodo led
resistenza_sch
La nostra resistenza da 470 Ohm
 

 

 
Ricordate che internamente la breadboard è fatta così:
breadboard
 
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):

 

schema_led

 

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:

 

collegamento_ard

 

 
collegamento_bread
prog_completo

 

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
-Immagini di Joel Garia;
-Immagini led, codice colore e breadboard da Google Immagini;

 

Dottore in Informatica. Da sempre appassionato di Linux, reti informatiche, sicurezza e, in modo amatoriale, all'elettronica. Il mio intento è quello di trasmettere le mie conoscenze ad altri appassionati.

Lascia un commento