Arduino (1) – Per prima cosa, la programmazione
Descrivo brevemente i passi per installare il software su Windows:
- Scarichiamo l’archivio aggiornato da Google Code
- Scompattiamo l’archivio in una cartella a piacere (ad esempio sul Desktop)
- Colleghiamo attraverso il cavo USB la scheda al PC
- Nella cartella estratta ci saranno i driver relativi (nella cartella “driver”)*
- Una volta installati i driver tutto è pronto
Il primo test di funzionamento da fare, è collegare un led** al pin 13 dal lato delle uscite digiatali (dove c’è la porta USB) e al GND (ovvero Ground): il pin 13 è dotato di un’opportuna resistenza, tale da non far “distruggere” il nostro led. Il programma caricato “in frabbrica” nel microcontrollore, varierà da alta a bassa e viceversa l’uscita del pin, in modo da far accendere e spegnere il led, ovvero da farlo lampeggiare.
Un programma per Arduino o Sketch, viene scritto in un linguaggio molto simile al C (semplificato) e nella sua forma più semplice, è costituito da due funzioni obbligatorie:
- “void setup()“: serve a configurare la piattaforma, ovvero a dire al microcontrollore “di che tipo sono i pin”: di ingresso, di uscita, analogici, digitali…
- “void loop()“: costituisce il ciclo principale del programma, ovvero il codice eseguito dal microcontrollore e che mi specifica il comportamento
Come per il C il corpo della funzione deve essere racchiuso tra parentesi graffe, al cui interno le istruzioni devono essere delimitate da punto e virgola. I costrutti sono quelli del C, inoltre si hanno a disposizione funzioni apposite:
- pinMode() : setta un pin in ingresso o in uscita
- digitalWrite() : setta l’uscita digitale di un pin alta o bassa (high/low)
- digitalRead() : legge lo stato di un pin (alto/basso)
- analogRead() : legge da un ingresso “analogico”***
- analogWrite() : scrive un valore “analogico”*** su un pin
- delay() : sospende l’elaborazione per il tempo specificato
- millis() : ottiene l’istante di esecuzione corrente
inoltre ci sono molte librerie disponibili sul sito e liberamente utilizzabili, anche per i più svariati dispositivi (display, tastiere, mouse, …).
Come si immagina, si possono scrivere funzioni (o librerie di funzioni) di supporto ed eventuali variabili globali possono essere dichiarate all’esterno di tutti i blocchi relativi alle funzioni.
Quello che manca adesso è un bell’esempio; per non cominciare subito con la parte elettronica, proviamo a ripetere il test, scrivendo noi il programma.

A questo punto dobbiamo selezionare dal menu “Tools” la board (nel mio caso “Arduino DuemilaNove con ATMega 328″) e la porta COM* a cui è collegato dallo stesso menù. Possiamo verificare la correttezza del nostro codice, premendo il tasto “Verify” (quello con l’icona play). Infine possiamo premere il tasto “Upload To I/O Board” (penultimo a destra) oppure richiamare il comando dal menù “File”.
NOTE:
* Arduino non è collegata al pc con una connessione USB vera e propria, ma attraverso la più semplice porta COM; è come se avessimo un adattatore usb-seriale che ci collega ad Arduino.
** Il led, come si può notare, è già collegato sulla scheda al pin 13, vicino a quelli di trasmissione (TX) e ricezione (RX) ed è etichettato con la lettera L. Non c’è dunque un vero e proprio bisogno di montare un led per esegure questo test.
*** “Analogico” in realtà quello che si ha è un segnale analogico digitalizzato su ‘n’ livelli, ovvero su un certo numero di bit.
