#03 | Lo Sketch Blink

L’incipit probabilmente più famoso del mondo Arduino è il cosiddetto Blink. Si tratta di uno Sketch molto semplice, che produce un solo effetto: fa lampeggiare (blink, appunto) un LED. Nonostante sia elementare, tuttavia, ha la medesima struttura di Sketch ben più grandi e impegnativi da realizzare e comprendere. Queste due caratteristiche ne hanno decretato la notorietà tra gli appassionati, rendendolo – a tutti gli effetti – uno dei simboli di Arduino. Sei pronto a comprendere – e a scrivere – i tuoi primi Sketch?

Queste nove righe di codice sono incluse all’interno di Arduino IDE, l’ambiente di programmazione dedicato alla piccola scheda: per il momento non devi scrivere niente, ma è fondamentale che ti concentri!

Difficoltà: semplice

Materiali

  • Arduino Board
  • Cavo USB tipo “B”

Sketch

Il listato seguente è composto da due sezioni – più propriamente dette “funzioni“. Una si chiama setup(), l’altra loop(). Come puoi notare, davanti al loro nome è specificata la parola “void“: significa che non ritornano nessun valore; se non hai compreso quest’ultima affermazione, non preoccuparti: capirai cosa significa nelle prossime lezioni!

La funzione setup viene eseguita una ed una sola volta, al lancio dello Sketch, che avviene all’avvio di Arduino o quando premi il pulsante rosso che si trova nell’angolo. In questa sezione del programma, quindi, devi inserire tutte quelle operazioni che vuoi che vengano svolte soltanto una volta.

La funzione loop, al contrario, viene eseguita continuamente: come suggerisce il nome, tutte le istruzioni che si trovano al suo interno vengono svolte ciclicamente, teoricamente all’infinito. Ovviamente, la nostra piccola board – prima o poi – si fermerà (per un’interruzione di corrente, per la pressione del tasto di reset posto nell’angolo): in quel momento verrà interrotto lo Sketch.

void setup() {
    // inizializza il pin LED_BUILTIN come output
    pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
    digitalWrite(LED_BUILTIN, HIGH); // accendi il LED - HIGH indica il livello di tensione
    delay(1000); // attendi per un secondo
    digitalWrite(LED_BUILTIN, LOW); // spegni il LED - LOW indica il livello di tensione
    delay(1000); // attendi per un secondo
}

Nel codice qui sopra avvengono molteplici eventi:

  • Viene inizializzato il pin corrispondente a LED_BUILTIN (il tredicesimo) come output: ciò significa che Arduino “deciderà” se applicare livelli di tensione alti o bassi su quel contatto
  • Viene accesso il LED, con l’utilizzo della funzione digitalWrite(); questa necessita di due parametri: il pin su cui operare e il valore di tensione da applicare (HIGHLOW)
  • Dopo aver acceso il LED, attende un secondo: la funzione delay() è perfetta per questo scopo
  • Viene spento il LED e, in seguito, blocca l’esecuzione dello Sketch per un secondo

Come posso modificare il tempo di blinking?

Questo è l’argomento della prossima sezione di questa guida. Per il momento, rileggi il listato di Blink e cerca di comprenderlo: sarà fondamentale per poter proseguire! E, soprattutto, non dimenticare di testarlo: in questo modo sarà ancor più semplice capire gli effetti di quelle parole.

Nella prossima sezione, quindi, scoprirai come modificare il codice che ti ho presentato. Sei pronto?