Lcd non mostra caratteri

Salve a tutti, ho da poco iniziato a giocare con arduino :slight_smile: ho provato i primi tutorial come il blink,ecc.. ma adesso mi sono bloccato con lo schermo lcd :frowning:
Volevo iniziare con il classico Hello World e quindi, cercando un tutorial completo su come fare tutti i collegamenti sono arrivato a questo Wiring a Character LCD | Character LCDs | Adafruit Learning System
Ho fatto le connessioni, questo è lo schema fatto con fritzing su come le ho fatte io :

come potete vedere ho collegato lo schermo direttamente con i cavetti (dato che ancora non ho saldato il pin strip all'lcd) e non so se questo sia un problema..
lo schermo si accende a tramite il potenziometro riesco a regolare il contrasto, però quando vado a caricare lo sketch, sullo schermo non appare nessuna scritta, solo dei quadratini pieni sulla prima riga e poi nient'altro..
ho provato a vedere se avevo qualche porta bruciata (anche se l'arduino è nuovo nuovo) e quindi ho fatto il blink su tutti i digital pins da 1 a 12 e funzionano tutti correttamente..
questo è lo sketch che ho caricato (ovviamente ho modificato l'inizializzazione dello schermo dato che nel tutorial, per i dati, vengono utilizzate le "porte" 9-10-11-12)

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

scordati di veder funzionare quel display se non crei un collegamento serio sui segnali: i fili li devi saldare, non c'è nulla da fare, basta uno che faccia solo mezzo contatto e non funziona nulla; altra cosa: per il momento non collegare la retroilluminazione o almeno sincerati che stia assorbendo una quantità bassa di corrente, vedo che non stai usando R di limitazione, puoi farlo SOLO se tale R è già presente sul retro del display, in questo caso esso assorbe circa 70-80mA, altrimenti potrebbe crearti problemi all'alimentazione generale di Arduino.

grazie per la celere risposta :slight_smile:
allora vedo se riesco a trovare qualche elettricista che riesce a saldarmi lo schermo (sono alle prime armi e non vorrei far danni, e anche stesso non ho i mezzi..)
per quanto riguarda la resistenza hai ragione :slight_smile: nella fretta di postare lo schema ho dimenticato di inserire la resistenza nel grafico..
ho messo una resistenza da 5kohm sul + della retroilluminazione, va bene questa o è necessaria una più (o meno) "resistente" ?

5 kohm mi sembrano davvero esagerati: I = V/R = 5/5000 = 1mA; va benissimo una da 100ohm, se vedi troppa luce aumentala a 220ohm

scusa se rispondo ora :frowning:
grazie mille dei consigli :wink: per un neofita come me ogni parola di voi esperti è oro colato :smiley:
oggi pomeriggio spero di trovare qualcuno che salda l'lcd in modo da provare nuovamente :slight_smile:
grazie ancora! ti aggiornerò presto (spero)

io non sono un esperto, sono solo uno che scrive tanto (anche troppo, per qualcuno....) :smiley: ok, aspetto notizie.

Ciao ho visto che in questo post si parla di LCD io ho quello della confezione dello starter kit ho collegato tutto come descritto dal libro che ho in dotazione ma il display continua a farmi vedere solo i quadratini senza mostare caratari sapete aiutarmi?

Grazie

1 Like

Purtroppo non tutti abbiamo il tuo starter kit quindi se vuoi una mano devi per forza postare:
una foto chiara de collegamenti
lo sketch che stai usando per le prove

Hai più che ragione grazie per la prona risposta per iniziare lo sketch è il base che si trova negli esempi di arduino hello world...

questa è l'immagine l'unica cosa che non ho messo è il collegamento al piedino 6 di arduino e la relativa resistenza che a me non serve il modello di display è Winstar WH1602B
Grazie

Il pettine dell'LCD, per essere incastrato nella breadboard, è saldato o solo appoggiato?

Quando chiediamo una foto sarebbe più utile fare una fotografia al tuo display e ai tuoi collegamenti, non un disegno di come dovrebbero essere. :wink:

Sì, ma quella è un'immagine, non una foto, sul fatto che vadano collegati così niente da dire, il problema è COME tu hai fatto tali collegamenti. P.es. i fili come sono collegati fisicamente al display? hai proprio saldato uno strip e poi l'hai infilato nella bread o li hai messi direttamente nei fori dei pin? Altra cosa: hai controllato l'effettiva corrispondenza tra le dichiarazioni dei pin nello sketch ed i collegamenti effettivi? Guarda che di sketch e tipi di collegamenti ce ne stanno a bizzeffe sulla rete e non sono affatto tutti uguali, se per caso hai usato due fonti diverse per i collegamenti e per il firmware è possibilissimo che qualche pin non corrisponda.
Se ti si chiede una foto e lo sketch non è per fari perdere tempo, è per aiutarti, le informazioni che hai fornito non cambiano di una virgola i miei dubbi, ecco che si perde solo tempo così. Comunque fatti questi controlli.

1 Like

Qui trovi il datasheet del display con l'indicazione dei pin --> http://www.winstar.com.tw/download.php?ProID=22
Verifica che i pin dichiarati per l'inizialliizazione della LiquidCrystal corrispondano

LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)

Per cominciare chiedo scusa...inviando quell'immagine era per farvi capire come avevo collegato il display, premetto che nel libro che ho dello startert kit c'è all'interno quello schema che ho postato precedentemente per eseguire un tutorial...cmq lo sketch è il seguente:

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

questa è la foto dell'arduino collegato ho controllato i pin sotto il display viene indicato 1 e 16 rispettivametne tutto a destra collegato a GND come in foto.

Uploaded with ImageShack.us

Grazie ancora e scusate le perdite di tempo

Aspetta, ma vedo montata una ethernet shield :disappointed_relieved:, probabilmente va in conflitto qualche segnale. Prova a togliere lo shied e collega i fili dell'LCD direttamente nell'Arduino

1 Like

Ho pravato ma da lo stesso identico risultato tutti i quadratini :~ :~ :~

L' ethernetshield usa i pin 4 e 10 a 13 per l' interfacia. Per questo non puoi usare questi pin per il display.
Usane altre Pin in al posto dei 4, 11, 12:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Ciao Uwe

Grazie della info...allora escludo i piedini 4, 10,11,12,13 e uso quello che restano la cosa strana e' che configurato così nemmeno direttamente dall'arduino funziona senza shield... E possibile che la resistenza sul piedino 15 sia troppo grande??? Oppure il display si è rotto? :frowning:
Grazie

Pin 15 é per la retroilluminazione. Il display dovrebbe funzionare anche senza (Dipende dal colore del DIsplay se si vede o no)
Quando alimenti il display (anche senza Arduino con i pin 1, 2 e 3) vedi dei blocchi su una righa come sul immagine?


Hai regolato il potenziometro (contrasto) in modo da vederli?
Ciao Uwe

Io vede sempre questo muovendo il potenziometro si vedono i quadratini della riga sotto...un modo per verificare se il display non funziona secondo voi esiste?

Grazie

Cambiando il display finalmente funziona!
:slight_smile: