Forum: Mikrocontroller und Digitale Elektronik Probleme mit LCD-Display


von Kai W. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte mir gerne eine Uhr bauen, mit einem ATmega328P und dem 4 
zeiligen LCD-Display DEM 20488 SYH-PY. Die Uhr möchte ich später noch 
als kleine Wetterstation erweitern. Aber erstmal geht es mir um die Uhr, 
bzw. um das Anzeigen meines Namen "kai" auf dem Display. Ich habe eine 
Tutorial im Internet gefunden, was mir recht einfach erschien. Ich habe 
das alles so aufgebaut und programmiert wie in dem Tutorial und war mir 
sicher, dass ich es verstanden habe. Als ich das Programm übersetzt und 
ausgeführt habe, tat sich nichts am Display. Das einzige was sich tut 
ist, wenn ich den Kontrast mit dem 10K Poti hochdrehe, sehe ich vier 
dunkle Zeilen.

Dabei habe ich festgestellt, dass die erste und dritte Zeile nur sehr 
schwach zu sehen sind und die 2te und 4te sehr stark, d.h. sehr dunkel 
sind. Die erste Frage: Ist das Display defekt?

Zu meinem Schaltungsaufbau:

Display Pin1 (VSS) --> an Masse der Spannungsquelle
Display Pin2 (VDD) --> +5V (versehentlich am Anfang an das Netzteil +6 
Volt angeschlossen, aber jetzt sind es +5 Volt)
Display Pin3 (V0) --> 10 KOhm Potentiometer. Die beiden äußeren Kontakte 
an +5V und Masse und den mittleren, variablen Anschluss an den Pin3 des 
Displays
Display Pin4 (RS) --> PD2 des uC
Display Pin5 (R/W) --> PD7 des uC
Display Pin6 (E) --> PD5 des uC
Display Pin 7 - 14 (DB0 - DB7) --> an die Pins PB0 bis PB7 des uC
Display Pin15 (LED -) --> nicht angeschlossen
Display Pin16 (LED +) --> nicht angeschlossen

Dass der ATMega defekt ist kann ich ausschließen. Dass es hier ein 
Tutorial gibt weiß ich. Das was ich im Internet gefunden habe war aber 
mit Video und Erklärungen. Das war für mich einfacher. Ich verstehe 
einfach nicht wo das Problem liegt. Wäre schön, wenn ihr mir 
weiterhelfen könntet.

Ich habe das Datenblatt des Displays und meinen Quellcode an diesen 
Thread angehängt.


Gruß
Kai

von Karl H. (kbuchegg)


Lesenswert?

Kai Wierzoch schrieb:

> Dabei habe ich festgestellt, dass die erste und dritte Zeile nur sehr
> schwach zu sehen sind und die 2te und 4te sehr stark, d.h. sehr dunkel
> sind. Die erste Frage: Ist das Display defekt?

Du hast ein Tutorial für Text-LCD gefunden und dieses Tutorial hat dir 
nicht 'gesagt', dass dieser Typus LCD-Controller nach dem Anlegen der 
Spannung 2 LCD Zeilen mit Blöcken ausfüllt, damit man mal eine Chance 
hat den Kontrast ungefähr richtig einzustellen?
Wird das LCD korrekt initialisiert, dann verschwinden diese Balken 
wieder und das LCD arbeitet ganz normal.


Da kanns aber nicht weit her gewesen sein mit diesem Tutorial.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Kai Wierzoch schrieb:
> Dabei habe ich festgestellt, dass die erste und dritte Zeile nur sehr
> schwach zu sehen sind und die 2te und 4te sehr stark, d.h. sehr dunkel
> sind. Die erste Frage: Ist das Display defekt?
Und täglich grüßt das Murmeltier.

Dein Display ist tadellos in Schuss, aber noch nicht initialisiert. Das 
ist ja auch klar: in deinem Code ist die Initialisierungssequenz nicht 
enthalten.
Lies einfach mal das Datenblatt deines Displays ab Seite 13...

von Karl H. (kbuchegg)


Lesenswert?

1
int main(void)
2
{
3
  DataDir_MrLCDsControl |= 1 << LightSwitchEnable | 1 << ReadWrit | 1 << BiPolarMoodRS;
4
  _delay_ms(15);
5
6
  Send_A_Command(0x01); //Clear Screen 0x01 = 00000001
7
  _delay_ms(2);
8
  Send_A_Command(0x38);
9
  _delay_us(50);
10
  Send_A_Command(0b00001110);
11
  _delay_us(50);

Der Hersteller des HD44780 hat ja auch nur so zum Spass in seinem 
Datenblatt die 8-Bit Initialisierung in allen Einzelheiten ausgeführt. 
In Wirklichkeit kennt dieser Hersteller sich allerdings nicht aus, aber 
Mr. LCD weiß wie das geht.

von Karl H. (kbuchegg)


Lesenswert?

>  Das was ich im Internet gefunden habe war aber mit Video
> und Erklärungen. Das war für mich einfacher.


Wsa hilft dir 'einfacher', wenn es tatsächlich falsch ist.

> Ich verstehe einfach nicht wo das Problem liegt

Ich denke du hast die 'Erklärungen' verstanden? Entweder ist dem dann 
doch nicht so, oder die Erklärungen waren falsch :-)

von Rechtschreibprüfer (Gast)


Lesenswert?

LCD-Display = LC Display Display?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rechtschreibprüfer schrieb:
> LCD-Display = LC Display Display?
Oder gleich "Flüssigkristall-Display Display"
Also ein Verkaufsständer für verblisterte LCDs...   ;-)

von Kai W. (Gast)


Lesenswert?

Also kann ich davon ausgehen, da die Zeilen nicht verschwinden, dass ich 
beim Initialisieren des Displays was falsch gemacht habe?

von Uwe (de0508)


Lesenswert?

Hallo Kai,

es wird noch nicht initialisiert.

Lies doch das Datenblatt, wie oben angegeben.

von Eumel (Gast)


Lesenswert?

Uwe S. schrieb:
> Lies doch das Datenblatt, wie oben angegeben.

Hat er anscheinend noch nie reingeschaut.

von Kai W. (Gast)


Lesenswert?

Ich werde das Datenblatt lesen.

Vielen Dank für alle Antworten. Auch für die Korrekturen.


Gruß
Kai

von Kai W. (Gast)


Lesenswert?

Hallo,

ich wollte nur berichten, dass es jetzt funktioniert.
Den Initialisierungsprozess habe ich, so wie im Datenblatt angegeben, 
implementiert.

Vielen Dank nochmal

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.