Arduino sappiamo essere la scheda elettronica con microcontrollore integrato prodotto da Atmel.
Con questo prodotto è possibile realizzare diversi progetti interessanti in modo economico, come ad esempio una casa domotica oppure una serra smart (per quanto riguarda la coltivazione indoor).
In questa repository GitHub trovi il mio progetto.
Come programmare un Arduino
Per programmare Arduino è necessario utilizzare il software Arduino IDE (ambiente di sviluppo ufficiale), ovviamente gratuito. L’IDE di Arduino anche se scritto in Java è basato sul linguaggio Processing e per questo ha tanti punti in comune con la struttura dei programmi Arduino.
A partire dal nome, un programma Arduino viene chiamato “sketch” proprio come in Processing ed è composto da due blocchi obbligatori: setup e loop.
Le due funzioni hanno scopi diversi:
- setup è la funzione in cui le istruzioni vengono eseguite una sola volta, quindi al momento dell’accensione iniziale oppure a seguito della pressione del tasto RESET.
- loop è la funzione in cui le istruzioni vengono eseguite ciclicamente infinite volte fin quando Arduino è alimentato.
Se vuoi imparare a programmare Arduino, inizia a leggere i principali manuali di riferimento.
Funzioni di base per programmare Arduino
La programmazione di Arduino è basata sul linguaggio C con alcune semplificazioni.
Le funzioni essenziali per far comunicare Arduino con le periferiche collegate sono solo cinque:
- pinMode(numero, direzione): è utilizzata per configurare i pin digitali della scheda. Il parametro numero indica il pin da configurare, mentre direzione (ricevuto come costante INPUT o OUTPUT) indica se il pin deve ricevere o trasmettere dati;
- digitalWrite(numero, stato): utilizzata per attivare un’uscita digitale sul pin indicato da numero. Lo stato può essere HIGH o LOW;
- digitalRead(numero): legge un valore di tipo numerico intero dal pin ricevuto come parametro;
- analogWrite(numero, valore_pwm): utilizzata per creare dei segnali variabili;
- analogRead(numero): utilizzata per leggere segnali analogici.
Ci sono anche diverse funzioni software per gestire gli interrupt in Arduino.
Dove vengono memorizzati i programmi Arduino
Come spiegato anche nell’articolo dedicato ad Arduino Uno, i programmi Arduino vengono memorizzati nella memoria flash.
Il caricamento di un nuovo programma avviene a sua volta tramite un piccolo programma chiamato bootloader anch’esso salvato in memoria flash occupandone 0,5 KB. Quello più utilizzato per Arduino Uno è Optiboot. Il bootloader è già caricato su ogni microcontrollore e viene eseguito ad ogni RESET.
In particolare, la prima operazione che compie è il controllo di eventuali richieste di caricamento di un nuovo programma ricevute tramite porta seriale o USB. A questo punto se non perviene nessuna richiesta procede con il caricamento del programma precedente, altrimenti si occupa di caricare il nuovo nella memoria flash.
In ogni caso il bootloader non è strettamente necessario, infatti anche senza è possibile caricare i programmi tramite un programmatore ISP e collegarlo al connettore ICSP presente su Arduino.