Go Down

Topic: Lcd non mostra caratteri (Read 2461 times) previous topic - next topic

Oiram92

Salve a tutti, ho da poco iniziato a giocare con arduino :) ho provato i primi tutorial come il blink,ecc.. ma adesso mi sono bloccato con lo schermo lcd :(
Volevo iniziare con il classico Hello World e quindi, cercando un tutorial completo su come fare tutti i collegamenti sono arrivato a questo http://learn.adafruit.com/character-lcds/wiring-a-character-lcd
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)
Code: [Select]
// 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);
}

Michele Menniti

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.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Oiram92

grazie per la celere risposta :)
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 :) 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" ?

Michele Menniti

5 kohm mi sembrano davvero esagerati: I = V/R = 5/5000 = 1mA; va benissimo una da 100ohm, se vedi troppa luce aumentala a 220ohm
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Oiram92

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

Michele Menniti

io non sono un esperto, sono solo uno che scrive tanto (anche troppo, per qualcuno....) :D ok, aspetto notizie.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

locky87

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

Michele Menniti

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
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

locky87

#8
Jul 24, 2013, 12:30 am Last Edit: Jul 24, 2013, 12:33 am by locky87 Reason: 1
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

PaoloP

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.  ;)

Michele Menniti

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.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

PaoloP

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
Quote
LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)

locky87

#12
Jul 24, 2013, 09:13 pm Last Edit: Jul 24, 2013, 09:18 pm by locky87 Reason: 1
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:
Code: [Select]
#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

Michele Menniti

Aspetta, ma vedo montata una ethernet shield :smiley-sad-blue:, probabilmente va in conflitto qualche segnale. Prova a togliere lo shied e collega i fili dell'LCD direttamente nell'Arduino
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

locky87

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

Go Up