Moin,
Ich versuche hier gerade ein I2C-Display (https://de.rs-online.com/web/p/lcd-displays-monochrom/2492680?gb=s) anzusteuern ohne großen Erfolg. Ich habe Pins 1-3 mit den passenden Spannungspegeln verbunden so dass der Kontrast auch korrekt eingestellt ist. Pin 13 und 14 sollten auch korrekt verbunden sein da mir der I2C-Scanner die Adresse (3F) ausgibt. 15, 16 kann man verbinden muss man aber nicht da das im Endeffekt einfach nur ne Lampe hinter dem Display ist, die aber nicht zur Funktion beiträgt.
Als Code habe ich derzeit einfach nur die Hello World Testcodes der HD44780 librabry genutzt mit angepasster Adresse. Alternativ habe ich auch die Hello World Testdatei der LiquidCrystal I2C library ausprobiert, unabhängig von der anderen.
Keiner der Tests sowei eigene kleine Testprogramme haben zu irgendeiner Veränderung auf dem Display geführt, welches derzeit einfach nur eine dunkle Zeile anzeigt.
Ich würde mich über Tipps und Erfahrungen freuen, da ich am Ende meiner Weisheit bin.
Bist du denn sicher, das diese Display auch mit dem Controller HD44780 bestückt ist.
Im Datenblatt konnte ich nichts darüber finden.
Sollte der Controller nicht verbaut sein, wird es schwieriger.
Das Display hat lt. Datenblatt nicht einen HD44780 sondern einen RW1063
Im Datenblatt vom RW1063 steht, man müsse für I2C wie folgt jumpern:
2. IIC Interface Select (IF0=VDD、IF1=open)
F1: hast du das gemacht? Zeig ein Bild der Display Rückseite!
F2: mit welchem Microcontroller setzt du das Display ein?
F3: hast du externe Pullups am I2C Bus gesetzt (wie am Datenblatt gezeigt)?
Das Datenblatt vom RW1063 ähnelt auszugsweise dem AIP31068L
Vielleicht funktioniert meine LCD Library mit dem nativen Wire Interface:
Ich nutze bzw. versuche die Bibliothek zu nutzen, da ich durch ein bisschen Recherche Threads gefunden haben die angeben, dass wohl die HD44780 Controller mit dem selben Code angesteuert werden würden wie der hier verbaute RW1063.
F2: Als Microcontroller ist der Arduino Uno R3 im Einsatz. Die Spannungsversorgung kommt von einem Netzteil, damit mangelnde Stromversorgung direkt ausgeschlossen werden kann. SDA und SCL des Displays hängen an den gleichnamigen Anschlüssen vom Arduino.
F3: Ja, die hab ich von Anfang an angeschlossen gehabt.
Meinst du mit dem I2C Interface Select SA0 und SA1? Die hab ich wie man dem Bild entnehmen kann komplett offen gelassen. Das mit Bibliothek hab ich obendran erklärt.
das kann ich dir nicht beantworten. Ich sehe nur die Information im RW1063 Datasheet und dort stand IF0 und IF1, ob das die SA0 und SA1 sind ... kann sein - auf deine Gefahr, dann wäre IF0 (SA0???) auf high zu setzen.
Also die neue Bibliothek hab ich jetzt mal genutzt + SA0 und 1 mit Vdd sprich 5V verbunden. Mit dem folgenden Code sollte das Display meines Wissens nach doch erstmal das Wort "Test" anzeigen oder hab ich da etwas wichtiges vorher noch vergessen. In der Header-Datei wurde die Addresse bereits auf die zutreffende Adresse geändert.
#include <lib_I2CLCD.h>
void setup()
{
// put your setup code here, to run once:
initLCD();
clearDisplayLCD();
}
void loop()
{
// put your main code here, to run repeatedly:
locateCursorLCD(0, 0);
printDisplayLCD("test");
}
Ich konnte es nicht finden. Über den normalen Weg sprich Examples in der Arduino IDE wird es mir nicht angezeigt und aus dem Git Repository wurde ich auch nicht schlauer. Wo kann ich das Beispiel denn sonst finden?
Edit: Nachdem ich ein weiter verbreitetes Display mit separatem I2C Modul verwendet hab hats direkt beim ersten Versuch geklappt. Nochmals danke an alle, die mitgeholfen haben.