problema con display lcd 16x2

salve a tutti , sono un novello di questo forum e spero che mi possiate aiutare .
ho 18 anni , frequento l' istituto tecnico di perito elettrotecnica , mi piace programmare e mi piace l'elettronica quindi ho deciso di comprare arduino e con il tempo spero di imparare ad usarlo.

per cominciare ho comprato un started kit in cui era concluso un display lcd 16x2 retroilluminato .
e adesso il problema.....
voglio testare lo schermo quindi ho cercato su internet e ho seguito questo tutorial:

ho effettuato tutti i collegamenti ,piu' volte , ma il risultsto è sempre lo stesso..... lo schermo si accende ,si illumina ma non vedo la scritta "hello word" vedo solo dei quadrati (posto la foto per farvi capire : http://www.harrington.force9.co.uk/Projects/LCDModules/article2_004.jpg)

quale potrebbe essere il problema ???

Data la mia ignoranza, mi viene da chiedere in linea generale quanto segue:

  • Di che tipo è lo schermo LCD? Ha una marca specifica?
  • Prevedendo che se incluso in bundle (quale starter kit, quello ufficiale?) sia compatibile con il chip della board, lo sketch usato è correttamente interpretato dal display e sono presenti tutte le librerie di cui fa uso?

Sono sicuro di aver detto delle scemate, l'ho fatto per capire se il mio addentramento basilare nel mondo Arduino sta prendendo la piega corretta oppure no. :slight_smile:

Per prima cosa devi regolare il contrasto del monitor LCD tramite il potenziometro.
Poi controlla i collegamenti e i contatti, soprattutto se non hai saldato i fili o il pettine sul display.
Se hai montato il display col pettine sulla breadboard controlla i contatti e verifica se c'è continuità in tutti i segnali.

Fatto questo passa al lato software e verifica se la libreria è quella corretta per il tuo modello di LCD e se le dichiarazioni dei pin nella libreria o nello sketch corrispondono ai collegamenti.

Simone82:
Data la mia ignoranza, mi viene da chiedere in linea generale quanto segue:

  • Di che tipo è lo schermo LCD? Ha una marca specifica?
  • Prevedendo che se incluso in bundle (quale starter kit, quello ufficiale?) sia compatibile con il chip della board, lo sketch usato è correttamente interpretato dal display e sono presenti tutte le librerie di cui fa uso?

Sono sicuro di aver detto delle scemate, l'ho fatto per capire se il mio addentramento basilare nel mondo Arduino sta prendendo la piega corretta oppure no. :slight_smile:

1- non so la marca del lcd .
l'unica cosa che posso dirvi è che dietro c'è scritto 1602A QAPASS.
2- il kit l'ho comprato su internet in un famoso sito di shop online, non so se è quello ufficiale pero' suppongo sia compatibile con il chip.
come faccio a sapere sse ci sono tutte le librerie utilizzate dal display ?

PaoloP:
Per prima cosa devi regolare il contrasto del monitor LCD tramite il potenziometro.
Poi controlla i collegamenti e i contatti, soprattutto se non hai saldato i fili o il pettine sul display.
Se hai montato il display col pettine sulla breadboard controlla i contatti e verifica se c'è continuità in tutti i segnali.

Fatto questo passa al lato software e verifica se la libreria è quella corretta per il tuo modello di LCD e se le dichiarazioni dei pin nella libreria o nello sketch corrispondono ai collegamenti.

il contrasto è correttamente settato con il potenziometro perchè vedo bene i "quadrati neri" .
"pettine di contatti " collegato bene (ho provato a testare la continuità)
ripongo la domanda....
come faccio a verificare che la libreria è corretta per questo monitor ?

Il 1602 è supportato dalla libreria ufficiale, quindi basta quella integrata nell'IDE.
Devi invece vedere se i pin dichiarati corrispondono.
Una inizializzazione è

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

a cui corrispondono i pin
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)
Ma RW di solito si omette.

Per altre info --> LiquidCrystal - Arduino Reference
--> http://arduino.cc/en/Reference/LiquidCrystalConstructor

posta gentilmente lo sketch che hai usato, la libreria è sicuramente corretta dato che il tuo ldc è compatibile (ho cercato su google).
nello sketch tu scrivi:

#include <LiquidCrystal.h>
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

devi sostituire rs, en, d4 ecc con i pin ai quali sono collegati, cerca il datasheet del tuo lcd e trova quali sono i pin che ti servono.

Max

