Tempo di lettura/visione: 2 min
Introduzione
I pulsanti sono tra i componenti elementari di natura più semplice che possiamo trovare all’interno di un circuito elettrico, nei progetti con Arduino, la loro presenza non è da meno. In questo tutorial andremo ad accendere e spegnere un led attraverso l'ausilio di un pulsante.
All'interno del codice troveremo nuovi comandi come il comando
if-else e
digitalRead. Per leggere i valori del pulsante inoltre useremo una
variabile, che chiameremo
val.
Stai muovendo i primi passi nel fantastico mondo di Arduino? Ti consigliamo anche questi tutorial:
Pulsante
Il pulsante è un dispositivo elettrico con una sola posizione di riposo (monostabile), una volta azionato una molla lo riporta alla posizione di partenza appena viene rilasciato.
Il pulsante dovrà collegarsi ad un pin digitale poichè assumerà solo due valori, 1 (HIGH) quando il pulsante è premuto, 0 (LOW) quando è in posizione di riposo.
Circuito
Possiamo dividere il circuito in due parti, la parte di
collegamento del led e quella di
collegamento del pulsante.
Il pulsante dovrà essere collegato con un pin ai 5 V e un altro al pin digitale di Arduino. Il piedino che è collegato all’ingresso digitale dovrà avere anche un collegamento con il pin del GND attraverso l’uso di una resistenza da 10 KΩ.
La seconda parte di circuito invece riguarda il collegamento del led, che come al solito dovrà essere collegato con il catodo al pin digitale attraverso una resistenza da 330Ω, e l’anodo al GND (ulteriori dettagli relativi al circuito per il Led con Arduino sono all'interno del tutorial
Accendere e spegnere led con Arduino).
Comando IF...ELSE
L’istruzione
if…else (
qui la documentazione ufficiale Arduino) 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 il primo blocco di istruzioni (
if), nel caso in cui la condizione sia FALSA (
else) viene eseguito il secondo blocco.
Ecco un esempio di utilizzo dell'
if ... else utilizzando il linguaggio dell'IDE di Arduino:
if (val == HIGH) { //se la variabile val è uguale a HIGH (pulsante premuto) digitalWrite(LED, HIGH); //accende il led}else { //altrimenti digitalWrite(LED, LOW); //spegne il led}DigitalRead
La funzione digitalRead (
qui la documentazione ufficiale dal sito di Arduino) viene utilizzata per leggere dati da sensori basati su una logica LOW/HIGH come ad esempio il nostro pulsante.
Se al posto di un pulsante usassimo una fotoresistenza dovremmo utilizzare analogRead poichè leggerà più valori.
Ecco la sintassi della funzione:
val = digitalRead(BUTTON); // legge il valore dell'input e lo conservaIn questo modo la variabile val leggerà il valore del pulsante, riportandolo poi all’interno del’ if che compirà la funzione di accendere il nostro led, qualora il valore risultasse HIGH.
Funzionamento del programma
Con il seguente programma possiamo andare ad accendere un led premendo il pulsante.
Infatti lo stato del pulsante viene salvato all'interno di una variabile, denominata
val, che può assumere due valori:
- 0 (pulsante in posizione di riposo);
- 1 (pulsante premuto).
Per far accendere il led andiamo quindi ad inserire l’ultimo comando condizionale (
if ... else): nel caso in cui la variabile
val sia ad 1 il led si accenderà altrimenti il led rimarrà spento.
Ecco il codice completo e funzionante a vostra disposizione:
Questa invece è una screenshot realizzata all'interno dell'IDE di Arduino.