Code für I2C-LC-Display funktioniert nicht

Hallo,

ich habe mir folgendes Display zugelegt:

http://www.ebay.de/itm/LCD-Display-2004-BLAU-I2C-GELOTET-20x4-Zeichen-HD44780-Arduino-Raspberry-Pi-D16-/172223033094?hash=item28194aef06:g:J74AAOSwY0lXStQt

angeschlossen habe ich es so (Mega 2560):

GND - GND
VCC - +5V
SDA - SDA (Pin 20)
SDL - SDL (Pin 21)

Der Code:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 20, 4);

void setup()
{

  lcd.begin();
  
  lcd.backlight();
  lcd.print("Hello");
  lcd.setCursor(0,1);
  lcd.print("world!");
  delay(10000);
  lcd.noBacklight();
}

void loop()
{

}

Als Fehlermeldung erhalte ich “no matching function for call to ‘LiquidCrystal_I2C::begin()’”

Ich habe auch schon andere Codes ausprobiert - ohne Erfolg.

Schon mal so probiert?

lcd.begin(20, 4);

Techniker89:
Als Fehlermeldung erhalte ich “no matching function for call to ‘LiquidCrystal_I2C::begin()’”

Zunächst wäre gut, wenn Du mitteilst, welche Bibliothek genau (woher? URL?) Du verwendest.

Ansonsten kannst Du in Deiner Version dieser Bibliothek gucken, ob es im Header (der .h-Datei der Bibliothek) eine Funktion mit dem Namen begin gibt. Wenn es die dort gibt, benötigt sie vielleicht andere Parameter.

Gruß

Gregor

Hast du eine passende Bibliothek ("Library") für das Display "installiert"?

Und ebenso wichtig ist, du solltest zum Testen ein Beispiel aus deiner verwendeten Library nehmen.

Dann passt es auch zusammen.

Habe es jetzt mit folgendem Code probiert (aus den examples der Bibliothek):

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd 
 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.print("Hello, world!");
}

void loop()
{
}

Adresse habe ich mit dem Scanner ermittelt, Zeichenzahl angepasst.
Heraus kommt das:

Dann dreh mal am Poti für den Kontrast.

Techniker89:
Heraus kommt das:

So sah mein Display aus, wenn der Kontrast nicht korrekt eingestellt war. Gibt es in der Bibliothek vielleicht einen Befehl dafür? Oder einen Trimmer am Display?

Gruß

Gregor

Bei mir ist auf der I2C-Controller-PCB ein Poti drauf ...

FlyingEagle:
Bei mir ist auf der I2C-Controller-PCB ein Poti drauf ...

Das ist bestimmt auch so beim TO.

Ne, hat nix mit Kontrast zu tun. Potentiometer is drauf, verändert aber eben nur die Helligkeit der weißen Vierecke. Mich wundert ja vor allem, dass die vier Zeilen nicht gleich aussehen (also dass nur zwei an sind).

Hast du alle anderen lcd-i2c Libraries gelöscht oder verschoben ?

@HotSystems: Weiß nicht, ob das jetzt die richtige Antwort ist:

@kulturbereicherer: Du verwirrst mich. Der Code, den ich verwendet hab, steht oben.

kulturbereicherer:
Im Setup des Codes gibt es die Zeile

lcd.begin(16,2);

Die 16 steht für 16 Zeichen breit
Die 2 steht für 2 Zeilen

Wo siehst du das in seinem Setup ?

Techniker89:
Ne, hat nix mit Kontrast zu tun. Potentiometer is drauf, verändert aber eben nur die Helligkeit der weißen Vierecke. Mich wundert ja vor allem, dass die vier Zeilen nicht gleich aussehen (also dass nur zwei an sind).

Doch, hat mit Kontrast zu tun. Was Du verstellen kannst, scheint die Helligkeit der Hintergrundbeleuchtung zu sein, nicht der Kontrast des Displays.

Gruß

Gregor

kulturbereicherer:
... So sieht ein LCD Code aus von der Bibliothek die ich nutze.

Und worauf ist das jetzt die Antwort?

Gruß

Gregor

@gregorss: Minimum:

Maximum:

@kulturbereicherer: U.a. deinen Code habe ich vorher schon getestet: 'POSITIVE' was not declared

gregorss:
Und worauf ist das jetzt die Antwort?

Gruß

Gregor

Auf seinen eigenen Sketch, aber nicht auf die Frage des TO.

Techniker89:
@kulturbereicherer: U.a. deinen Code habe ich vorher schon getestet: 'POSITIVE' was not declared

Nur allein der Sketch funktioniert auch nicht, du musst dazu auch die Library installieren.
In deinem Screenshot sieht das soweit ok aus.
Es sei denn, du hast noch an anderer Stelle die Libraries installiert.

Kann es nicht sein, dass irgendwas mit der Übertragung an sich nicht stimmt?
SDA an Pin 20
SCL an Pin 21 Mega 2560

Ich frag mich nur eben die ganze Zeit, warum nur Zeile 1 und 3 leuchten.

@HotSystems: Was wäre das für eine andere Stelle?