01. Struttura di uno sketch

La programmazione di Arduino si basa sulla definizione di due funzioni:

    • void setup()

    • void loop().

Queste due funzioni racchiuderanno le necessarie impostazioni per il funzionamento dei dispositivi collegati con Arduino e i blocchi di istruzioni per svolgere quanto richiesto.

I programmi così implementati sono detti sketch.

void setup( )

La funzione setup( ) è la prima ad essere richiamata quando parte uno sketch.

Viene utilizzata per inizializzare variabili, per impostare lo stato dei pin e inizializzare le funzioni di libreria.

La funzione di setup() è eseguita dopo ogni accensione o reset di Arduino.

Sintassi

void setup( ) {

// istruzioni varie;

}

Esempio

void setup( ) {

Serial.begin(9600);

pinMode(3,OUTPUT);

}

In questo esempio sono eseguite le seguenti operazioni:

  • è impostata la velocità della linea seriale a 9600 bit per secondo (baud), utilizzata per la comunicazione con il PC tramite il Serial Monitor (funzionante solo quando Arduino è collegato al computer);

  • è impostato il pin 3 come OUTPUT (in questo modo è possibile attivare un'utenza collegata su quel pin).

void loop( )

La funzione loop() è richiamata subito dopo la funzione setup() e, coerentemente con il proprio nome, ciclicamente ogni volta che la funzione stessa termina.

La funzione loop() include l'intero programma che si vuole eseguire, fatto salvo le inizializzazioni che sono a carico della funzione setup().

E' ammesso strutturare il programma in funzioni, richiamate (direttamente o indirettamente) dalla funzione loop().

Sintassi

void loop( ){

// istruzioni da ripetere in modo ciclico;

}

Esempio

void loop( ){

digitalWrite(3, HIGH); // metti il pin 3 allo stato alto

delay(1000); // mantieni questo stato per 1 secondo

digitalWrite(3, LOW); // metti il pin 3 allo stato basso

delay(1000); // mantieni questo stato per un secondo

}

In questo esempio sono eseguite le seguenti operazioni:

  • la funzione digitalWrite() attiva (in corrispondenza del valore HIGH) e poi disattiva (in corrispondenza del valore LOW) l'utenza collegata al pin 3;

  • delay()introduce una pausa della durata indicata, espressa in millisecondi.