home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca
 
LETTURA TASTIERINO 4X4 tipo: livello:
Lettura di un tastierino a membrana 4x4 attraverso arduino nano e PCF8574.
 
 



 

 Lettura tastierino 4x4


Questo progetto fa parte di un più ampio caricabatterie che, per praticità, ho deciso di dividere in più parti e collaudare in separata sede ognuna di esse. Questo progetto non ha quindi una propria utilità, ma la acquista nel contesto del caricabatterie in via di sviluppo. In questo articolo mi limito a spiegare e illustrare la logica e la pratica della lettura dei tasti e, principalmente, l'ottimizzazione via software.

Descrizione

La lista dei componenti non è di per sè onerosa. Sono necessari ovviamente il tastierino, l'integrato PCF8574, un semplice I/O 8-bit port expander via I2C, e un pic. Ho scelto di utilizzare un arduino nano (che sarà probabilmente utilizzato anche nel progetto finale), perché ho già dimestichezza nella programmazione ed è economico, soprattutto nelle varianti cloni.

Il datasheet al quale farò riferimento per il PCF si può trovare al link www.ti.com/lit/ds/symlink/pcf8574.pdf. (non faccio pubblicità a nessuno, è il primo risultato trovato)
La programmazzione sarà il più possibile a livello macchina (no, non assembly, ma agendo, dove possibile, direttamente sui registri) per ottimizzare i tempi di esecuzione. La lettura del tastierino sarà quindi la più breve possibile per lasciare posto ad altre letture e gestioni.

Le funzionalità richieste sono la lettura dei pulsanti attivi e il tempo di pressione, oltre che la capacità di lettura indipendente di ogni tasto.

La soluzione elaborata è ad-hoc per il mio problema, non ho creato librerie o altro per questioni di tempistica. Ciò non vuol dire che non sia replicabile e adattabile.

 

Analisi dei componenti
In questa sezione analizzerò i vari componenti utilizzati. Per chi ha già famigliarità può passare oltre!

PCF8574

E' l'integrato sul quale spenderò più tempo per ovvi motivi (se ovvi non fossero, perché è magari quello più sconosciuto e il cuore del progetto). Una prima occhiata veloce ci mostra un integrato con 8 I/O (quindi da poter utilizzare come Input o come Output) che vengono impostati o letti tramite un microcontrollore attraverso il protocollo I2C (freq. max 100kHz). Ogni pin è indipendente dagli altri, e può essere modificato in ogni momento.
Il PCF è provvisto di un registro interno nel quale è possibile assegnare la direzione ad ogni pin e leggere il relativo stato. La comunicazione è possibile comunicando anzi tutto l'indirizzo dell'IC stesso (come il protocollo I2C richiede) che è possibile trovare a pag.13 del datasheet (sezione 8.3.3). A seconda che vogliamo leggere o scrivere nel registo, l'indirizzo cambia. E' possibile utilizzare i pin A0, A1 e A2 per porre più integrati dello stesso tipo nella stessa linea I2C.
Nella breve descrizione dal datasheet (che vi invito a guardare) in prima pagina si può leggere "The device features an 8-bit quasi-bidirectional I/O port".
 

TASTIERINO

Schema tastierino
Il tastierino è un normale 4x4 a membrana, la struttura si può vedere nell'immagine a fianco. In particolare in quello che ho usato io i pin erano connessi, nell'ordine, a:
 
 
 
 
 
 
 
 
 







  il parere della community
esprimi il tuo voto approvi questa pagina? promo


  non sei autenticato, per questo non puoi visualizzare i commenti sulla pagina. Se sei registrato accedi oppure registrati.


difficoltà
costo
informazioni
Questa pagina stata creata da 11121ss_11121ss
il 07/05/2017 ore 09:53
ultima modifica del 12/06/2018 ore 16:26
la pagina stata visitata 925 volte




Lo staff di www.grix.it non si assume responsabilità sul contenuto di questa pagina.
Se tu sei l'autore originale degli schemi o progetti proposti in questo articolo, e ritieni che siano stati violati i tuoi diritti, contatta lo staff di www.grix.it per segnalarlo.

   
 

 
 
indietro | homepage | torna su copyright © 2004/2018 GRIX.IT - La community dell'elettronica Amatoriale