PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD funktioniert nicht ?



Der Einsteiger
14.10.2012, 15:26
Hallo an Alle
Ich habe mir schon vor längerer Zeit ein LCD-Display (Alphanumerisches LCD-Modul Gleichmann GE-C1602B-TFH-JT/R Zeichenformat 16 x 2 Zeichenhöhe 5.55 mm Schwarz-Weiß) von Conrad gekauft.Als ich es die Tage ausprobieren wollte zeigte es mir aber nur zwei schwarze Balken an.Um das Display zu steuern verwende ich eine RN-Control und als Programm Bascom.

Meine Frage an euch :Warum geht es nicht????? (habe auch schon den Artikel im Rn-Wissen dazu durchgelesen ,konnte aber nichts Falsches erkennen)

joar50
14.10.2012, 15:33
Vermutlich meinst du alle 16 Zeichen in beiden Zeilen werden als schwarzes Kästchen dargestellt?
Wenn ja, überprüfe deine Kontrasteinstellung.

Der Einsteiger
14.10.2012, 16:00
Ja ich meine die 16 Zeichen.
Kontrasteinstellung habe ich überprüft.Liegt nicht daran.
Woran kann es dann liegen ?

joar50
14.10.2012, 16:09
Du kannst durch drehen am Kontrastpoti die Intensität der schwarzen Kästchen verändern, bis sie verschwunden sind?
Anschlußbelegung laut Datenblatt ist i. O?

simi7
14.10.2012, 16:18
Hallo,
hast du die Möglichkeit, ein anderes Standarddisplay an diesen Anschlüssen zu testen?
Und du kannst mit dem Kontrastregler die Rechtecke zum verschwinden bringen?
Kannst du deine Initalisierung mit Bascom mal posten?
Gruß
Bernd

robo_tom_24
14.10.2012, 16:22
Hatte das selbe Problem mit einem anderen Std. LCD, der Fehler liegt wahrscheinlich in der Initialisierung...

Der Einsteiger
14.10.2012, 19:10
Zu simi7 :Nein, habe nicht die Möglichkeit ,ein anderes Display anzuschließen.
Ja , konnte die Balken mit dem Poti zum verschwinden bringen.
Meine Initialisierung geht komischerweise immer wieder weg.Deshalb Teile ich das dem Controller direkt im Programm mit.Geht das auch ??

Zu joar50: Anschlussbelegung laut Datenblatt ist Richtig.





23462





Woran liegt es ,dass es nicht geht ??

joar50
15.10.2012, 09:33
Hier ein kleiner funktionierender Code für Atmega8 (mußt du für deinen 32er anpassen). Ist mit BASCOM 1.11 erstellt.


$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 100
$swstack = 100
$framesize = 100
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
Cls Locate 1 , 1
Lcd "Hallo Welt"
End


Noch eine Frage, hast du R/W vom LCD auf Masse liegen?

Tido
15.10.2012, 11:25
Hi,

ich musste bei einem Display und 4Bit-Ansteuerung die ungenutzten Ports des Display auf direkt auf GND legen, Pulldown hat nicht gereicht.

Der Einsteiger
16.10.2012, 18:42
Hallo Leute , ich habe heute das Display noch mal mit dem Code von joar50 ausprobiert ,ging aber trotzdem nicht.

Zu Tido : ich habe bereits die Pins ,die ich nicht brauche ,mit GND verbunden.

Woran kann es dann liegen????????????

(kann es vielleicht daran liegen ,dass ich damals ,als ich das Display zum ersten Mal ausprobiert habe, nur GND,VCC und Kontrast angeschlossen habe und die anderen Pins mit nichts verbunden habe ??????)

robo_tom_24
16.10.2012, 19:32
Nein, normal ist das egal.
In C gibt es die Fleury Bibliothek, such mal, vielleicht gibts die auch für Bascom. Mit der Bibliothek und ein paar wenigen Einstellungen hab ich mein 4x20 von robotikhardware.de zum Laufen gebracht ;)
Noch was: Hast du den Kontrast wieder zurück gedreht? oder hast du jetzt die Kästchen mit dem Kontrast ausgeblendet? Vielleicht funktionierts ja, nur dass der Kontrast fehlt ;)

BMS
16.10.2012, 19:32
Hallo,

