Buonasera a tutti.
Sono nuovo del forum e spero vogliate perdonarmi se scrivo qualche stupidata.
Sono alle prese con l'interfacciamento di Arduino UNO R3 con un display 20 x 4 siglato EW20400YMY.
Arduino e il display sono alimentati tramite il cavo di programmazione USB e non sembrerebbero esserci problemi di cali di tensione. ( ho messo un LED e una resistenza da 220 Ohm tra il + e il - per controllare se la scheda è alimentata).
Naturalmente non ho collegato il LED per la retroilluminazione.
Il contrasto è stato realizzato con un trimmer da 10Kohm collegato tra +5Vcc e massa. Il centrale si collega al pin 3 del display.
Gli sketch caricati sono tutti quelli della libreria LiquidCrystal contenuta nell'IDE 1.0.5
Mi spiego meglio :
Il display rimane esattamente come se non fosse collegato a nulla. Anche regolando il contrasto agli estremi, non fa nulla.
Ho provato a ricollegare il display dal pezzo dove lo avevo smontato, e funziona correttamente.
Buongiorno.
I due pin siglati VLED e VLSS sono utilizzati solamente per accendere un LED posto alla destra del display che ha il compito di illuminarlo.
L'alimentazione al display e all'elettronica, viene presa tramite i PIN VDD (+) e VSS(-) rispettivamente PIN 2 e 1 del mio display.
Il centro del trimmer viene utilizzato per regolare il contrasto ed è collegato al PIN VO del display PIN 3.
Se non sbaglio, ruotando il trimmer, dovrei vedere schiarirsi o scurirsi il display anche senza inviare nessun comando, ma questo non succede.
Col datasheet in mano (pagina 10 del pdf) controlla i collegamenti tra Arduino e l'LCD.
Ricordati che i pin sull'LCD devono essere saldati e se usi un breadboard controlla che non ci siano falsi contatti.
L'inizializzazione dell'LCD tramite la libreria integrata nell'IDE è
LiquidCrystal lcd(rs, enable, d4, d5, d6, d7)
dovrai accertarti della corrispondenza dei pin di Arduino con i nomi dei pin dell'LCD del datasheet.
Ricorda che RW va a GND.
FabrizioRossi:
I due pin siglati VLED e VLSS sono utilizzati solamente per accendere un LED posto alla destra del display che ha il compito di illuminarlo.
... e tu hai provato a farlo seguendo quanto indicato nel datasheet a pag. 7 (indicata in alto a destra nel datasheet) ???
Guglielmo, provo questa sera ad alimentare il led con con alimentatore esterno collegando insieme le due masse .
PaoloP, la corrispondenza dei piedini sembra corretta, però non ho saldato i fili. ho usato una semplice breadboard con dei fili che la collegano ad Arduino. Questa sera provo a comperare i pezzi per saldare i connettori sui fili e fare delle connessioni più stabili.
Nel frattempo ordino per la prossima settimana un display con il controller HD44780 per fare delle prove.
FabrizioRossi:
... però non ho saldato i fili. ho usato una semplice breadboard con dei fili che la collegano ad Arduino. Questa sera provo a comperare i pezzi per saldare i connettori sui fili e fare delle connessioni più stabili.
... se guardi qui sul forum scoprirai che, purtroppo, quel tipo di connessione è la causa del 90% dei problemi ... i cavetti volanti infilati nei buchi del display fanno un pessimo contatto !
Del resto i buchi del display NON sono fatti i fili da breadboard, ma per saldarci i connettori a pettine
I connettori a pettine sono già inseriti sul display.
Io ho usato dei fili volanti per collegare Arduino alla breadbord, nella quale è infilato il connettore a 16 PIN del display.
Questa sera, compero i connettori femmina da collegare sia lato Arduino sia lato display e li collego con i fili richiesti per il funzionamento.
Se fosse un problema dicontatti, così dovrei risolvere il problema. (Speriamo)
FabrizioRossi:
I connettori a pettine sono già inseriti sul display.
Io ho usato dei fili volanti per collegare Arduino alla breadbord, nella quale è infilato il connettore a 16 PIN del display.
Mmm ... già un altro discorso ... il collegamento tra breadboard e Arduino con gli appositi cavetti, normalmente è abbastanza affidabile (... e sottolineo abbastanza dato che, comunque, mi sono già capitati falsi contatti) ... verifica e verifica pure la questione della retroilluminazione
Buonasera.
Per eliminare tutti i possibili problemi di falsi contatti, ho preparato dei cavetti come quelli indicati da PaoloP utilizzando i PIN saldati ai due capi dei fili.
Riesci a fare una foto ... nitida .. del tutto ed a postarla (... non serve che sia gigante, l'importante è che si nitida e si distinguano bene i collegamenti) ? Almeno diamo un'occhiata anche noi al tutto
Nessun Problema. Rifaccio le connessione con cavetti colorati per distinguerli meglio.
Però dovrò aspettare sabato. Domani vado via per 2 giorni per lavoro.
Ho modificato i collegamenti.
Ho messo i connettori su una basetta multifori, ho saldato i connettori per il collegamento con Arduino 1 e con il display.
Purtroppo continua a non funzionare
Nel frattempo, ho ordinato un display 16x2 con il driver HD44780. Dovrò aspettare almeno 10 giorni per riceverlo
Spero di risolvere prima con quelli che ho a mia disposizione.
Buonasera a tutti.
Finalmente mi è arrivato il display 16x2 con il driver HD44780.
Con mia notevole sorpresa, non riesco a farli funzionare. Stesso problema dei miei altri display. Non si vede nulla.
Visto che i collegamenti sono giusti e sono saldati, ho abilitato tutti i messaggi durante la compilazione dello sketch "hello world" allegato alla IDE 1.0.5 e ho visto in rosso i seguenti messaggi :
C:\Users\griso\Documents\arduino-1.0.5-windows\arduino-1.0.5\hardware\arduino\cores\arduino\HardwareSerial.cpp: In function 'void store_char(unsigned char, ring_buffer*)':
C:\Users\griso\Documents\arduino-1.0.5-windows\arduino-1.0.5\hardware\arduino\cores\arduino\HardwareSerial.cpp:98: warning: comparison between signed and unsigned integer expressions
C:\Users\griso\Documents\arduino-1.0.5-windows\arduino-1.0.5\hardware\arduino\cores\arduino\HardwareSerial.cpp: In function 'void __vector_18()':
C:\Users\griso\Documents\arduino-1.0.5-windows\arduino-1.0.5\hardware\arduino\cores\arduino\HardwareSerial.cpp:127: warning: unused variable 'c'
C:\Users\griso\Documents\arduino-1.0.5-windows\arduino-1.0.5\hardware\arduino\cores\arduino\HardwareSerial.cpp: In member function 'void HardwareSerial::begin(long unsigned int, byte)':
C:\Users\griso\Documents\arduino-1.0.5-windows\arduino-1.0.5\hardware\arduino\cores\arduino\HardwareSerial.cpp:368: warning: unused variable 'current_config'
C:\Users\griso\Documents\arduino-1.0.5-windows\arduino-1.0.5\hardware\arduino\cores\arduino\HardwareSerial.cpp: In member function 'virtual size_t HardwareSerial::write(uint8_t)':
C:\Users\griso\Documents\arduino-1.0.5-windows\arduino-1.0.5\hardware\arduino\cores\arduino\HardwareSerial.cpp:467: warning: comparison between signed and unsigned integer expressions
C:\Users\griso\Documents\arduino-1.0.5-windows\arduino-1.0.5\hardware\arduino\cores\arduino\Print.cpp: In member function 'size_t Print::print(const __FlashStringHelper*)':
C:\Users\griso\Documents\arduino-1.0.5-windows\arduino-1.0.5\hardware\arduino\cores\arduino\Print.cpp:44: warning: '__progmem__' attribute ignored
C:\Users\griso\Documents\arduino-1.0.5-windows\arduino-1.0.5\hardware\arduino\cores\arduino\Tone.cpp:119: warning: only initialized variables can be placed into program memory area
Sono warning, cioè errori che non bloccano la compilazione. Dovresti in fondo avere la dimensione finale dello sketch, giusto?
Se il compilatore te la mette, significa che lo sketch comunque è compilato.
Con mia notevole sorpresa, non riesco a farli funzionare.
Buongiorno.
Si, alla fine metteva la dimensione del file.
Il problema è che non funzionavano i programmi di esempio della libreria Liquidcrystal.
Adesso ho riprovato e non mi è apparso nessun errore o warning e sul display appaiono le scritte correttamente.
Prima, con quegli errori, non appariva nulla.
FabrizioRossi:
Adesso ho riprovato e non mi è apparso nessun errore o warning e sul display appaiono le scritte correttamente.
Prima, con quegli errori, non appariva nulla.
Non è che avevi ad esempio scelto la board sbagliata per la compilazione?
Purtroppo no.
La board è sempre la stessa. Uso sempre lo stesso arduino Uno R3.
L'unica possibile differenza stà nel fatto che nel frattempo ho fatto fare una scansione del PC a spybot search & destroy e ha sistemato un po di cose. Dopo di che si è messo a funzionare il display.
Mi sorge il dubbio di qualche problema nel trovare le librerie giuste.
Comunque, col display con il driver HD44780 che ho comperato, ora funziona tutto.
Con il display in oggetto, no.
Forse non usa lo stesso driver. Proverò a confrontare i due datasheet.