Arduino Mega + lcm1602 IIC

Hallo zusammen. Habe mir den arduino Mega geholt. Soll dann ein Motor Shield ran und der lcm1602 IIC. Außerdem noch Lüfter und da18b20. Will damit dann meine Aquarien automatisch kühlen. Nun wollte ich erstmal das Display testen und bin schon an meine Grenzen geatoßen ;) Habe das Programm runter geladen, die Library für den lcd runter geladen Und dann diverse Beispiel Programme "Hello World" getestet. Bei denen wo das Programm keinen Fehler ausgespuckt hat, hat das Display aber nichts angezeigt. Lediglich das Display leuchtet. Habe das Display vollendet Maßen angeschlossen Board - lcd Sda 20 - sda Sdl 21 - sdl. Gnd - gnd Und 5v - vcc

Ist das so richtig? Und hat jemand einen Code mit Hello World, der in dieser Kombi passt? Muss ich evtl eine bestimmte Library benutzen? Ich habe diese https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

Board und lcd http://eckstein-shop.de/IIC/I2C/TWI-2004-Serial-Blue-LCD-20X4-Zeichen-Module http://eckstein-shop.de/Arduino-Mega-2560-L293D-Motor-Drive-Shield

Danke schon mal

Es gibt da mehrere Sorten I2C Adapter die anders verdrahtet sind. Entsprechend gehen da nicht alle Libs mit allen. Oder man muss sie anders initialisieren. Das hatten wir gerade erst: http://forum.arduino.cc/index.php?topic=259491.0

Schau mal hier für verschiedene Settings für deine Lib: http://arduino-info.wikispaces.com/LCD-Blue-I2C

Wenn das nicht geht, mal eine andere Lib ausprobieren. Diese geht vielleicht: http://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_%28SKU:_TOY0046%29#Sample_Code

Den code von wikispace hatte ich getestet. Da hat er mir was von falscher Funktion positive gesagt…
Werde nachher mal die verschiedenen libarys testen.

Aber dieser code sollte ja wenn die libary die richtige ist funktionieren der?

//DFRobot.com
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 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()
{
}

Den code von wikispace hatte ich getestet. Da hat er mir was von falscher Funktion positive gesagt....

Wenn der Code nicht kompiliert dann hast du eher was falsch installiert.

Aber dieser code sollte ja wenn die libary die richtige ist funktionieren der?

Du hast allerdings ein 20x4 Display

Also Library neu installieren Also LiquidCrystal_I2C lcd(0x27,20, 4); ?

Ja

Du musst da aber auch wegen den verschiedenen Libs aufpassen. Die heißen zum Teil gleich. Wenn die Header identisch sind ist es besser man hat nur eine davon im Libraries Verzeichnis.

Werde mir die verschiedenen librarys mit 1,2,3 usw nummerieren und auf dem Desk packen. Und nur den Inhalt dann austauschen und mit dem Programm testen.

soooo…
bis jetzt geht es bei keinen der libs…
3 die ich gefunden habe, habe ich getestet…

das ist der code

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

LiquidCrystal_I2C lcd(0x20,16,2); // 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()
{
}

zeigt nichts an…
bei jedem test habe ich den kontrast hin und her gedreht, nicht das ich etwas übersehe :wink:

Wie war dein Code aufgebaut von der bitbucket Seite, die Serenfly auch geschickt hat?
https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home

Versuche dieses mal mit folgenden Adressen
0x3F, 0x20, 0x38

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

LiquidCrystal_I2C lcd(0x38);  // Set the LCD I2C address

void setup()
{
    lcd.begin(20,4);               // initialize the lcd 

  lcd.home ();                   // go home
  lcd.print("Hello, ARDUINO ");  
  lcd.setCursor ( 0, 1 );        // go to the next line
  lcd.print (" WORLD!  ");      
}

void loop()
{

}

Drehe den Poti mal in beide Richtung um zu schauen, ob sich was tut.

Andernfalls probiere den I2C Scanner um herauszufinden, welche Adresse dein LCD hat.
http://playground.arduino.cc/Main/I2cScanner

Hast du jetzt eigentlich ein 16x2 oder 20x4. Im Titel ist es ein 1602 aber verlinkt hast zu einem 2004. Das macht aber glaube ich von der grundlegenden Funktion keinen Unterschied. Sollte auch so gehen, aber die Adressierung der Zeilen passt dann nicht richtig.

