-
mehrere LCD am I2c
Ich möchte gerne 6 Stk LCD am I2c-Bus ansteuern.
Komme aber leider nicht dahinter wie das funktioniert.
Mit 1 Stk LCD klapt´s wunderbar. aber bei mehreren ist die Pcf adresse das problem, da ich die constante nicht verändern kann.
Programmauszug in Bascom
'--------------------------Für I2C LCD -----------------------------------------
Const Pcf8574_lcd = 112 'PCF Adresse für LCD (original Pcf8574_lcd =70)
$lib "Lcd_i2c.lib" 'I2C Treiber für das LCD
Dim _lcd_e As Byte
_lcd_e = 128 'Für LCDs mit 1 Controler
Waitms 300
Config Lcd = 16 * 2
Danke schon mal für Eure Hilfe
feitzi
-
Naja... man könnte die Busleitungen zu den LCDs halt nacheinander schalten - nicht sehr elegant, aber geht bestimmt.
-
Hallo stefan_Z
Wie meist Du das ?? Busleitungen hintereinander schalten
Ich möchte auf jedem LCD etwas anderes ausgeben.
Gruß feitzi
-
Wenn Du die Adresse des I2C Bus am LCD selbst nicht ändern kannst, hast Du Pech gehabt.
Mehrere Geräte mit gleichen Adressen an einem Bus geht eben nicht.
Gruß
pctoaster
-
Könnte man nicht z.B. einen Controller vor jedes LCD schalten. Mit dem sollte es ja gehn oder nicht? oO
-
Das ganze soll ein Datenlogger werden. Ich bekomme über den CAN-Bus Werte, die ich über 6 LCD´s ausgeben soll (Damit der Benutzer keine Knöpfe drücken oder drehen muss)
gruß feitzi
-
Du hast nur 3 Möglichkeiten:
a) LCDs verwenden, die in der Adresse änderbar sind.
b) die I2C Schnittstellen softwareseitig nachbilden und damit über 12 Ports 6 verschiedenen I2C Schnittstellen zur Verfügung stellen.
c) mehrere MCs mit 2 I2C verwenden, die jeder ein LCD ansteuern und mittels des 2. I2C mit den Haupt MC kommunizieren.
Gruß
pctoaster
-
Ich steuere die LCD´s über einen PCF8574 an. Die Anzeigen haben also jeder seine eigene Adresse. Es ligt also in der Software. Ich muß die Adresse im Programm ändern. aber wie mach ich das ??
Gruß feitzi
-
Hi, dann nimm doch statt der Konstante eine Variable, die kannst du dann hochzählen und die LCD's am selben BUS nacheinander ansprechen.
-
Auf die Ide statt einer Constante eine Variable zu nehmen binn ich auch schon gekommen. jedoch funktionierts nicht mit einer Variable
Grüß feitzi