(spero) piccolo problema con LCD

salve ho comprato questo LCD: http://www.ebay.it/itm/190573003243?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649#ht_4309wt_952

è perfetto e funziona con la libreria linkata nell'annuncio stesso...
l'unico problema è che al primo avvio di arduino(da spento) ogni volta mi da o dei caratteri strani oppure mi da il vecchio messaggio oppure non compare niente, come mai? come posso risolvere?

Grazie Mille

controlla via software l'invio di dati e mandagli subito un clear per cancellare il contenuto della memoria anche se forse lo scherzo te lo fa perché spegni e riaccendi istantaneamente, oppure spegni solo lui e lasci acceso il micro, o viceversa, altrimenti non si spiega una parte di quei comportamenti.

ho provato a spegnere e riaccendere dopo qualche secondo... anche dopo un giorno :stuck_out_tongue:
inizia a funzionare se premo il reset su arduino

ho provato anche a fare un clear all'inizio... tra l'altro non è un problema che mi da con codice mio dove potrei avere sbagliato qualcosa ma anche con il codice di esempio della libreria... il classico codice che fa comparire la scritta Hello World sul display

Ma i collegamenti come li hai fatti? Non è che hai usato breadboard e fili di rame rigido volanti ]:D?
Puoi postare una foto?

ehm.... si... :cold_sweat:

plrmntonio:

[quote author=Michele Menniti link=topic=97116.msg728670#msg728670 date=1332003627]
Ma i collegamenti come li hai fatti? Non è che hai usato breadboard e fili di rame rigido volanti ]:D?

ehm.... si... :cold_sweat:
[/quote]
Allora il 90% dei disturbi provengono dai falsi contatti, è impensabile usare un display LCD senza saldare i fili ai suoi contatti; meglio sarebbe saldare una fila di strip e innestarli poi nella bread, ma i collegamenti andrebbero fatti con gli appositi jumper da bread, quelli morbidi con le terminazioni rigide; è già un bel risultato che ti funzioni, quindi non lamentarti, quando realizzerai dei collegamenti decenti non avrai più problemi :wink:

visto che cmq so di per certo che la mia realizzazione finale funziona provvederò al più presto(mancanza di money purtroppo) ad utilizzare una millefori dove saldare tutti i fili morbidi :wink:

grazie mille dell'aiuto...

eventualmente tornerò ]:smiley: :smiley:

plrmntonio:
visto che cmq so di per certo che la mia realizzazione finale funziona provvederò al più presto(mancanza di money purtroppo) ad utilizzare una millefori dove saldare tutti i fili morbidi :wink:

grazie mille dell'aiuto...

eventualmente tornerò ]:smiley: :smiley:

No, sulla millefori puoi usare qualsiasi tipo di filo, visto che lo saldi, solo se sono di rame smaltato devi preoccuparti di raschiare via lo smalto per fare una buona saldatura; i jumper morbidi non si saldano, sono specifici per i collegamenti su bread.

Sto utilizzando il doppino telefonico praticamente... se mi dici che va bene continuo utilizzando questo... pensando ai cavi di rete, che ne pensi se i due fili SCL ed SDA li intreccio potrei ridurre un po i disturbi? Ho detto una fesseria vero?

plrmntonio:
Sto utilizzando il doppino telefonico praticamente... se mi dici che va bene continuo utilizzando questo... pensando ai cavi di rete, che ne pensi se i due fili SCL ed SDA li intreccio potrei ridurre un po i disturbi? Ho detto una fesseria vero?

per saldare il doppino va bene. se parliamo del tipo rigido, credo che comunque sia smaltato ma non ne sono certo, non ne maneggio da un bel po'; i due fili puoi lasciarli paralleli o intrecciati a tuo piacimento.

Anche a me da problemi del genere il mio LCD,
dopo un reset funziona correttamente.
questa sera provo a mettere un delay prima di inizializzare l'LCD e vedo se aiuta nell'accensione di tutto hardware connesso ad arduino.

tiusalessio:
Anche a me da problemi del genere il mio LCD,
dopo un reset funziona correttamente.
questa sera provo a mettere un delay prima di inizializzare l'LCD e vedo se aiuta nell'accensione di tutto hardware connesso ad arduino.

intanto ricordati di non iniziare mai uno sketch con una comunicazione seriale, potrebbe bloccarti la comunicazione stessa al successivo riavvio e poi dovresti fare tutta una procedura per sbloccdare la situazione e poter inviare altri sketch.
hai provato ad iniziare con un clear?
i tuoi collegamenti sono fatti bene o hai le stesse situazioni descritte sopra?

i collegamenti sono stabili ,
lo sketch parte con dei settaggi dell'lcd con cui mi indica varie informazioni come temperatura e stato delle uscite a relè.
quindi credo che non ci sia questa ipotesi dei comandi seriali.

pensavo di riuscire a fare delle prove questa sera ma ormai ci provo domani con calma.

quello dei comandi seriali è un consiglio che non c'entra col tuo problema; a più di qualcuno è successo di far iniziare uno sketch con una comunicazione seriale e non riuscire poi più a programmare il micro di Arduino.
A parte ti consigliavo di inviare all'lcd, come primo comando, un clear, dovrebbe ripulire il display da caratteri strani e darti quel ritardo che forse ti risolve il problema; aprire un LCD con un clear è sempre una buona norma.
Buona partita :wink:

grazie per il consiglio.
faro questa prova di pulire lcd mettendo un delay che non fa mai male credo.

Vediamo se ho capito il problema.

Il display è I2C (non seriale) per cui viene inizializzato lato Arduino, che sul bus I2C funge da master aprendo la comunicazione verso il micro che funge da slave I2C sul retro del display.
Se è così, scollegando l'alimentazione al display e poi rendendogliela, l'Arduino non riesce più a comunicare con esso: perché hai sganciato il display dal bus I2C. Il reset riavvia lo sketch, quindi riavvia anche la parte che riapre la connessione verso il display.

Ipotizzo questo senza vedere lo sketch.

Sul fatto che il display tenga i caratteri in memoria, mi suona strano ma forse è il suo modo di operare?

esatto il mio display è I2C.

penso che sia un problema di tempi di inizializzazione, quando faccio upload e avvio lo sketch la prima volta perchè se dopo resetto arduino scrive correttamente.

devo ancora provare a ritardare l'inizializzazione questa sera devo trovare il tempo di fare la modifica.

plrmntonio:
eventualmente tornerò ]:smiley: :smiley:

eccomi tornato... il problema si è ridotto saldando il tutto ma al primo avvio mi da sempre lo stesso problema...

  1. Avvio Arduino
  2. Inizializzo il display
  3. Sullo schermo non compare niente
  4. Reset Arduino
  5. Tutto funziona alla perfezione(quasi)

Il discorso è che io non voglio dover resettare la board... cosa può essere?

Hai ragione a non volerlo fare, forse dovresti provare ad inserire un ritardo all'inizializzazione del display LCD, oppure inserire un ritardo tra l'inizializzazione e l'invio dei dati, secondo me si blocca proprio perché legge qualcosa mentre si sta ancora impostando.

proverò con un ritardo