aiuto display

Ciao ragazzi, eccomi ancora qua a chiedere un aiutino XD.
Ho iniziato a “giocherellare” con ArduinoUno ma ho un problema a far funzionare un display :(.
Premetto che il display fa parte di uno starterkit ritirato da questo sito http://www.futurashop.it/index.html e le caratteristiche sono :
Display LCD 2 righe e 16 caratteri alfanumerici con retroilluminazione. Utilizza il controller HD44780.Ho seguito il tutorial presente sul sito ufficiale di arduino ma a parte la retroilluminazione non si vede nulla.
Successivamente ho seguito le istruzioni presenti su questo link
http://luckylarry.co.uk/arduino-projects/arduino-getting-my-lcd-screen-to-work/
qui sono riuscito a fare qualche piccolo passo avanti, nel senso che si vedono le caselle con contrantrasto massimo, ma anche regolando il contrasto con un potenziomentro da 10Kohm le caselle compaiono e scompaiono ma nessuna lettera è visualizzata.
Secondo voi quale può essere la causa? :frowning:

pretendi troppo, non siamo veggenti. Controlla se il cablaggio é giusto e controlla dove c'é il pin uno. La sequenza non é sempre uguale. Ciao Uwe

andri_man: Premetto che il display fa parte di uno starterkit ritirato da questo sito http://www.futurashop.it/index.html

Ho anch'io questo display ma ancora non ho avuto il tempo di provarlo... Volevo chiederti come lo hai collegato fisicamente ad arduino o alla breadboard. Hai saldato dei fili ai suoi contatti?

segui anche questo schema e dovresti trovare la soluzione

http://arduino.cc/en/Tutorial/LiquidCrystalDisplay

Ciao

la sequenza dei pin del Display descritto in http://luckylarry.co.uk/arduino-projects/arduino-getting-my-lcd-screen-to-work/ é molto particolare e per niente standart.
Cercando su futura elettronica ho trovato questo:http://www.futurashop.it/allegato/1446-ATM1602B.asp?L2=OPTOELETTRONICA&L1=COMPONENTI%20ELETTRONICI&L3=DISPLAY%20LCD&cd=1446-ATM1602B&nVt=&d=8,70 ed che la sequenza é proprio quella.
Per le retroilluminazione Ti serve una resistenza. Non so che valore é giusto.

I 14 pin del interfaccia vengono sia contati da destra a sinistra che viceversa. Devi verificare se ci sono indicati numeri vicio ai contatti oppure nei dati tecnici del Tuo display. I 2 pin per la retroilluminazione possono essere di lato del LCD oppure essere 2 pin aggiuntivi. In questo caso il display ha 16 pin. La retroilluminazione in alcuni casi ha bisogno di una resistenza che limita la tensione ( nel caso che la tensione da applicare é minore di 5V) oppure no.
Ciao Uwe

Ho lo stesso problema ma il display che ho acquistato (il mio primo display, quindi non ho altre esperienze) ha quattro righe per 20 caratteri ed è montato su un Mega2560. inoltre le righe che si vedono con il contrasto al massimo sono solo la prima in alto e la terza.

ho usato un paio di scketch che erano negli esempi e ho solo sostituito (16, 2) con (20, 4) sulla riga che definisce righe e colonne. il circuito stampato indica chiaramente i nomi dei Pin forse dovrei modificare altro per il Mega2560? forse il display è guasto?

Chiedo se chi ha aperto il post ha trovato la soluzione o se ha riscontrato che il display è guasto.

grazie

Ardalex: Ho lo stesso problema ma il display che ho acquistato (il mio primo display, quindi non ho altre esperienze) ha quattro righe per 20 caratteri ed è montato su un Mega2560. inoltre le righe che si vedono con il contrasto al massimo sono solo la prima in alto e la terza.

ho usato un paio di scketch che erano negli esempi e ho solo sostituito (16, 2) con (20, 4) sulla riga che definisce righe e colonne. il circuito stampato indica chiaramente i nomi dei Pin forse dovrei modificare altro per il Mega2560? forse il display è guasto?

Chiedo se chi ha aperto il post ha trovato la soluzione o se ha riscontrato che il display è guasto.

grazie

per il mega non cambia nulla.

Che display è? hai il datasheet? sicuro di aver collegato tutto correttamente? magari qualche foto e il listato del programma di prova potrebbero essere utile per aiutarti...

questo il display:

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

LCD 2004-B display with LED (K/WHITE) backlight LCD-AC-2004B-FHW K/W E6 C PBF Extended TEMPERATURE range (-20+70deg.C) NEW - FOIL. Controller : HD44780.

High Quality LCD Module Producer : AV-DISPLAY

il datasheet:

http://www.artronic.pl/o_produkcie.php?id=586

lo sketch è "Hello World" degli Esempi oppure "Blink" sempre degli Esempi > LCD

grazie

Normalmente quando si vedono solo la 1a e la 3a riga è un errore di collegamento o di setup. Ti sei ricordato di modificare lo sketch in modo da impostare la risoluzione del tuo display? Mi pare che gli sketch di base siano impostati per display 16x2.

Ho solo sostituito:
lcd.begin(16, 2);
con
lcd.begin(20, 4);

devo fare altre modifiche allo sketch?

Così va bene. Allora ricontrolla i collegamenti perché c'è qualcosa che non va nei collegamenti.

OK Leo, ora funziona, ... ho sostituito la breadboard; evidentemente c'era qualche contatto fasullo e anche se ho rifatto il cablaggio un paio di volte ho riutilizzato gli stessi fori e continuava a non andare.

ora che funziona ho notato che quando il testo arriva a fine riga della prima riga passa alla terza poi alla quarta e poi alla seconda; mi aspettavo che andasse dalla prima alla seconda poi la terza ecc.

quando invece impongo la posizione del cursore (riga e colonna) il posizionamento è corretto in qualsiasi riga o colonna richiesta. può essere un difetto della libreria o del display?

ho utilizzato gli sketch di Esempi > Liquidcristal che fanno fare scrolling e per il posizionamento lo sketch "setCursor" (che funziona bene)

Come detto già tempo fa, i display non sono monitor testuali per cui non devi pensare che abbiano l'"a capo" e la "nuova linea". O meglio, ce l'hanno ma per come è organizzata la memoria. Ossia, dalla 1a riga passano alla 3a riga, poi alla 2a ed infine alla 4a.

Allora devi pensarci te a dividere il testo in stringhe che non superino il numero di caratteri massimi per riga e riposizionare il cursore sulla riga successiva quando devi andare a capo.

ok vediamo quindi se ho capito: 1-non posso aspettarmi uno scroll delle righe in verticale a meno che non faccia riposizionare sulla riga superiore il testo della riga attuale. 2-per uno scroll delle righe (io ne ho quattro ma con due dovrebbe essere un meccanismo uguale), dovrei utilizzare cinque variabili, memorizzare su quattro variabili il contenuto di ogni riga e ad ogni nuova riga di testo generata dovrei cancellare la prima, scrivere la seconda sulla prima, la terza sulla seconda, la quarta sulla terza, ed il contenuto preparato prima sulla quinta variabile copiato sulla quarta. il contenuto di ogni variabile sarà visualizzato sulla riga corrispondente.

Ti chiedo cortesemente conferma della correttezza del ragionamento. Se sì, stasera farò uno sketch di prova. Mi sembra che non ci sia tra gli esempi uno scroll verticale.

grazie per la disponibilità

Ti basta un array bidirezionale di 4 stringhe, come il display, che funzioni come buffer video. Così se devi scrivere una stringa sulla seconda riga (ricordati che gli array iniziano da 0, per cui l'indice 1 è la seconda riga) basta modificare la stringa contenuta all'indice 1, e poi mandi in stampa il nuovo buffer.

Quindi se devi scrollare in alto, basta che fai un ciclo per copiare la riga 1 alla posizione 0, la riga 2 alla posizione 1, ecc... E poi scrivi sull'ultima.

Ho acquistato anchio lo stesso display LCD da futuraelettronica, funziona....! Display LCD 1602B sfondo verde, versione 2.1 --- jumper saldatura sullo stampato j3 (15+) e su j4 (15-) Primo pin partendo da destra fino al l'ultimo a sinistra o dal centro del LCD al bordo sinistro; K retroluminosità LCD al GND - A retroluminosità LCD al +5V - resistenza gia compresa nel circuito del LCD 1 Vss al GND 2 Vdd ai +5V 3 Vo (contrasto, cursore del potenziometro da 10k rispettivamente i due terminali esterni a +5V e al GND) 4 RS al pin digitale 12 di Arduino 5 R/W al GND 6 E enable pin digitale 11 di Arduino 7 D0 * 8 D1 * 9 D2 * 10 D3 * 11 D4 pin digitale 5 di Arduino 12 D5 " " 4 " 13 D6 " " 3 " 14 D7 " " 2 " (*) visto che all'nizio mi dava solo il cusore pieno e su una riga e non scriveva nulla, ho posto questi pin del display al GND ed ha iniziato a funzionare corettamente dopo non c'è stato più bisogno di metterli al GND.

Grazie ancora LEO

avrai capito che sono a zero come programmazione e così le vostre indicazioni sono oro.

Ho trovato questo: http://www.cplusplus.com/doc/tutorial/arrays/

ora me lo studio e se avete altri link da consigliarmi (meglio se in italiano) imparerò le basi degli array e della programmazione. un'ultima domanda: cosa si intende per "bidirezionale" riferito agli array?

buona domenica

Ardalex: un'ultima domanda: cosa si intende per "bidirezionale" riferito agli array?

Strafalcione.... volevo scrivere "bidimensionale". Scusa.

nottambulo anche tu? ti rispondo mezz'ora dopo... solo per un saluto.. Vado a nanna ...Buona Notte e grazie di tutto; ti aggiornerò sui risultati.