Da ich den Kabalsalat Leid war, ein Display direkt an den Arduino anzuschließen, entschloss ich mich es mal mit einem 'Backpack' zu versuchen. Durch Busleitung benötigt das LCD Display neben Versorgung auch nur noch 2 statt 6 Pins.
Das Problem: Es funktioniert nicht.
Viel verkehrt machen kann man ja eigentlich nicht. Richtig draufstecken und los gehts.
SCL geht an pin A5 (ich nutze einen Arduino Uno)
SDA geht an A4.
Schnell noch die Adresse scannen: 0x27 und fertig.
Aber der LCD blieb Dunkel. Nach langem Rätseln fand ich heraus dass zumindest das Hintergrundlicht anging, wenn ich Chip leicht an das Display gedrückt habe. Vielleicht ein Wackelkontakt?
Kurz wurde alles korrekt angezeigt, wurde aber schnell zu kauderwelsch. Nach dem installieren und deinstallieren vieler verschiedener Libraries funktioniert allerdings immer noch nichts.
Code gibts nicht, ich verwendete stets den Beispiel Code der jeweiligen Libraries (natürlich mit geänderter Adresse falls nötig).
Das hört sich doch nach einem Wackelkontakt bzw. einer schlechten Lötstelle an.
Sieh dir auch mal an ob ein Kurzschluss zwischen dem I2C-Adapter und dem Displaygehäuse besteht.
Die Halter des Gehäuses ragen meist zu weit hervor und können mit der Zusatzplatine einen Kurzschluss bilden.
Danke für den Tipp, hab auch nocheinmal nachgeschaut. Die Pins kommen vom Adapter und berühren nur die Kontakte die sie sollen. Auch sollte der Absstand zwischen den beiden Platinen groß genug sein.
Da die Teile auf Amazon sehr billig waren hab ich gleich doppelt zugeschlagen. Den einen Adapter direkt verlötet und den anderen dann später nur gesteckt. Beim verlöteten geht gar nichts, die Lötstellen sind aber relativ ordentlich und das Multimeter sagt dass sich die Lötstellen nicht berühren.
Bei dem gesteckten Setup ergaben sich oben gennante Probleme. Da ich doppelt gekauft habe, schließe ich eine Fehlfunktion einfach mal aus.
Ich will unbedingt ein Display zum laufen bringen ohne gleich auf 6 - 8 Pins verzichten zu müssen.
Gibt des denn eine andere Attraktive Methode ein LCD Display zu betreiben?
Mache ich nach jedem Test. Wäre ja doof, wenn's funktionieren würde, und ich's nicht mitbekäme.
Gerade probiere ein weiteres mal eins der Beispiele der oben genannten library: https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
Bei dem I²C Beispiel, blinkt das Display nur einmal ganz kurz auf.
Zalto:
Sodele,
hier die Bilder, ich hoffe sie sind ausreichend beschriftet:
Scanner hab ich laufen lassen, ja. Ergebnissadresse: 0x27.
Falls es hilft, ich bin ein Anfänger, also könnte es was total banales sein.
Habe auch noch ein "hello World" Beispiel probiert, allerdings wird weder etwas ausgegeben, noch geht die Hintergrund LED an.
So nebenbei, was muss ich tun um Code lesbar zu posten?
Mein I2C-Adapter sieht aus wie Deiner. Bei mir paßte die Zuordnung der Pins nicht, daher funktioniert das Beispiel HelloWorld_i2c.pde erst, wenn ich sie manuell festlege:
@agmue
Im 1. Post hat der TO geschrieben, die Anzeige hat kurz richtig funktioniert.
Damit kann man normal davon ausgehen dass die Pindefinition stimmt.
Ich tippe nach wie vor auf die schlechten Lötstellen oder einen Kurzschluss.
Als ersten Schritt würde ich das Display ordentlich löten. Dann sieht man weiter. An jeden Pin Mit Lötkolben und Lötzinn ran und einige Sekunden warten bis das Lötzinn gut verronnen ist.
Grüße Uwe
Ich hatte auch probleme mit der in Betriebnahme. Das Problem war, dass es verschiedene "LiquidCrystal_I2C" Library gibt. Die haben den selben Namen,aber leider keine Funktion. Du hast geschrieben, dass das Display schon kurz funktioniert hat, aber du hast dann weil es nicht mehr ging, alles nochmal neu Installiert.
Tommy hat dir hier weiter oben eine Seite verlinkt, von dort habe ich meine "LiquidCrystal_I2C" Library geholt und diese hat funktioniert, nachdem ich vorher einige andere von anderen Seiten geholt habe, selber Name aber keine Funktion. Ich würde also empfehlen, die LiquidCrystal_I2C Library auf deinem Rechner nochmal zu löschen und die von der Seite nehmen die Tommy verlinkt hat. Dann ist zumindest schon mal klar das die Library funktioniert. Sonst sind es zuviele Baustellen gleichzeitig und du findest den Fehler nicht. Wenn es dann noch nicht geht, noch ein wenig nachlöten, dann wird es wohl funktionieren.
Wichtig beim Nachlöten:
Frisches Lötzinn mit Flussmittelseele
Optional Flussmittel separat bei geben, gibt es als Stift oder auch als 'Brocken' (Kolophonium, ist ein Harz, lässt sich in Isopropanol auflösen und per Q-tip (Wattestäbchen) auftragen) - Geigenharz ist das Gleiche.
Richtig, laß nur, daß dort teilweise ein weißer Schleier zurück bleiben soll von den Vergällungsmitteln.
Müsste nachschauen, was mich die 100ml Isopropanol gekostet haben, denke aber, daß ich damit noch ein paar Jahre hin komme, wodurch sich der Preis relativieren wird.
So wie es aussieht, werde ich alles wohl noch einmal neu verlöten.
Ich werde den Adapter dieses mal "neben" die Platine Löten sodass ich ausschließen kann das Kontakte/schwarze-Abstandhalter einen Kurzschluss verursachen.
Habe leider erst in ein paar Tagen Zeit mich drum zu kümmern, aber für alle die es interessiert, werde ich hier weiterschreiben, und mitteilen ob es funktioniert.
Vielen Dank schonmal für die vielen Antworten,
Vielen Dank auch an agmue, der umgestellte Code hat leider bisher nicht geholfen, aber ich werde den Tipp im Hinterkopf behalten sobald alles wieder schön verlötet ist.
Zalto:
So wie es aussieht, werde ich alles wohl noch einmal neu verlöten.
Ich werde den Adapter dieses mal "neben" die Platine Löten sodass ich ausschließen kann das Kontakte/schwarze-Abstandhalter einen Kurzschluss verursachen.
Mit genügend Abstand zueinander, kannst du die beiden Platinen auch wieder wie vorgesehen verlöten.
So nehmen diese weniger Platz in Anspruch.
Einfach nur darauf achten, dass diese sich nicht berühren.
Und natürlich interessiert uns das Ergebnis.
Anstelle der verwendeten libraries, wo man zum Aufbau des Constructors exakt wissen muss, wie die Pinbelegung aussieht und auch die I2C Adresse des backpacks, kann man auch die library von Bill Perry verwenden - z.Zt. noch Version 0.9, aber funktioniert mit meinen I2C displays tadellos.
Hier braucht man keine I2C-Adresse eingeben und die Pinbelegung sucht sich die library alles automatisch zusammen ("Nachteil": die Initialisierung des displays braucht gefühlt eine halbe Sekunde länger).