(kann es vielleicht daran liegen ,dass ich damals ,als ich das Display zum ersten Mal ausprobiert habe, nur GND,VCC und Kontrast angeschlossen habe und die anderen Pins mit nichts verbunden habe ??????)
Das dürfte dir das Display eigentlich nicht übel genommen haben.
Ich tippe momentan noch darauf, dass das Display zu schnell angesteuert wird. Beim RN-Control ist sowohl ein 8Mhz als auch ein 16Mhz Quarz möglich; sind 16Mhz eingesteckt, im Programm (oben) aber nur 8Mhz definiert, läuft die Übertragung doppelt so schnell als gedacht.
Ich würde dir empfehlen, die Spannung an jedem Displaypin mal nachzumessen.
Ggf. kannst du auch das Display ausstecken, die Pins im Programm zu Testzwecken mal nur auf GND oder +5V legen und dann die Spannung direkt an den Pins vom Mikrocontroller messen.
Hier noch eine Checkliste für's Display: http://rn-wissen.de/index.php/Textdisplay_Fehlersuche
Grüße,
Bernhard

PS: Die Kästchen im Display bedeuten: Spannungsversorgung & Kontrastspannung sind da, Display wurde aber noch nicht (richtig) initialisiert

Jaecko
17.10.2012, 06:53
Versuch mal, vor dem InitLCD eine Wartepause von ~500ms, ggf. mehr.
Wenn beide Teile (Controller und LCD) gleichzeitig eingeschaltet werden, kanns sein, dass der Controller das InitLCD sendet bevor das Display selber korrekt gestartet ist.

Der Einsteiger
17.10.2012, 17:04
Hallo Leute

An :Robo_Tom_24 :Die Bibliothek habe ich nicht gefunden.Den Poti kann ich verdrehen, wie ich will.Da kommt entweder gar nichts oder ich drehe in die andere Richtung und bekomme erst in der oberen Zeile und dann ,wenn ich noch weiter drehe ,in der zweiten Zeile Kästchen.

BMS: Ich habe einen 16 Mhz auf dem Board und auch einen 16Mhz eingestellt.(Die Platine wurde fertig eingestellt (ich meine damit die Fuse Bits ) geliefert)
Spannung am Displaypin messen??? Mit Multimeter Kabel rot an den Pin und mit schwarz an GND ???
Kann ich denn die Pins ohne was dran gestekt messen ?? gehen davon die Controller nicht kaputt ??
Was heißt denn eigentlich Initialisieren ? Das ist doch nur die Einstellung unter Options und LCD ?? oder ???

Jaecko: Habe eine Pause von 1 sec vor InitLCD gemacht,hat aber trotzdem nicht funktioniert .


An Alle : Was soll ich jetzt machen ??

robo_tom_24
17.10.2012, 17:27
Initialisieren heißt so viel wie dass du dem LCD sagst: "Hallo, ich bin da. Du arbeitest jetzt in dem und dem Modus usw." Sprich, du wählst die Btreibsmodi und andere Einstellungen aus, machst das aber nur ein mal am Programmstart

Hast du schon geprüft ob dein Controller wirklich mit der richtigen Geschwindigkeit arbeitet? Also LED mit Widerstand gegen GND und ein kleines 1s Blinkprogramm schreiben, dann mit einer Uhr daneben vergleichen ;)
Wenn das ganze ca 1s lang leuchtet und 1s lang aus ist passt alles. Ansonsten ist es irgendwo nicht richtig konfiguriert

Der Einsteiger
18.10.2012, 16:52
Hallo robo_tom_24 ,
ich hab mal das ausprobiert ,was du gesagt hast ,hat aber immer 1 sec geblinkt.Also kann es daran nicht liegen. Woran aber dann ??

for_ro
18.10.2012, 19:50
Hallo Einsteiger,
bist du jetzt wieder bei deiner ursprünglichen Pin-Belegung des LCDs? Dort hattest du PinD.0 und PinD.1 angegeben, obwohl im Code auch noch $baud = ... steht. Das verträgt sich nicht miteinander, weil der Compiler dann die UART Funktion der beiden Pins aktiviert.

Der Einsteiger
19.10.2012, 13:21
Hallo for_ro ,
vielen Dank für deinen Tipp. Hab jetzt die Pinbelegung geändert und konnte feststellen, dass es funktioniert.
Endlich kann ich den LCD verwenden.
Da sieht man mal wieder , was ich noch für ein Anfänger bin.