questo è lo sketch che ho utilizzato .
i collegamenti li ho effettuati seguendo quanto detto tra i commenti dello sketch.

/* uso del display LCD 16x2 standard Hitachi HD44780 
 
  Circuito: 
 * pin RS collegato al pin digitale 12 
 * pin E (Enable) collegato al pin digitale 11 
 * pin D4 collegato al pin digitale 5 
 * pin D5 collegato al pin digitale 4 
 * pin D6 collegato al pin digitale 3 
 * pin D7 collegato al pin digitale 2 
 * pin R/W collegato al GND 
 * pin 1 e pin 4 collegati a GND 
 * pin 2 collegato a +Vcc 
 * centrale del potenziometro/trimmer da 10 KOhm collegato al pin 3 del'LCD 
 * pin SX potenziometro/trimmer collegato a +Vcc 
 * pin DX potenziometro/trimmer collegato a GND 
 * i pin SX e DX del potenziometro/trimmer possono essere interscambiati 
*/  
  
// includere la libreria:  
#include <LiquidCrystal.h>  
  
/* 
   Viene creata l'istanza dell'oggetto LiquidCrystal chiamata lcd in cui 
   sono indicati i pin dell'LCD collegati alle uscite digitali di Arduino 
*/  
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  
  
void setup() {  
   //impostiamo il numero di colonne ed il numero di righe di lcd  
  lcd.begin(16, 2);  
  // Visualizzo il messaggio sul display  
  lcd.print("Salve mondo!");  
}  
  
void loop() {  
  // posiziona il cursore in colonna 0 e linea 1  
  // (nota: la linea 1 e la seconda linea, poichè si conta incominciando da 0):  
  lcd.setCursor(0, 1);  
  // stampa il numero di secondi dall'ultimo reset  
  lcd.print(millis()/1000);  
}  
- See more at: http://www.maffucci.it/2012/02/17/appunti-su-arduino-pilotare-un-display-lcd/#sthash.JNsV9OMX.dpuf

Io uso il LCD della DFrobot, sempre di tipo 16x2, e come sketch per scrivere un messaggio di benvenuto uso il seguente:

char line0[16] = "testo";
char line1[16] = "testo";
[...]
/**********************************************************/
 
LiquidCrystal lcd( RS,EN,D4,D5,D6,D7 );

Anche senza sostituire i numeri dei pin funziona perfettamente... Lo dico perché il codice non è mio ma è copiato dal blog di Mauro Alfieri :slight_smile:

Vedere bene i quadratoni neri non significa aver impostato bene il contrasto, considera che il contrasto è proprio il livello della scritta rispetto al momento in cui è tutto spento e il momento in cui è tutto nero (cioè quei quadratini). Avere i quadratini neri potrebbe significare semplicemente che sei al fondoscala massimo e i quadrati sono completamente illuminati, quindi il contrasto è 100%, se metti il 100% sul tuo computer il monitor diventa nero o bianco completamente :wink:

Non dico per forza sia questo il problema, ma prova a smuovere la rotellina del potenziometro!

Simone82:
Io uso il LCD della DFrobot, sempre di tipo 16x2, e come sketch per scrivere un messaggio di benvenuto uso il seguente:

char line0[16] = "testo";

char line1[16] = "testo";
[...]
/**********************************************************/

LiquidCrystal lcd( RS,EN,D4,D5,D6,D7 );



Anche senza sostituire i numeri dei pin funziona perfettamente... Lo dico perché il codice non è mio ma è copiato dal blog di Mauro Alfieri :)

Sì, ma se posti uno spezzone di codice metti la gente fuori strada, nel tuo caso certamente nelle righe precedenti le sigle RS, EN, ecc sono state dichiarate ed assegnate ai rispettivi pin digitali; finora non mi è mai capitato di vedere una lib che identifichi automaticamente i collegamenti :wink:

mastraa:
Vedere bene i quadratoni neri non significa aver impostato bene il contrasto, considera che il contrasto è proprio il livello della scritta rispetto al momento in cui è tutto spento e il momento in cui è tutto nero (cioè quei quadratini). Avere i quadratini neri potrebbe significare semplicemente che sei al fondoscala massimo e i quadrati sono completamente illuminati, quindi il contrasto è 100%, se metti il 100% sul tuo computer il monitor diventa nero o bianco completamente :wink:

Non dico per forza sia questo il problema, ma prova a smuovere la rotellina del potenziometro!

