Weil seit Gestern so richtig der Wurm drin ist, wundert es mich nicht, dass das nun auch nicht läuft...
Heute Mittag kam endlich das 20 x 4 Display (ebay 160987231865). Der I²C-Adapter (ebay111071225263) war die Tage schon eingedrudelt. In Problemerwartung habe ich die beiden Komponenten nicht direkt verlötet, sondern eine Buchsenleiste auf das Display gelötet. Das war eine gute Entscheidung, denn ich musste erst mal einige Potistellungen testen, bis der Kontrast stimmte. SCL und SDA sind jeweils über 4,7 K auf 5 V gelegt. SCL geht auf A5 und SDA auf A4. So zumindest habe ich es den Beschreibungen im Netz entnommen. Ein I²C Scan ergab 0x27 als Adresse. Der Adapter antwortet also schon mal. Hintergrundbeleuchtung leuchtet und Kontrast stimmt. Aber der Rest...
Nun habe ich zuerst mal eine Beispieldatei aufspielen wollen.
//DFRobot.com
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4); // 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()
{
}
Das Display geht an und in der ersten Zeile etwa beim 5. Zeichen Blinkt das Zeichen vollflächig im knappen Sekundentakt. Ein Reset ergibt das gleiche Blinken nur an anderer Stelle. Es scheint so, als sei da etwas falsch angeschlossen.
Also habe ich ein wenig im Forum gesucht und auch einige englischsprachige Beiträge gefunden. Aber die haben mir nicht weiter geholfen. Hat jemand eine Idee, wo das Problem liegen könnte?
edit:
Gebe ich das hier von Macherzin ein:
/* LCD-Modul 1602 I2C (http://www.dfrobot.com/index.php)
Einfaches Beispiel aka "Hello World"
Pinbelegung (Rueckseite des Moduls links nach rechts):
1602 Pin 1 VCC --> Arduino +5V
1602 Pin 2 GND --> Arduino GND
1602 Pin 3 SCL --> Arduino Pin analog 5
1602 Pin 4 SDA --> Arduino Pin analog 4
2012-10-03 Rev. 0.1
fribbe fuer macherzin.net
*/
#include <Wire.h> // binde Bibliothek Wire ein
#include <LiquidCrystal.h> // binde Bibliothek LiquidCrystal_I2C ein
LiquidCrystal_I2C lcd(0x27,20,4); // setze LCD auf 16 Zeichen und 2 Zeilen
void setup()
{
lcd.init(); // initalisiere LCD
lcd.backlight(); // Hintergrundbeleuchtung an
lcd.print("Hello macherzin"); // oder irgend etwas anderes ...
}
void loop()
{
// diesmal nix zu tun
}
// haben fertig
kommt auch eine Fehlermeldung:
sketch_jul16b.cpp:22:1: error: ‘LiquidCrystal_I2C’ does not name a type
sketch_jul16b.cpp: In function ‘void setup()’:
sketch_jul16b.cpp:26:3: error: ‘lcd’ was not declared in this scope