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!
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.