LCD 4x40 mit I2C

Hallo

Ich habe mir jetzt ein 4x40 Display bestellt und würde dies gerne über den I2C-Bus anschließen, da ich sonst ein Pin-Problem bekomme. Das Display hat 18 Anschlüsse, wobei einer als NC ausgewiesen ist, also nicht in Verwendung ist. Das I2C Modul hat 16 Pins. Werden nun die beiden enable zusammengeschaltet oder wie soll ich es sonst anschließen? Ich muss ohnehin einen Adapter bauen, da am Display die Pins 2-reihig sind.
Weiters habe ich zwar einige Beiträge im Netz gefunden, dass man die Bibliothek umbauen muss, da kenne ich mich überhaupt nicht aus. Kann mir bitte jemand helfen? Hat hier schon jemand ein 4x40 Display angeschlossen und könnte die Bibliothek zur Verfügung stellen bzw. hat eine Anleitung für mich?

LG
Friedrich

Welches I2C-Modul?

E1 und E2 kannst du nicht miteinander verbinden. Damit wird der Zugriff auf die obere und die untere Hälfte des LCD gesteuert.

Das hier

Ich habe ansonsten keines gefunden, welches explizit für 4x40 geeignet wäre.

Hallo,

ein 4x40 hat 2 Displaycontroller und deshalb 2x Enable. Dein I2C-Adapter dürfte dafür genausowenig vrobereitet sein wie auch alle anderen. Wenn man den Schaltplan genau Deines Moduls hätte, könnte man schauen, ob noch ein IO des PCF8574A frei ist oder ob man einen umverdrahten könnte. Außerdem müßte natürlich die LCD-Lib komplett angepasst werden. Ich habe auf die Schnelle nichts gefunden, wo es jemand gemacht hätte.

Wenn ich das selbst machen wollte, würde ich vermitlich einen Nano oder Pro Mini an des Display hängen mit verfügbaren Libs für den 4- oder 8Bit Mode und den als I2C-Slave oder seriell vom anderen Arduino mit den Displaydaten füttern.

Gruß aus Berlin
Michael

Hi,

evtl. hilft das hier: NerdKits - 4x40 LCD (Project Help and Ideas)

Gruß André

Danke, sehe ich mir an.

amithlon:
... ob noch ein IO des PCF8574A frei ist oder ob man einen umverdrahten könnte.

Wenn man auf das Schalten der Beleuchtung verzichten kann, ist Pin 3 frei für Enable2. Das könnte dann so aussehen (ungetestet, da ich die Hardware nicht habe):

/* http://www.instructables.com/id/How-to-connect-a-serial-LCD-to-an-Arduino-UNO/step2/The-Sketch/    Beschreibung
 * https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home   Beschreibung
 * https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads   Download
*/
#include <LiquidCrystal_I2C.h>  //NewliquidCrystal
#include <Wire.h>

#define I2C_ADDR     0x27                         // 20x4 Display
#define En1_pin  2
#define En2_pin  3    // nur mit spezieller Verdrahtung
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7

LiquidCrystal_I2C  lcd1(I2C_ADDR, En1_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
LiquidCrystal_I2C  lcd2(I2C_ADDR, En2_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);

void setup() {
  lcd1.begin (20, 4); //  <<----- LCD 20x4
  lcd2.begin (20, 4); //  <<----- LCD 20x4
  
  lcd1.setCursor (0, 0);
  lcd1.print("Zeile 1");
  lcd1.setCursor (0, 1);
  lcd1.print("Zeile 2");
  
  lcd2.setCursor (0, 0);
  lcd2.print("Zeile 3");
  lcd2.setCursor (0, 1);
  lcd2.print("Zeile 4");
}


void loop() {}

Danke! Sobald ich das Display habe, probiere ich es aus. Beleuchtung muss nicht geschaltet werden, wird nicht mit Batterie betrieben.