bevor ich mein LCD wegschmeiße, wollte ich hier noch einmal nach Hilfe fragen.
Ich habe ein 2x16 LCD von Displaytech (Modell 162F mit dem Controller ST7066U kompatibel zum Hitachi HD44780 Treiber) laut dieser Schaltung angeschlossen
Tat sich erst mal nix nach dem Upload verschiedener Beispielsketche.
Dann habe ich durch Zufall das Kabel was D7 am Display mit Pin2 auf dem Arduino UNO verbindet herausgezogen und hatte zumindest die schwarzen Balken in der ersten Zeile, die auftauchen wenn das LCD initialisiert wird. Sobald ich aber besagtes Kabel wieder auf Pin2 stecke, ist das Display tot.
Um auszuschließen, dass irgendwas mit Pin2 defekt ist, habe ich die Pins auch schon umgesetzt. Also auf Pin7-4 statt 5-2 wie auf der Zeichnung. Leider das gleiche Spiel.
Der Umstand, daß beim Stromversorgung (nur pin 1,2, Kontrast 3 und Hintergrundbeleuchtung) ein schwarzer Balken kommen, heißt daß das Display funktioniert und der Kontrast richtig eingestellt ist. Daß dann der Balken wieder weg ist heißt, daß das Display initialisiert wird.
Hast Du eine Pause von mindesten 5 mS nach Initialisierung ?
So wie du es beschreibst (Uwe sagte es schon) liegt es evtl. nicht am Display.
Hast du im Betrieb auch mal das Poti für den Kontrast verändert? Das kann auch der Fehler sein.
Also bitte zeige uns den Sketch, mit dem es nicht funktioniert.
P.S. Und einfach die Pins tauschen, geht auch nicht, die müssen im Sketch und evtl. auch in der Lib angepasst werden.
uwefed:
Daß dann der Balken wieder weg ist heißt, daß das Display initialisiert wird.
Das Erscheinen der Balken sehe ich aber nur, wenn ich auch die Datenpins (Also D4-D7) angeschlossen habe (bzw. D7 wieder abklemme). Nur das anklemmen von Pin 1-3 ruft bei mir keine Reaktion hervor.
HotSystems:
Also bitte zeige uns den Sketch, mit dem es nicht funktioniert.
P.S. Und einfach die Pins tauschen, geht auch nicht, die müssen im Sketch und evtl. auch in der Lib angepasst werden.
Die Sketche brauche ich nicht extra zeigen, das sind die LiquidCrystal Beispielsketche. Wobei ich eigentlich auch nur beim Sketch "Display" eine Reaktion auf dem Display erhalte. Und die Pins habe ich natürlich im Sketch angepasst indem ich "LiquidCrystal lcd(12, 11, 5, 4, 3, 2);" entsprechend auf "LiquidCrystal lcd(12, 11, 7, 6, 5, 4);" geändert habe.
Am Poti habe ich natürlich auch gedreht. Da kommt mir nur gerader der Gedanke, dass das vielleicht der Falsche ist. Gerade noch mal nach gemessen, der hat 1k. Im Datenblatt finde ich leider keine Angaben, wieviel der haben muss. Weil entweder hab ich ein Bild oder eben keins, wenn ich am Poti drehe. Ohne Zwischenstufen.
patmro:
Die Sketche brauche ich nicht extra zeigen, das sind die LiquidCrystal Beispielsketche. Wobei ich eigentlich auch nur beim Sketch "Display" eine Reaktion auf dem Display erhalte. Und die Pins habe ich natürlich im Sketch angepasst indem ich "LiquidCrystal lcd(12, 11, 5, 4, 3, 2);" entsprechend auf "LiquidCrystal lcd(12, 11, 7, 6, 5, 4);" geändert habe.
Ach, dann sollen wir hier weiter raten, bzw. uns alles zusammen suchen.
Also bitte den Sketch und ein Foto deines Aufbaus, damit wir sehen können, ob da ein Fehler vorhanden ist.
/ LiquidCrystal Library - display() and noDisplay() Demonstrates the use a 16x2 LCD display. The LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface. This sketch prints "Hello World!" to the LCD and uses the display() and noDisplay() functions to turn on and off the display. The circuit: LCD RS pin to digital pin 12 * LCD Enable pin to digital pin 11 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 3 * LCD D7 pin to digital pin 2 * LCD R/W pin to ground * 10K resistor: * ends to +5V and ground * wiper to LCD VO pin (pin 3) Library originally added 18 Apr 2008 by David A. Mellis library modified 5 Jul 2009 by Limor Fried (http://www.ladyada.net) example added 9 Jul 2009 by Tom Igoe modified 22 Nov 2010 by Tom Igoe This example code is in the public domain. http://www.arduino.cc/en/Tutorial/LiquidCrystalDisplay */ // include the library code: #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 7, 6, 5, 4); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("hello, world!"); } void loop() { // Turn off the display: lcd.noDisplay(); delay(500); // Turn on the display: lcd.display(); delay(500); }
]
Übrigens habe ich einen anderen Poti angeschlossen. Kontrastregelung funktioniert jetzt stufenlos, aber an meinem Problem hat das nix geändert.
PS: Das Display blinkt auch, wenn ich 5V und Ground abziehe. Das kann doch nicht richtig sein?
Beschreibe genauer, was da blinkt, wenn du 5V und GND abziehst. Die Hintergrundbeleuchtung sollte dann nicht mehr leuchten, Anzeigen auf dem Display sind dann durchaus noch möglich.
Ich tippe bei dem Problem auf Verbindungsprobleme aufgrund der losen Verbindungen. Die Litzte ist teilweise nicht ordentlich gesteckt.
Edit: Das Display ist sehr schlecht mit der Stiftleiste(?) verlötet. Das solltest du ausbessern. Einfaches stecken führt zu häufigen Problemen.
sschultewolter:
Beschreibe genauer, was da blinkt, wenn du 5V und GND abziehst. Die Hintergrundbeleuchtung sollte dann nicht mehr leuchten, Anzeigen auf dem Display sind dann durchaus noch möglich.
Das Display zeigt blinkende Balken an durch die Befehle lcd.noDisplay(); und lcd.Display(); im Sketch. Eigentlich sollte da Hello World blinken, stattdessen blinken die Balken wie auf dem ersten Bild zu sehen.
Die Anzeige bleibt bestehen, wenn ich GND und 5V abziehe, allerdings NUR wenn Pin D4-D6 angeschlossen sind. Wenn ich einen davon abziehe oder Pin D7 anschließe habe ich keine Anzeige mehr.
Ich kann keine Lötstellen am Display sehen. Das ist sehr fehleranfällig.
Meiner Meinung nach fehlt im Sketch-Setup der Befehl zum Setzen des Cursors "lcd.setcursor"
mit den entsprechenden Parametern.
Mir ist jetzt aufgefallen, dein Display entspricht nicht dem des Fritzing-Bildes.
Hast du die Pin-Nummerierung deines Displays? Evtl Foto
Oder einen Link wo es her ist.
patmro:
Aber ich benutze doch die Pins 7,6,5,4 vom Arduino? Dann muss ich doch auch 7,6,5,4 im Sketch stehen haben?
Ok, habe ich auf deinem letzten Foto nicht sehen können und du hast geschrieben, Aufbau wie Fritzingbild, nur 2 anders!
Die anderen Bilder habe ich nicht mehr angesehen.
Baue es mal so um wie im Fritzing-Bild und passe die Zahlen an.
Hatte ich zuerst auch. Hatte ja anfangs geschrieben, dass meine Vermutung war, dass der Pin2 auf dem Arduino irgendwie kaputt sei und deshalb die Pin Belegung etwas verschoben habe. Habe es mittlerweile wieder zurück gesteckt und auch das Sketch wieder auf Originalzustand gebracht - ohne Erfolg.
Habe auch schon versucht, das ganze mit 8-Bit anzusteuern. Auch kein Erfolg.
Alles beim Alten. Sobald D7 vom Display mit Pin 2 auf dem Arduino verbunden wird, ist das Display tot.
Meine Angaben stimmen immer mit der von mir beschriebenen Ausganssituation überein. Eventuelle Änderungen die ich zwischendurch vornehme, werden von mir immer rückgängig gemacht um die Lösungsvorschläge zu testen. Somit lasse ich niemanden im Dunkeln tappen.
Ich bin wirklich sehr, sehr dankbar für jede Hilfe, aber bei dir liebe/r HotSystems habe ich leider das Gefühl, dass du nicht wirklich liest, was ich schreibe. AUch wenn ich sehr deine Hilfe zu schätzen weiß.