Arduino: Struttura del programma

Per cominciare vediamo le prime differenze per quanto riguarda il mondo di Arduino e come viene concepito e strutturato un programma.

Gli Sketch

Per chiunque viene dal mondo della programmazione, certamente avrà familiarità con il concetto di programma: una serie di codici implementato tramite un particolare linguaggio di programmazione che viene compilato (o interpretato) con lo scopo di eseguire una determinata operazione o applicazione.

Per quanto riguarda invece il mondo di Arduino, un listato di codice che poi viene compilato ed eseguito, viene riferito come Sketch. Inoltre generalmente siamo abituati ad avere programmi in c, con estensione .c (o .cpp per C++), ma per quanto riguarda Arduino, questi saranno riconoscibili nel nostro file system con .ino come estensione.

La struttura Setup – Loop

La struttura base di uno sketch di Arduino è basata principalmente sulla definizione di due funzioni:

  • void setup()
  • void loop()

Queste due funzioni sono alla base di qualsiasi programma, o sketch, che dovrà essere implementato e poi compilato su Arduino, semplice o complesso che sia.

Arduino sketch
Uno sketch su Arduino IDE

La funzione setup() è la prima ad essere invocata durante l’esecuzione dello sketch. In questa funzione vengono generalmente definite ed implementate tutte le variabili e funzioni che sono necessarie per far partire correttamente il programma.

Avremo quindi l’inizializzazione di variabili, la definizione di costanti, il controllo e l’attivazione dei pin o di periferiche collegati alla scheda Arduino. Un classico esempio è quello di impostare tutti i parametri necessari per creare una connessione seriale con un dispositivo esterno e poi chiamare una funzione per stabilire questa connessione con il dispositivo.

Quindi all’interno della funzione setup() implementeremo tutto quel codice necessario per impostare ed eseguire tutte quelle operazioni necessarie per poi far partire a pieno regime il programma vero e proprio.

Tutto il codice che invece implementa le operazioni di routine del programma, è spesso nel caso di Arduino, un’operazione ripetitiva e sarà definito all’interno della funzione loop().

Questo concetto risulta ben chiaro se vediamo lo schema di funzionamento rappresentato nella figura seguente:

Arduino sketch structure for programming with C
Diagramma di flusso di uno sketch

Dallo schema rappresentato e da quanto detto in precedenza è facile intuire che in realtà un programma in Arduino, non ha l’evoluzione classica, di inizializzazione, svolgimento dell’operazione e conclusione con l’interruzione finale dell’esecuzione, bensì una inizializzazione al momento dell’accensione della macchina, ed una esecuzione in loop infinita che si interromperà solo allo spegnimento della macchina o alla pressione del tasto reset.


Ultime modifiche: mercoledì, 2 novembre 2022, 22:00