La tastiera in questo progetto è fondamentale, perché è l’unico modo per potersi interfacciare al dispositivo(l’alternativa è usare il Serial Monitor).
L’immagine la schematizzazione circuitale della tastiera, che ci permette di leggere, con un solo pin analogico, ben 10 pulsanti. La logica di funzionamento consiste nell’ assegnare ad ogni resistenza (N) il valore di caduta di tensione pari a 0,5V e quando un pulsante viene premuto chiude il contatto, restituendo al pin A5 una tensione pari al numero di resistenze nel ramo per 0,5. La resistenza per fare la partizione è molto grande perché così non avremo grandi perdite.
Ipotizziamo che venga chiuso il contatto J3, la tensione ai capi di A5 sarà uguale a:
Dato che in tutte le resistenza N abbiamo la stessa caduta di tensione ci basterà fare:
Vpulsante = V0 + V1 + V2 = 0,5 + 0,5 + 0,5 = 1,5 V
Una volta realizzato il circuito passiamo alla scrittura del programma, che inizia con un ciclo do, nel quale leggiamo ogni 10 mS il pin A5 e per uscirne basterà premere: o un tasto della tastiera, o il tasto di chiamata.
Successivamente quando usciremo dal ciclo il valore analogico del pulsante premuto sarà convertito nel valore effettivo del tasto, tramite una proporzione (map) ed infine, la funzione ci restituirà questo risultato.
Il problema dell’antirimbalzo è stato risolto non via hardware, ma via software mettendo un ritardo all’interno della funzione. La resistenza Rp non influisce sul corretto funzionamento della tastiera ( è stata utilizzata per effettuare delle prove in passato).