ho appena acquistato un tastierino 4x4... ho iniziato subito a documentarmi in giro sul suo funzionamento ma tutte le guide per utilizzarlo con arduino vanno ad occupare ben 8 pin digitali...
esiste qualche sistema per ridurli? il tastierino in questione è il seguente:
Potresti trasformarlo in un tastierino I2C usando un integrato convertitore come l'MCP23017; lo deduco dal fatto che vedo in giro display I2C col tastierino integrato, ma non ho mai fatto prove.
max95:
ci avevo pensato pure io... xo i pin per i2c sono già occupati poiché ci comando un lcd 16x2...
ovviamente sto lavorando con Arduino UNO r3
ed il problema dove sarebbe? per quanto ne so I2C è un bus su cui puoi collegare una marea di apparecchiature, perché ognuna di esse ha un proprio indirizzo univoco rispetto alla altre, quindi tutto viaggia su quei due fili, avendo ognuno un ID ben preciso per il riconoscimento.
Non capisco come potrebbe servire quella schedina per il problema di leggere la tastiera 4x4. Questa scheda sono solo diversi connettori a 4 pin messi in paralello. Ok Ti da la possibilitá di collegare piú dispositivi I2C ma visto che il I2C patisce della capacitá parasita dei cavi una scheda del genere puó disturbare il corretto funzionamento del Bus.
no, quello che ti sfugge è il fatto che il problema iniziale è quello di interfacciare una tastiera 4x4 con il bus I2C, e non lo puoi fare certo con quel duplicatore di porte o come vuoi chiamarlo tu; lì devi avere già la tastiera interfacciata I2C quindi serve il port expander di cui stiamo parlando con Uwe (a prescindere dal modello), quindi non si capisce il tuo primo intervento a cosa fosse indirizzato.
Una volta risolta la trasformazione dell'interfaccia del keypad in I2c l'accrocco risolve il problema banale di connettere più device i2c. Io l'ho trovato molto comodo.
La trasformazione della interfaccia può anche essere fatta o come da voi segnalato o usando qualcosa come la schedina sparkfun SparkFun 16 Output I/O Expander Breakout - SX1509 - BOB-13601 - SparkFun Electronics che tra l'altro ha il vantaggio di avere gia funzioni per lo scan del keypad, gestisce anche una linea di interrupt opzionale utile nel caso di intefaccia con dispositivi di input (e costa meno della schedina di breakout PCF8575 http://www.sparkfun.com/products/8130).
Essendo io un povero soft-man devo compensare la mia ignoranza cercando in giro moduli hw gia precotti....
inoltre, so che sembra sciocco, ma avendo anche un lcd collegato a i2c, collego entrambi dispositivi al pin 4-5 e via no? tanto come si diceva in precedenza in questo caso assegno 2 indirizzi diversi per i due dispositivi
Ma tu non hai una 4x4? Devi mettere una pull-up da 4k7 per ogni pin di riga, quindi te ne servono 4, di resistenze.
Inoltre devi prevedere due pull-up sulle due linee I2C, basta una coppia sola per tutte le periferiche, se non ricordo male il valore dovrebbe essere tra 2k2 e 3k3.