Ich glaube die Adresse ist entweder 0x20 oder 0x27. Alle Jumper offen und dann je nachdem ob offen eine 1 oder 0 ist.

Fängt aber auf der Produktseite schon an:

I2C-Adresse: 0x3F

Geräteadresse 0x20

Der I2C Scanner ist da eine gute Idee

so habe einen 20x4 die bezeichnung 1602 steht bei dem auf der rückseite.....

wenn ich den code von sschultewolter nehme, dann sagt er "no matching function for call to 'LiquidCrystal_I2C::LiquidCristal_I2C(int)'

Scanner spuckt 0, 27 aus.... als ich den genommen habe, hat das display einmal geblinkt und ist nun aus...

meine lib aktuell ist https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads dort: LiquidCrystal_V1.2.1.zip und aus dem ordner dann die "LiquidCrystal" nciht die "__MACOSX"

Kurz blinken ist schonmal nicht verkehrt.

Kommt bei dir noch mehr als die 1 Zeile als Fehlermeldung? Ich kann sonst gleich mal kurz den Mega + 20x4 LCD rausholen. Ich glaub ich hab da einen mit I2C noch von rumliegen.

Wo steht auf der Rückeite 1602? Auf der Displayplatine oder dem I2C Adapter? 2. wäre möglich, da beide Displaytypen über die 4 bzw. 8 bit Parrallel Schnittstelle angesprochen werden.

Edit: Mein I2C Adapter ist leider defekt. Habe gesehen, das beim letzten Mal entlöten die Kontaktflächen sich aufgelöst haben. Sind halt sehr günstig hergestellte PCB ohne Durchkontaktierungsnieten.

Jedoch kam beim kompilieren kein Fehler! Kann es sein dass du die BETA IDE nutzt? Wenn ja, ist diese nicht kompatibel mit der Libary wieso auch immer (kann gerade nicht nachschauen.)

Ich habe es mit der aktuellen 1.0 IDE getestet.

auf dem I2C adapter steht YWRobot Arduino LCM11602 IIC V1 könnte auch IG V1 sein :wink:

das steht bei dem code den du gepostet hast

sketch_aug08a:4: error: no matching function for call to ‘LiquidCrystal_I2C::LiquidCrystal_I2C(int)’
C:\Users\kevin\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:58: note: candidates are: LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t, uint8_t, uint8_t)
C:\Users\kevin\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:56: note: LiquidCrystal_I2C::LiquidCrystal_I2C(const LiquidCrystal_I2C&)

Das ist dann Version 1 hier: http://arduino-info.wikispaces.com/LCD-Blue-I2C

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

Die Größe wird bei lcd.begin() angegeben. Kompletter Code ist dort

Mit der new-liquid-crystal Lib die du selbst am Anfang verlinkt hast. Und das ging nicht?

ok schlagt mich nicht... ;) muss man ja einem esel sagen, dass die library in das verzeichnis eigene dokumente und nicht in den installations ordner muss... Jetzt zeigt es was an... allerdings kann das keiner lesen... sieht aus wie kyrillisch...

Wackelkontakt evtl. in der Leitung? Ob ich die Lib im Core-Lib-Order oder im User-Lib-Ordner befindet, spielt eigentlich keine Rolle. Welche Version der Arduino IDE nutzt?

Japanisch und Griechisch. Der Controller hat einen Mix aus Lateinischen, Japanischen und diversen Sonderzeichen

Seite 17: https://www.sparkfun.com/datasheets/LCD/HD44780.pdf

Der linke Teil der Tabelle entspricht bis auf die zweiten letzten Zeichen dem Standard ASCII Code. Die Zeichen aus dem rechten Teil muss man per Hand einfügen, z.B. die Umlaute

naja habe vorher nur die core lib geändert... und da ging es nicht-... jetzt mal die user und er zeigt was an...

vers. arduino 1.05.2-r2

wo soll da ein wakler sein?

serenifly: das heißt was? ;)

geändert? Du meinst erstellt oder? Ersetzen musste da nichts!

na da war ja eine drinnen... Mit dieser hat es nicht funktioniert, also habe ich die dateien aus dem ordner gelöscht und die anderen eingefügt... jetzt habe ich sie gelöscht und im arduino program nochmal eingefügt... und siehe da.... es geht.... oh man riesen dank...

@sschultewolter: dein code wegen dem temp messen ausm forum... wo bekomme ichn die ds18b20 lib und die afmotor lib her?