LCD 20x4 impazzito

Cari amici

ho acquistato questo lcd

http://www.ebay.it/itm/121258825143?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

e ho provato a seguire queste due guide

http://www.logicaprogrammabile.it/gestire-display-lcd-20x4-matrice/

http://arduino.cc/en/Tutorial/LiquidCrystal (in questa ho sostituito il valore (16,2) con (20,4).

con entrambe le guide otengo un risultato inquietante: il display si accende e funziona, ma sembra "impazzito".. visualizza sequese di caratteri tutti uguali inteerrotti da colonne di caselle "piene"... altre volte invece sclera proprio e visualizza pezzi di carattere in maniera totalmente casuale.

sono sicuro di aver fatto le connessioni nella maniera giusta (ovviamente ho cambiato i punti di connessione usando le due guide diverse)

qualcun altro ha avuto lo stesso problema?

spero non sia nulla di grave, speriamo che non sia danneggiato il display... :(

Nel 90% dei casi, problemi come questi, sono dovuti a "falsi contatti" !

Come hai fisicamente collegato il display ?

Guglielmo

Ciao Guglielmo

il display l'ho collegato saldando ai pin una di quelle strisce di maschi. ho contrallato col multimetro e le connessioni sono fatte bene, inoltre non ci sono "ponti" tra un pin e l'altro.

è possibile che la libreria non vada bene? (secondo me è impossibile)

cosa può essere?

Ok, ci hai saldato le "headers", ma poi come lo colleghi ad Arduino ? Perché i falsi contatti sono in agguato ovunque (breadboard, cavetti, ecc.) !

La lib dovrebbe andare bene ...

Guglielmo

P.S. : Comunque io suggerisco sempre di usare QUESTE schedine di conversione verso I2C ... invece di mangiarti tutti i pin di Arduino, uso solo i due del bus I2C sui cui, inoltre, puoi collegare anche altri dispositivi in parallelo ;)

E nella parte software è molto importante questo:

LiquidCrystal lcd(12, 11, 5, 4, 3, 2...);

ovvero i vari parametri dei pin che usi. Non tutti i pin sono uguali tra vari LCD. Io ne ho uno 16x2 che è diverso come piedinatura rispetto ad altri due che ho (un’altro 16x2 e un 20x4)

Ad esempio per un mio lcd 16x2: LiquidCrystal lcd( 8, 9, 4, 5, 6, 7,11, POSITIVE );

//LiquidCrystal (rs,rw,enable,d0,d1,d2,d3,backlightPin,POSITIVE);

Se il pin rw lo metti a GND puoi non dichiararlo
//LiquidCrystal (rs,en,d4,d5,d6,d7,backlight,POSITIVE)
Come fatto qui: http://arduino.cc/en/uploads/Tutorial/LCD_bb.png

ti allego foto, mi pare che il tuo LCD ha gli stessi pin di quello del tutorial
quindi questo dovrebbe funzionare: LiquidCrystal lcd(12, 11, 5, 4, 3, 2); rs, en, d4,d5,d6,d7

grazie mille a tutti, ho risolto:

in realtà avevo fatto tutto come da guida, con i pin rs, e ecc al posto giusto, MA, non avevo considerato l'ordine dei 4 pin d4 d5 d6 e d7... insomma li avevo messi non a caso ma in ordine inverso...

è bastato invertire quell'ordine ed ora funziona!! :D

ma volevo chiedervi, per la retroilluminazione collego gli ultimi due pin uno a terra l'altro all'uscita 5 V? non ci devo mettere una resistenza di mezzo?

tommaso_spezia: ma volevo chiedervi, per la retroilluminazione collego gli ultimi due pin uno a terra l'altro all'uscita 5 V? non ci devo mettere una resistenza di mezzo?

Dipende dal display. alcuni sono per 5V altri necessitano una resistenza. devi cercare il datasheet del display che hai. Chiedi informazioni al venditore. Ciao Uwe