Forum: Mikrocontroller und Digitale Elektronik LCD-Anzeige-Problem


von logic88 (Gast)


Lesenswert?

Hallo liebe Leute!

Beschäftige mich seit ca. 2 Wochen mit Atmel-Controllern. Eine
hochinteressante Sache!

Habe bereits ein Board mit einem ATmega16 selbständig aufgebaut und
diverse "EIn-und Ausgabe-Peripherie" außerdem in meine
funktionierende Schaltung gelötet. Eingabe: "Dip-Schalter (8 stück)"
und "kleine Taster (8 stück)". Als ausgabe habe ich 8 Leuchtdioden
genommen.

funktioniert alles prächtig. Ich programmiere in BASCOM und habe jetzt
alles programmiert, was man mit 8 Leuchtdioden und 8 Tastern
realisieren kann ;) und alles hat auch - wenn manchmal auch über einen
steinigen lerneffizienten Weg - am Ende immer geklappt.

Nun möchte ich die nächste Hirte ausprobieren, und zwar ein Display
ansteuern. Dazu habe ich mir ein 40 x 2 Display besorgt. Habe es auch
richtig angeschlossen. JEDOCH: Datenleitung DB4-DB7 wird von mir
verwendet (4Bit), die restlichen Datenleitungen (DB0-DB3) sind bei mir
jedoch nichtverwendet und OFFEN!.

1. Frage: Ist dies vielleicht der Fehler - dass die nicht verwendeten
Pins des Displays nicht auf Masse liegen - für nachfolgendes Problem?

Ich habe in BASCOM soweit alles richtig programmiert.
"Hello World" wird auch richtig auf dem Display ausgegeben JEDOCH
flackert es und hat einen üblen Kontrast! Das heißt, die Schrift ist
viel zu hell (bis auf einige "Ausnahme-Segmente").
Durch Drehen an dem Kontrast-Potentiometer kann ich fast garnicht auf
die Helligkeit der Schrift eingreifen. Das Poti ist bereits am Anschlag
(in der richtigen Richtung ;) ).
Das Display  hat einen HC 44780-LCD-Controller.

2. Frage: Liegt es vielleicht an der Größe des Displays, da in der
Hilfe mein Displayformat nirgends aufgeführt ist.


Hat jemand noch andere Gründe für mein Problem??

danke!

von ruepel (Gast)


Lesenswert?

DB0 - DB3 habe ich auch meist offen und es geht. Auf Masse legen wäre
aber auch nicht falsch.

Das Flackern incl. schlechtem Kontrast mit einigen Ausnahme-Segmenten
könnte daher kommen, daß Du das Display zu schnell refresht.

Also z.B. wenn Du das "Hello World" in einer Schleife ständig neu
schreibst und das zu schnell geht ... dann kommen sich die interne
Oszillatorfrequenz des Displays und die Refreshfrequenz ins Gehege.

Evtl. stürzt der AVR mit Deinem Programm auch ab, resettet und refresht
dadurch.

An der Größe des Displays liegt es nicht.

Eine andere Möglichkeit: Falsche oder unsaubere Kontrastspannung.
Manche Displays brauchen negative Kontrastspannung. Da Du allerdings
die Schrift bereits lesen kannst, ist das eher unwahrscheinlich.

von logic88 (Gast)


Lesenswert?

Danke erstmal für deinen Beitrag!

Das Hello-World befindet sich in keiner Schleife. Es müsste statisch
auf dem Display angezeigt werden.

Die Kontrastspannung schließe ich auch aus- aus deinem genannten Grund.
Wäre sie unsauber bzw. falsch so könnte ich garnichts erkennen ;)


PS: das display funktioniert jedenfalls 100% mit dem richtigen kontrast
an anderen Geräten.

von Andreas Häusler (Gast)


Angehängte Dateien:

Lesenswert?

Die Kontrastspannung könnte doch ein Teil des Problems sein.
Hab da schon die tollsten Erfahrungen gemacht. Ist zum Teil stark
Temperaturabhängig. Vergleiche die Kontrastspannung mit dem Gerät, auf
welchem sie laufen.

Die Initialliserung ist zum Teil sehr heikel (kritische Timings) und
man muss sich ganau an das Datenblatt halten.

http://www.myke.com/lcd.htm
http://homepage.hispeed.ch/peterfleury/avr-lcd44780.htmlhttp://www.doc.ic.ac.uk/~ih/doc/lcd/

Display vorerst nur per SW initiallisieren und noch keinen Textdaten
senden. Ist der Kontrast korrekt eingestellt müsstest jeder Pixel der
5x7 Matrix dunkeler erscheinen.

Da erkennst Du auch, ob beide Zeilen, oder evt. nur eine Zeile
initiallisiert werden.

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.