Forum: Mikrocontroller und Digitale Elektronik LC Display: nur halbe Anzeige.


von Peter O. (peter_o)


Lesenswert?

Hallo,
ich habe hier mehrere LC Displays mit dem gleichen Verhalten:

Es handelt sich um 2 Displays 1x16 und ein Display 2x16, die ich in 
meiner Bastelkiste gefunden habe (habe ich mal irgendwo ausgebaut).
Die sollen an einem Arduino angeschlossen werden.

Wenn ich die Displays nur mit Spannung versorge, leuchtet nur die erste 
Hälfte vom Display. (Ja, ich weis, dass die nicht leuchten, aber ihr 
wisst, was ich meine).
Bei den 1-zeiligen Dispaly leuchten nur Stelle 0 bis 7, bei dem 
2-zeiligen Display nur die erste Zeile!
Den Kontrast habe ich ordentlich eingestellt.
Wenn ich die am Arduino anschließe (4Bit-Mode), bleibt die hintere 
Hälfte dunkel.
Einen Defekt schließe ich aus, da es 3 unterschiedliche Displays aus 
unterschiedlichen Quellen sind und wenn ich an den Drähten wackel und 
das Ding "aus dem Tritt" bringe, leuchten gelegentlich auch die hinteren 
Segmente auf.
Hat jemand eine Idee??

von Harry L. (mysth)


Lesenswert?

Völlig normales  Verhalten bei nicht- oder falsch initialisierten 
Displays.

von Stefan F. (Gast)


Lesenswert?

Peter O. schrieb:
> Wenn ich die Displays nur mit Spannung versorge, leuchtet nur die erste
> Hälfte vom Display.

Das ist ein Zeichen dafür, dass du das Display noch nicht initialisiert 
hast. Wenn man einfach nur die Versorgungsspannung anlegt, ist die obere 
Zeile grau und die untere Hell (oder umgekehrt, falls das Display 
inverse Darstellung (=helle Schrift auf dunklem Hintergrund)) hat.

> Den Kontrast habe ich ordentlich eingestellt.

Nein, hast du nicht. In diesem Zustand kann man den Kontrast nicht 
sinnvoll einstellen.

von Jens M. (schuchkleisser)


Lesenswert?

Es könnte sein, das du weiter schreiben musst, das Display hat einen 
anderen Aufbau und die 2. Zeile ist an einer Adresse weiter hinten.
Du kannst ja Adresse 0x0-27 und 0x40-67 nutzen, evtl. ist die 2. Zeile 
nicht bei 0x10 sondern bei 0x40.
Oder versuch 1-line und 0x0-4f.

von MaWin (Gast)


Lesenswert?

Peter O. schrieb:
> Hat jemand eine Idee??

Mach's einfach richtig, und initialisiere die Dinger.
Nicht ohne Grund haben Bauteile Datenblätter,
die mna lesen darf, wenn man nicht weiter kommt.
Ein 1x16 bestht aus 2 Zeilen a 8 Zeichen.

von Schlaumaier (Gast)


Lesenswert?

Ist das Display über ein i2c Adapter angeschlossen oder direkt. ??

Das ist die wichtigste Frage überhaupt. Ohne die kann man keine Diagnose 
stellen.  Die meisten Leute die ich kenne (inkl. mir) wollen Pins 
sparen, also kaufen sie für 1-2 Euro ein Adapter. Der Wandelt die ganzen 
Pins die das Display braucht in die 4 Pins eines I2c Anschluß um.

Wenn man den Adapter hat, muss man das Display DECLARIEREN. Also die 2 
Pins und die Adresse auf den BUS. Diesen Job macht meist die Libary.
Dann muss man noch das Display selbst Declarieren.

Public lcd As LiquidCrystal_I2C ' ini der Libary

lcd.Initialize(0x27, 16, 2) ' bedeutet auf Adresse 0x27, ist ein 16 
Zeichen pro Zeile Display was 2 Zeilen hat.
lcd.Backlight = True  ' macht das Licht an ;)

lcd.SetCursor(0,1) ' setz den Corsor in die 1 stelle der 1 Zeile (Zeile, 
Spalte)
lcd.Write("Temperatur:")  ' schreibt den Text.

Das ist B4R Code. Unter Arduino ist das ähnlich. Aber die Syntax ist 
anders. Er stammt aus einer meiner Projekte mit ein  TMP36 sensor.

von Peter O. (peter_o)


Lesenswert?

Harry L. schrieb:
> Völlig normales  Verhalten bei nicht- oder falsch initialisierten
> Displays.

Ok, soewas dachte ich mir schon.
Nur wie initialisiere ich das Display denn richtig. Ich dachte, das 
übernimmt der Arduino, wenn ich dort das Display anschließe und 
-hoffentlich richtig- programmiere. Ich habe mir einfach ein 
Beispielprogramm geladen...

von spess53 (Gast)


Lesenswert?

Hi

Das 'einzeilige' Display ist ein zweizeiliges und muss dementprechend 
initialisiert werden ->

http://www.lcd-module.de/pdf/doma/1_16.pdf

MfG Spess

von Christian S. (roehrenvorheizer)


Lesenswert?

nur da nicht gucken und nicht alles lesen:
http://www.sprut.de/electronic/lcd/


mfg

von Schlaumaier (Gast)


Lesenswert?

Christian S. schrieb:
> nur da nicht gucken und nicht alles lesen:
> http://www.sprut.de/electronic/lcd/

Coole Seite, kannte ich noch nicht. DANKE

von Peter O. (peter_o)


Lesenswert?

MaWin schrieb:
> Peter O. schrieb:
>> Hat jemand eine Idee??
>
> Mach's einfach richtig, und initialisiere die Dinger.
> Nicht ohne Grund haben Bauteile Datenblätter,
> die mna lesen darf, wenn man nicht weiter kommt.
> Ein 1x16 bestht aus 2 Zeilen a 8 Zeichen.

Hallo,
nicht zu fassen! Damit läufts schon. Dankeschön! :-)

von Schlaumaier (Gast)


Lesenswert?

Peter O. schrieb:
>> Ein 1x16 bestht aus 2 Zeilen a 8 Zeichen.
>
> Hallo,
> nicht zu fassen! Damit läufts schon. Dankeschön! :-)

Mit der richtigen Libs und den richtigen Ini-Befehl brauch man sich da 
keine Sorgen zu machen. ;)

von DummMaier (Gast)


Lesenswert?

Schlaumaier schrieb:
> Mit der richtigen Libs und den richtigen Ini-Befehl brauch man sich da
> keine Sorgen zu machen.

Jawoll, auch statt 3 Zeilen richtigem Code lieber eine ganze
"richtige Lib" verwenden. Bloss nicht das Hirn aktivieren,
könnte schädlich sein.

von Christian S. (roehrenvorheizer)


Lesenswert?

DummMaier schrieb:
> Schlaumaier schrieb:
> Jawoll, auch statt 3 Zeilen richtigem Code lieber eine ganze
> "richtige Lib" verwenden.

Für die Liberalen gibts die Lib. Sie ist extra für sie zugeschnitten.

> Bloss nicht das Hirn aktivieren, könnte schädlich sein.


Das Hirn muß man schonen, könne man ja später noch gebrauchen oder 
verleihen...

mfG

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.