Sto riscontrando un problema con un display LCD 20x4 collegato a un Arduino MEGA 2560.
Il display si inizializza correttamente all'avvio, infatti le due righe bianche vengono visualizzate e poi scompaiono. Tenendo premuto il tasto reset (e quindi impedendo l'esecuzione del codice) le due righe bianche rimangono visualizzate come previsto.
Dopo l'inizializzazione, non viene visualizzato alcun carattere o simbolo sullo schermo.
Ho provato a utilizzare il codice di esempio della libreria LiquidCrystal, modificato per i pin del mio hardware, ma il risultato è lo stesso.
Il display fa parte di un modulo RepRap Discount Smart Controller per stampante 3D. Sostituendo l'Arduino con quello precedente, il display funziona correttamente, quindi il problema sembra legato al nuovo codice.
Potreste aiutarmi a individuare la causa di questo comportamento? Anche con il vecchio codice ho avuto molti problemi prima di far funzionare il display, successivamente sono riuscito con delle modifiche che purtroppo non riesco a ricordare.
L'arduino che sto utilizzando è nuovo quindi non dovrebbe avere problemi hardware.
Sulla pcb sono presenti anche un encoder ed un buzzer, che funzionano correttamente.
Ho provato la continuità e quindi posso confermare che i pin dichiarati nel programma sono corretti.
Inoltre il fatto che il display viene inizializzato dovrebbe essere una ulteriore conferma, giusto?
Dovrebbe essere QUESTO (almeno questo indica il codice prodotto) ... come è stato detto, è un display per le stampanti 3D Reprap, da collegare al loro controller ... come al solito ... ci sono pochissime info e non da alcuna informazione sui collegamenti, nessuno schema e nessuna info sul chip controller del LCD ...
Cambiando l'arduino e inserendo quello vecchio funziona tutto, quindi non può essere un problema di collegamenti, contrasto o altro. Deve essere per forza un problema di codice.
Anche seguendo la guida originale sulla wiki di reprap non riesco a risolvere il problema. Appunto nemmeno il codice di esempio di LiquidCrystal riesce a mostrare delle informazioni sul display.