#11 Arduino: Pulsanti su pin analogici

In questa lezione, vedremo come collegare dei pulsanti ai pin analogici di Arduino, questa tecnica è molto utile sia per poter usare i pin analogici quando quelli digitali scarseggiano, sia per la possibilità di poter collegare più pulsanti allo stesso pin analogico.

Io come sempre utilizzerò tinkercad per la simulazione.

Materiale necessario

Se siete interessati al materiale, cliccate su questo e sarete indirizzati alla pagina Amazon

Schema di collegamento di pulsanti e resistenze

Pe prima cosa, seguendo lo schema qui di fianco, montiamo tutti i componenti necessari sulla basetta di prova, monteremo quattro resistenze da 4,7 KΩ in serie, ad ognuna di queste collegheremo uno pulsante, tutto poi andrà collegato ad un pin analogico di Arduino, io uso il pin 0, tramite una resistenza da 1 MΩ

Così Arduino leggerà zero quando nessun pulsante è premuto, mentre leggerà un valore x alla pressione di uno o più pulsanti.

Dopo il montaggio il circuito necessita di un setup, infatti come prima cosa dobbiamo capire che valori legge Arduino alla pressione di ogni singolo pulsante, per fare questo scriviamo un piccolo sketch che abilita il serial monitor, così da leggere i valori.

Lo sketch qui di fianco ci permette di fare la lettura detta sopra, analizziamolo velocemente:
nella sezione setup, abilitiamo il monitor seriale.
Nella sezione loop, dichiariamo una variabile intera chiamata “p”, che assumerà il valore dato dalla lettura del pin analogico A0, questo verrà scritto nel serial monitor di Arduino, tramite il comando Serial.println(p).
Aggiungo un delay, così da avere un pò di tempo per leggere questo valore, in mancanza del Delay, i valori scorrerebbero troppo velocemente.

Nel mio caso ottengo i seguenti valori: Pulsante 1: 765, Pulsante 2: 509, Pulsante 3: 255.
Una premessa prima di andare a vanti, i valori scritti sopra sono una media di quelli letti, questi infatti non sono costanti ma hanno una certa variabilità di cui dovremmo tenere conto nel secondo sketch.

Una volta conosciuti questi valori, passiamo allo sketch vero e proprio, quindi cancelliamo quello precedente e scriviamo quello che permetterà di usare i pulsanti.

Inseriamo una variabile prima del loop in cui daremo un valore margine da sommare o sottrarre al valore letto dal pin; la scelta di questo valore deve tenere in conto la lettura minima e massima di ogni singolo pulsante, ricordate che i valori detti sopra sono dei valori medi, nel mio caso il valore di range è 5.

Dentro il loop inseriamo tanti if quanti pulsanti sono presenti, ogni if avrà il compito di controllare i valori letti nel pin ed eseguire il comando, nel nostro caso scrivere il nome del pulsante.
In breve l’if funzionerà nel seguente modo:
Se “p” è compreso dentro i due valori di lettura del pulsante, allora esegue il comando dato, prendendo come esempio il primo if, questo leggerà il valore di “p”, se questo è compreso nel range 509-5 e 509+5, allora scriverà “pulsante 1”, viceversa non farà nulla, ricordate che le condizioni all’interno di ogni if devono essere sodisfatte entrambe, viceversa non verrà eseguito il comando.

Questo metodo può essere usato anche per la pressione di due o più pulsanti in contemporanea, ovviamente dovremmo capire il valore ottenuto dalla pressione e scrivere un if che tenga conto di questi valori.

/ 5
Grazie per aver votato!

Allegati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *