Ho fatto un po' di ricerche ma non ho trovato nulla in merito: qualcuno ha mai usato questo LCD LCD05-20x4-Blue - Serial/I2C Display 20x4 - Blue Background , from Devantech for €27.82 insieme a questo tastierino Keypad 3x4 , from Devantech for €4.88? Tastierino e LCD funzionano con solo 2 pin? Ardunio riesce a "vedere" il tastierino attraverso l'LCD?
TDM8:
Ho fatto un po' di ricerche ma non ho trovato nulla in merito: qualcuno ha mai usato questo LCD LCD05-20x4-Blue - Serial/I2C Display 20x4 - Blue Background , from Devantech for €27.82 insieme a questo tastierino Keypad 3x4 , from Devantech for €4.88? Tastierino e LCD funzionano con solo 2 pin? Ardunio riesce a "vedere" il tastierino attraverso l'LCD?
Onestamente fatico a capire la tua domanda, quello schermo ha bisogno di due pin, il testierino non ho guardato ma non credo ne usi più di 16.
12+2 = 14, arduino quanti ingressi/uscite ha ? 20 ...
Quindi assolutamente si .
Ciao, il display si collega ad Arduino mediante I2C e si pilota con la specifica libreria.
Il tastierino è una matrice 4x3, richiede 7 pin di Arduino per lavorare, ed anche esso prevede l'uso di una specifica libreria.
Una volta che nel tuo sketch integri le due librerie e, per il tastierino, dichiari il "valore" dei tasti mediante un array (trovi tutto sul Playground), quando premi un tasto il relativo carattere viene mostrato sul display.
Ovvio che per poter poi fare qualcosa devi integrare del codice.
Mi sembrava di aver spiegato bene la cosa e comunque vedendo le caratteristiche dell'LCD si dovrebbe capire ancora meglio cosa intendevo: riformulo...
Nelle caratteristiche del display è specificato che si può collegare direttamente un tastierino, quindi la board sarebbe collegata allo schermo con solo 2 pin e il tastierino solamente allo schermo: sbaglio?
Da qui le mie domande: qualcuno ha mai provato questa combinazione? In giro si trova qualcosa su come collegare entrambi all'Arduino, ma non si trova niente (nè teoria, tanto meno pratica) sul collegamento board > lcd > tastierino. Oltretutto la libreria specifica per questo lcd non è più disponibile, come verificabile dal link in questa pagina Arduino Playground - LCDi2c.
Mi sa che la cosa non si possa fare...
MI spiace ma non avevo capito bene, allora l'unica cosa che mi viene da pensare è che l'I2C è un protocollo di comunicazione che prevede che ogni periferica abbia un proprio identificativo, quindi tutte le periferiche si possono collegare in parallelo.
Nel tuo caso però tu parli di un tastierino normale a matrice, ovvio che non puoi collegarlo sull'I2C.
Sul fatto che eliminino delle librerie mi pare strano, di solito viene fatto SOLO per lasciare il passo a versioni nuove, i display LCD I2C sono molto usati.
Non sono io che lo dico ma il rivenditore (come anche il produttore): "E' possibile collegare al modulo una tastiera a matrice 4x3 in maniera diretta"
Qui l'immagine del collegamento:
Quindi Prof (posso, vero? è da tempo che non chiamo così qualcuno ), c'è qualche speranza nel "risparmiare" i 7 pin del tastierino, o l'unica strada è 2 pin per LCD + 7 pin tastierino?
PS: lo schermo dovrebbe permettere di essere interfacciato anche via seriale...
Confesso che non avevo guardato il link del display in modo approfondito, vedendo quello del tastierino sono andato fuori strada , sto seguendo troppi Topic stasera, ed intanto scrivo anche l'articolo, decisamente devo riposare
Allora è meglio se spieghi visto che si vede che hai studiato (parola di Prof XD): quelo modulino è un convertitore "parallelo" a I2C o seriale? La doppia possibilità vedo che si seleziona tramite jumper.
Quello che non capisco è il tuo problema: io lì vedo i 4 pin (I2C/SER e alim) che vanno al microcontrollore (Arduino), mentre il tastierino si deve collegare a quel modulino, infatti quelli descritti sono i segnali del tastierino, e NON vanno al microcontrollore. In che modo vorresti risparmiare quei 7 pin del modulino, ti servono per altro o cosa? Scusa ma è certamente la stanchezza
vedo che stai scrivendo a raffica: la tua mano è lesta, prof! XD
Allora vorrei fare un progettino con la Leonardo: 3 motori stepper (ognuno 2 pin, forse 3 con relativo driver) + almeno 2 sensori (2 pin) = fino a qui max 11 pin.
Diciamo che mi rimangono 7-8 pin liberi (devo verificare quanti dei 20 pin disponibili si possono effettivamente usare) per LCD e almeno 4 pulsanti.
Per un LCD parallelo ne servono 7, quindi la scelta ricade sul seriale (o Ic2) con solo 2 pin. Sono al limite: 5-6 pin a disposizione per i pulsanti.
Potrebbero bastare, ma è sicuro che strada facendo avrò bisogno di qualcos'altro, quindi o comandare i pulsanti con 1 solo pin (ho letto che si può fare, ma non vorrei che la cosa superi le mie capacità) o collegare il tastierino 4x3 all'LCD come prospettato (ma non spiegato) dal rivenditore/produttore.
Il "modulino" è il retro dell'LCD stesso. L'unica documentazione trovata in rete, è relativa a qualcuno che ha preso questo LCD con tastierino, ma che non è riuscito a far funzionare.
Non vorrei ritrovarmi nella stessa situazione.
Il dubbio maggiore è come faccio a fare un digitalRead() o analogRead() di un determinato pulsante del tastierino collegato solo allo schermo, se non ho neanche la certezza che Arduino lo veda?
aaaaaah, finalmente mi è tutto chiaro! Ti è chiarissimo che puoi collegare il tastierino al modulo ma, avendo il dubbio che non funzioni, metti in conto di doverlo collegare direttamente alla Leonardo, e quindi potresti non avere abbastanza pin.
Bene, io la penso così:
1 - il tastierino collegato a quel modulino a mio modestissimo parere diventa una periferica I2C, quindi non puoi più usare i comandi che dici ma devi metterti in "ascolto" via I2C o seriale per leggere il codice relativo al tasto premuto; se la libreria non c'è devi scrivertela, chiaro che bisogna fare prove e ci vorrà tempo; se dici che nessuno è riuscito a farlo funzionare non significa che nessuno possa riuscire, però potresti sentire Robot-Italy per sentire cosa dicono.
2 - Non mi viene in mente il nome, ma esiste un integrato (mi pare fosse un banale TTL) in grado di gestire la matrice di un tastierino e convertirla, se non ricordo male, in un codice BCD, quindi 4 pin; prova a cercare in ta senso, potrebbe essere un compromesso ragionevole
EDIT: trovato, è l'MM74C922, un IC in tecnologia CMOS, che può gestire matrici fino a 4x4 e ti restituisce il relativo BCD code. E' un po' datato, ma si trova ancora in commercio, poi se cerchi "key encoder" di sicuro tiri fuori qualcosa di più recente e reperibile
Sto usando il dispositivo e funziona piuttosto bene.
Purtroppo ha alcune limitazioni come ad esempio l'impossibilità di lampeggio delle stringhe e la necessità di settare a 2 bit di stop l'eventuale collegamento seriale.
Ma ha anche il grosso vantaggio di gestire autonomamente un tastierino 4x3.
La lettura dello stato dei pulsanti viene fatta nella modalità seriale inviando il comando Serialx.write(6) ed attendendo i due caratteri di risposta, oppure in I2C leggendo gli indirizzi 1 e 2.
Ettore Massimo Albani
PS. Prof. Menniti, ma sei come il prezzemolo!
cyberhs:
Sto usando il dispositivo e funziona piuttosto bene.Purtroppo ha alcune limitazioni come ad esempio l'impossibilità di lampeggio delle stringhe e la necessità di settare a 2 bit di stop l'eventuale collegamento seriale.
Ma ha anche il grosso vantaggio di gestire autonomamente un tastierino 4x3.
La lettura dello stato dei pulsanti viene fatta nella modalità seriale inviando il comando Serialx.write(6) ed attendendo i due caratteri di risposta, oppure in I2C leggendo gli indirizzi 1 e 2.
Ettore Massimo Albani
PS. Prof. Menniti, ma sei come il prezzemolo!
Ciaaaaao Max, era ora che ti facessi vedere da queste parti XD Benvenutissimo, ma ora non sparire 8); sono contento di vedere che c'avevo azzeccato, ogni tanto mi capita A presto!!!