A. Costantini | (
la videolezione) L’obiettivo del post è quello
di descrivere l’uso delle variabili intere e delle istruzioni “
digitalRead” e “
if…else” mediante due semplici programmi: quello in figura e quello nel post.
In un articolo precedente si è realizzato un programma che permetteva di far
lampeggiare un LED; con la nuova istruzione “digitalRead” è possibile eseguire qualcosa di più evoluto: il lampeggio
di un LED solamente se cambia una situazione esterna (ad esempio quando un pulsante
è premuto), oppure lampeggio veloce del LED se cambia una situazione esterna (vedere lo sketch in basso). In sostanza, l’istruzione “digitalRead”
è in grado di leggere il valore HIGH o LOW presente su uno specifico pin digitale
della scheda, per controllare, ad esempio, la condizione “CHIUSO/APERTO” di un
pulsante collegato a quel pin. L’istruzione “if…else”, invece, consente
di prendere delle decisioni in funzione del fatto che una determinata
condizione logica sia VERA o FALSA. Nel caso in cui la
condizione sia VERA viene
eseguito un primo blocco di istruzioni, nel caso in cui la condizione sia FALSA, viene eseguito un
secondo blocco (vedi sketch in basso). La condizione logica é espressa tra parentesi tonde e segue la parola “if”. Nel
linguaggio di programmazione C il simbolo “==” viene utilizzato per
confrontare due entità (confronto logico) e restituisce TRUE o FALSE, mentre il
simbolo “=” viene utilizzato per assegnare un valore ad una variabile. Si noti che bisogna in qualche modo ricordare lo stato del pulsante, per far ciò definiamo una variabile intera di nome x

Come è possibile vedere nel programma, si usa la x per conservare il valore letto
con digitalRead. Ricordiamo che i valori di qualsiasi variabile usata con
Arduino vengono inseriti nella memoria RAM, valori che vengono persi una volta che si
toglie l’alimentazione alla scheda Arduino. All’interno della
codice di loop() viene assegnata alla variabile x il valore dell'input mediante l’istruzione digitalRead(11),
ovvero l’istruzione legge il valore dell’input (pulsante) e restituisce un
valore 0 oppure 1: Nel primo sketch (quello nella figura), se il valore di x è 0 (LOW) vuol dire che il pulsante è premuto e allora, tramite il
blocco di istruzioni che segue viene fatto lampeggiare LED; se il primo
confronto risulta falso, vuol dire che il pulsante non è premuto e, come
conseguenza, nessuna istruzione viene eseguita e il LED rimane spento. Nel secondo sketch (quello sopra), se il valore di x è 0 (pulsante è premuto) allora, tramite il
blocco di istruzioni che segue viene fatto lampeggiare velocemente il LED; se il primo
confronto risulta falso, vuol dire che il pulsante non è premuto e verrà eseguita la parte di codice che fa lampeggiare lentamente il LED.
Qui il Circuito Tinkercad:
- senza iscrizione é possibile simularlo, consultare la lista dei componenti, copiare il codice e scaricare il pdf dello schema;
- con l'iscrizione gratuita è possibile anche copiarlo e modificarlo a proprio piacimento.