ho provato a variare il contrasto con il potenziometro ma vedo solo i quadrati che si schiariscono fino a sparire , la scritta non compare proprio.

Simone82:
Io uso il LCD della DFrobot, sempre di tipo 16x2, e come sketch per scrivere un messaggio di benvenuto uso il seguente:

char line0[16] = "testo";

char line1[16] = "testo";
[...]
/**********************************************************/

LiquidCrystal lcd( RS,EN,D4,D5,D6,D7 );



Anche senza sostituire i numeri dei pin funziona perfettamente... Lo dico perché il codice non è mio ma è copiato dal blog di Mauro Alfieri :)

non potresti postare lo sketch completo ?

ilprincipiante:
non potresti postare lo sketch completo ?

Io l'ho preso da questo articolo che ho ritrovato, ne esiste anche una versione aggiornata con nuove funzioni, ma soltanto relative al progetto di dolly photo: puoi studiarti tranquillamente la parte relativa al pilotaggio del display.

In questi casi, il 99% delle volte, dipende da uno dei seguenti fattori:

  • falsi contatti
  • collegamenti errati
  • potenziometro del contrasto difettoso o collegato male
  • alimentazione elettrica (spesso si alimenta il display dal pin +5 V magari con alimentazione via USB e questo porta a malfunzionamenti)

paulus1969:
In questi casi, il 99% delle volte, dipende da uno dei seguenti fattori:

  • falsi contatti
  • collegamenti errati
  • potenziometro del contrasto difettoso o collegato male
  • alimentazione elettrica (spesso si alimenta il display dal pin +5 V magari con alimentazione via USB e questo porta a malfunzionamenti)

1- ho ricontrollato le saldature del display e sono venute tutte bene
2- ho seguito i collegamenti scritti ad inizio progrmamma tra i commenti, piu' volte ,quindi escludo questo problema
3- il potenziometro penso funzioni bene perchè il contrasto viene variato correttamente
4- ho provato ad alimentare arduino sia tramite usb ,sia tramite il trasformatore ma non cambia nulla.
l'alimentazione del display l'ho collegata alle uscite "power" 5+ e GND della scheda arduino .

potrebbe essere un difetto del display??

ilprincipiante:
i collegamenti li ho effettuati seguendo quanto detto tra i commenti dello sketch.

/* uso del display LCD 16x2 standard Hitachi HD44780 

Circuito:

  • pin RS collegato al pin digitale 12
  • pin E (Enable) collegato al pin digitale 11
  • pin D4 collegato al pin digitale 5
  • pin D5 collegato al pin digitale 4
  • pin D6 collegato al pin digitale 3
  • pin D7 collegato al pin digitale 2
  • pin R/W collegato al GND
  • pin 1 e pin 4 collegati a GND
  • pin 2 collegato a +Vcc
  • centrale del potenziometro/trimmer da 10 KOhm collegato al pin 3 del'LCD
  • pin SX potenziometro/trimmer collegato a +Vcc
  • pin DX potenziometro/trimmer collegato a GND
  • i pin SX e DX del potenziometro/trimmer possono essere interscambiati
    */

I pin del display sono contrassegnati da delle sigle o c'è una tabellina riepilogativa nel retro del LCD?

fai una o più foto complete dove vedere i collegamenti... non per sfiducia ma, etc. etc. (segue circonlocuzione) XD

Salve sono nuovo , approfitto di questo , perchè vorrei comprare un schermo LCD , in buy c'è il suo originale, ma ne esistono altri migliori? o poi si va incontro a problemi come leggo qui?
P.S.
ho letto che mi devo presentare nell'apposita sezione , ora ci vado :slight_smile:
Grazie

La stragrande maggioranza dei display LCD 16x2 si basa sul chip Hitachi HD44780 e quindi è compatibile con le librerie standard di Arduino. Il problema che stai leggendo qui è un'anomalia, purtroppo il nostro amico non ci ha fatto sapere più nulla, magari ha trovato l'inghippo e ha risolto. Quindi compra tranquillo dove meglio credi :wink:

ok , percui non c'è un migliore , sono tutti con lo stesso cip grazie :slight_smile:

rieccomi qui !
scusate se non ho piu' risposto a questo post ma stavo aspettando che un mio amico mi prestasse il suo lcd.....
quindi dopo una serie di prove fatte con lcd prestatomi sono arrivato alla conclusione che il mio , per motivi sconosciuti ,non funziona!!

provero' a rifare le saldature , nel caso mi procurerò un nuovo schermo .

grazie a tutti