Archivi tag: blink

Arduino per tutti parte quarta: si inizia a programmare (finalmente!)

Benritrovati nella rubrica Arduino per tutti che ritorna dopo una parentesi sul Raspberry. D’ora in poi, le due rubriche si alterneranno in modo abbastanza prevedibile al ritmo di un post a settimana (si spera…).
Finalmente, dopo la presentazione della scheda, l’installazione e la configurazione dell’IDE di Arduino, possiamo iniziare a programmare la nostra scheda di prototipazione.
Come inizia qualsiasi libri di programmazione che si rispetti? Ma con l’esempio base: l’”hello world” che tutti abbiamo imparato a conoscere (e temere).
In questo, Arduino e le schede consimili sono differenti, perché, ovviamente, non esiste “hello world”, nel senso che non è compito di una scheda di prototipazione produrre testi su un video. E allora?
L’equivalente nel mondo Arduino del programma hello world è Blink, ovvero l’accensione e lo spegnimento controllati del led della scheda stessa.

Prima di iniziare, diamo un’occhiata alla schermata dell’IDE che abbiamo già visto nella puntata precedente. Appena avviato, l’IDE apre in automatico un nuovo sketch. Appena aperto, lo sketch contiene sostanzialmente pochi elementi.

void setup() {
// put your setup code here, to run once:

}

void loop() {
// put your main code here, to run repeatedly:

}

Analizziamoli con calma.
Innanzitutto la dichiarazione “void” seguita da un identificativo (ad esempio setup()), è il nome con cui il linguaggio di programmazione “chiama” le variabili, cioè quegli elementi cui è possibile dare un valore di tipo statico (dato una volta e per sempre) o dinamico (il valore può essere assegnato durante l’esecuzione del codice). Qui ne troviamo due:
setup e loop.
La prima individua le operazioni che devono essere compiute una volta all’avvio del programma, l’altra quelle che devono essere compiute più volte in corso d’opera e più volte.
Il testo inserito dopo // invece è il commento del programmatore. Come si può vedere, ogni variabile ha un suo contenuto che deve essere appunto “contenuto” all’interno di due parentesi graffe {}.
Tutto qui. Come si vede, ci vuole poco.
E ora al nostro blink.
Molte schede Arduino contengono già preinstallato nel bootloader il blink. Tuttavia, sia nel caso non ci sia, sia nel cado ci sia, è bene osservare come sia possibile modificare la temporizzazione della scheda di prototipazione.
Innanzitutto, facciamo in modo che, all’avvio, la scheda si resetti e consenta di attivare il led (LED_BUILTIN, cioè il led preinstallato) e modificarne il comportamento (chiamando il comando OUTPUT). Inseriamo quindi nella void setup() il seguente codice:
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

Ora, inizializzato il led, occorre stabilire la variabile loop().
Attiviamo il temporizzazione digitale passandogli, fra parentesi tonda, l’indicatore a cui collegare la temporizzazione e il comando da eseguire, avendo cura di chiudere la parentesi tonda e l’intera stringa con il punto e virgola (;). Ecco il codice relativo:
digitalWrite(LED_BUILTIN, HIGH);
HIGH si riferisce al voltaggio, indica che la corrente viene trasmessa al led che si accende. Similmente, per spegnere il led basterà sostituire, nell’istruzione più sopra, HIGH con LOW e il led, come per magia, si spegnerà. Ora, però, a noi serve fare in modo che il led lampeggi (to blink in inglese) non che si accenda e si spenga immediatamente.
Occorre quindi inserire la stringa che controlla la temporizzazione. Il comando per temporizzare un’azione del componente è delay(). Nella parentesi inseriamo il ritardo dell’operazione, in millisecondi (cioè, se vogliamo ritardare l’operazione di 1 secondo, occorre inserire nella parentesi 1000 e così via).
Dunque il nostro codice per il lampeggiare del led è:
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}

Ora il nostro sketch è pronto per l’uso, dobbiamo caricarlo sulla scheda perché si attivi all’avvio.
Fra le scelte rapide, premiamo il primo pulsante e verifichiamo che il nostro sketch funzioni (non si sa mai).
Ora bisogna inviare lo sketch sulla Arduino. Premiamo il pulsante “Carica” (il secondo da sinistra) e l’IDE procederà ad installare lo sketch sulla scheda. Ecco fatto, abbiamo finito.
Alla prossima…