Problem wurde inzwischen gelöst, daher wurde dieser Beitrag geschlossen!
Näheres zum Thema erfahrt ihr HIER !
Hallo zusammen!
In laufe meiner "Weiterentwicklung" des RFID-Öffners wollte ich mir aus einem "alten" 27x4 LCD eine neue Serviceeinheit mit 8 Tasten zusammen stellen.
Da der Betrieb des kleinen 16x2 LCD am I2C-Bus problemlos funktionierte und laut "Kent Andersson" auch LCD`s mit zwei E-Leitungen verwendet werden können, habe ich mir gleich eine passende Platine erstellt.
Hier mal das Layout:
und hier die echte Platine:
Die I2C-Platine kann nun als Sandwich-Modul auf der Rückseite des LCD`s aufgesteckt werden.
Sie bietet ein PCF8574(A) für die 2x4 Tastenmatrix am LCD,
einen weiteren PCF8574(A) für das LCD selbst und
einen P82B96 als I2C-Extender, der für eine Leitungslänge bis 100 Meter ausgelegt ist und obendrein alles mit 5V versorgen kann.
Soweit hat auch alles prima funktioniert....
Leider gelingt es mir nicht, das LCD zum ordnungsgemäßen Betrieb zu überreden.
Inzwischen habe ich einige Tests durchgeführt und kann daher mit Sicherheit sagen, dass es nicht am LCD liegt und meine "Bus-Platine" ebenfalls in Ordnung ist.
Es kann also nur noch an der Software liegen....
Hier mal ein (unzensierter) Auszug, vom Einbinden der LIB`s:
CodeBox bascom
Aus "Verzweiflung" habe ich mir sogar schon die LIB vorgenommen und versucht durch kleine Änderungen das INIT des LCD`s so zu manipulieren, dass es vielleicht funktioniert.
Leider Fehlanzeige.
Hat vielleicht jemand eine Idee, oder gar eine Lösung zu dem Problem?
Grüße,
Cassio
Näheres zum Thema erfahrt ihr HIER !
Hallo zusammen!
In laufe meiner "Weiterentwicklung" des RFID-Öffners wollte ich mir aus einem "alten" 27x4 LCD eine neue Serviceeinheit mit 8 Tasten zusammen stellen.
Da der Betrieb des kleinen 16x2 LCD am I2C-Bus problemlos funktionierte und laut "Kent Andersson" auch LCD`s mit zwei E-Leitungen verwendet werden können, habe ich mir gleich eine passende Platine erstellt.
Hier mal das Layout:
und hier die echte Platine:
Die I2C-Platine kann nun als Sandwich-Modul auf der Rückseite des LCD`s aufgesteckt werden.
Sie bietet ein PCF8574(A) für die 2x4 Tastenmatrix am LCD,
einen weiteren PCF8574(A) für das LCD selbst und
einen P82B96 als I2C-Extender, der für eine Leitungslänge bis 100 Meter ausgelegt ist und obendrein alles mit 5V versorgen kann.
Soweit hat auch alles prima funktioniert....
Leider gelingt es mir nicht, das LCD zum ordnungsgemäßen Betrieb zu überreden.
Inzwischen habe ich einige Tests durchgeführt und kann daher mit Sicherheit sagen, dass es nicht am LCD liegt und meine "Bus-Platine" ebenfalls in Ordnung ist.
Es kann also nur noch an der Software liegen....
Hier mal ein (unzensierter) Auszug, vom Einbinden der LIB`s:
CodeBox bascom
' ==============================================================================
' I2C-Config
Config Scl = Portc.5 'I2C SCL
Config Sda = Portc.4 'I2C SDA
Config I2cdelay = 1
I2cinit
' I2C Matrixtastatur (Kent Andersson)------------------------
$lib "key_i2c.lib" 'LIB für I2C-Matrixtastatur
$external _key_code 'Externe Routine
'*****WICHTIG !*************************************************
'* Die Funktion "_key_scan", in der LIB "key_i2c.lib", MUSS ab BASCOM Ver. 2.0.3.0 auf _key_code geändert werden!
'* Ab BASCOM 2.0.3.0 dürfen Funktionen und Variablen NICHT mehr den selben Namen besitzen!
'* Bitte folgendes in der LIB ändern=
'* [_Key_code]
'* _Key_code:
'* Das war es dann auch schon !
'*****WICHTIG !*************************************************
Const Pcf8574_kbd = &H72 'I2C-Adresse des PCF8574A
!rcall _Key_Init 'Initialisierung aufrufen
Dim _key_scan As Byte 'Variable für Tastenausgabe
' I2C LCD (Kent Andersson)-----------------------------------
$lib "Lcd_i2c.lib" 'LIB für I2C-LCD
'$lib "Lcd_i2c_oi.lib"
Const Pcf8574_lcd = &H74 'I2C-Adresse des PCF8574A
' Configuriere das LCD
'Config Lcd = 40 * 4
'Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portc.0 , E2 = Portc.1 , Rs = Portc.2
'Dim ___lcdno As Byte
Dim _lcd_e As Byte
_lcd_e = 128
'___lcdno = 0
'Initlcd
Cursor Off
Cls
_lcd_e = 64
'___lcdno = 1
'Initlcd
Cursor Off
Cls
Aus "Verzweiflung" habe ich mir sogar schon die LIB vorgenommen und versucht durch kleine Änderungen das INIT des LCD`s so zu manipulieren, dass es vielleicht funktioniert.
Leider Fehlanzeige.
Hat vielleicht jemand eine Idee, oder gar eine Lösung zu dem Problem?
Grüße,
Cassio