Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: i2c LCD Adapter

  1. #1
    Platinenputzer
    Registriert seit
    02.11.2016
    Beiträge
    42

    i2c LCD Adapter

    Hallo Zusammen.
    Frage hat von Euch schon jemanden , solch ein I2C Adpter mit Bascom zum Laufen bekommen ???
    http://www.ebay.de/itm/321355017663?...%3AMEBIDX%3AIT

    Bis jetzt habe ich blaues Display
    1 Zeile nur blau
    2 Zeile die Rechtecke mit den Pixeln

    Code:
    
    $regfile = "m16def.dat"                                     'Mega16
    $crystal = 4000000                                          '4 MHz
    $lib "YLcd_i2c.lib"                                         'YwRobot Treiber für LCD
    
    $hwstack = 64
    $swstack = 10
    $framesize = 40
    
    
    '**********************************************************
    '******************* Deklarationen ************************
    
    Const Pcf8574_lcd = 20                                      'Adresse des I2C-LCDs
    Dim _lcd_e As Byte
    _lcd_e = 128
    
    Const Pcf_d4 = 9                                            'Pinzuordnung PCF8574 -> LCD
    Const Pcf_d5 = 10
    Const Pcf_d6 = 11
    Const Pcf_d7 = 12
    Const Pcf_rs = 4
    Const Pcf_rw = 5
    Const Pcf_e2 = 7                                            '3./4. Zeile bzw. Backlight
    Const Pcf_e1 = 6                                            'E
    
    '****************** Initialisierung ***********************
    
    Ddrb = &B11111111                                           'Standardbelegung der DDRs
    Ddrd = &B01110000
    Portd = &B10001111
    
    
    
    
    Config Scl = Portc.0                                        'Konfigurieren von I2C
    Config Sda = Portc.1
    
    Config Lcd = 16 * 2
    Config I2cdelay = 1
    
    'warte bis Kondensator bei Ta0 geladen, auch für LCD-Init:
    Waitms 300
    
    '**********************************************************
    '******************** Hauptprogramm ***********************
     Do
    
    Cls
    Lcd "Hello world!"
    Locate 2 , 1
    Lcd "2. row..."
    
    Waitms 100
    Loop
    End
    Gruß und Danke.
    Thomas

  2. #2
    Transistor wender Avatar von Michael
    Registriert seit
    01.11.2016
    Alter
    47
    Beiträge
    113
    Wenn das LCD das beschriebene Verhalten zeigt, dann ist es erstmal in Ordnung, aber noch nicht initialisiert.
    Prüfe, ob die Verbindungen PCF->LCD auch wirklich stimmen und versuch auch mal _lcd_e = 64
    Die PCF-Adresse scheint auch nicht zu stimmen.
    Wenn die Adresspins alle auf GND liegen, dann hast du due Adresse Hex40 bzw dez64
    Es gibt auch die -A Variante, da ist die Adresse Hex70 bzw 112dez.

    In deinem Programm steht als Adresse 20dez, das habe ich bei dem Chip noch nicht gesehen.

    Gruß, Michael

  3. #3
    Platinenputzer
    Registriert seit
    02.11.2016
    Ort
    09481
    Alter
    60
    Beiträge
    65
    Nimm diese Configuration.Einstellungen je nach PCF-Typhttp://bascom-forum.de/showthread.ph...D-Anzeigemodul
    In deinem Programm haste dich etwas vermacht.
    $lib "YwRobot_Lcd_i2c.lib" Lib fehlt bei dir vollständig.
    Downlaod reiche ich gleich nach.
    http://www.forum.g-heinrichs.de/viewtopic.php?f=12&t=73
    'Pcf8574_lcd = 78
    'Pcf8574A_lcd = 126 Je nach verwendeten PCF-Typ einsetzten.Delay mit Wert 15 beginnen und danach verringern,Bis keine Anzeige mehr sichtbar ist,erspart viel Fehlersuche.Wenn bei Delay =1 alles noch funktioniert ist man bei 1 Mhz.
    Dim Backlight nicht vergessen ist in der Lib 1=eingeschaltet hinterlegt.
    Geändert von ftelektro (06.11.2016 um 23:35 Uhr)

  4. #4
    Kabelträger
    Registriert seit
    03.11.2016
    Beiträge
    1
    ...das mit der Adresse kann ich bestätigen - hab so ein Display mit genau diesen I2C Adapter mit einem UNO Clone am laufen.

    $regfile = "m328pdef.dat"
    $crystal = 16000000
    $lib "YwRobot_Lcd_i2c.lib" 'YwRobot Treiber für LCD

    $hwstack = 64
    $swstack = 10
    $framesize = 40


    '************************************************* *********
    '******************* Deklarationen ************************

    Const Pcf8574_lcd = 78 'Adresse des I2C-LCDs

  5. #5
    Platinenputzer
    Registriert seit
    02.11.2016
    Beiträge
    42
    Zitat Zitat von ftelektro Beitrag anzeigen
    Nimm diese Configuration.Einstellungen je nach PCF-Typhttp://bascom-forum.de/showthread.ph...D-Anzeigemodul
    In deinem Programm haste dich etwas vermacht.
    $lib "YwRobot_Lcd_i2c.lib" Lib fehlt bei dir vollständig.
    Downlaod reiche ich gleich nach.
    http://www.forum.g-heinrichs.de/viewtopic.php?f=12&t=73
    'Pcf8574_lcd = 78
    'Pcf8574A_lcd = 126 Je nach verwendeten PCF-Typ einsetzten.Delay mit Wert 15 beginnen und danach verringern,Bis keine Anzeige mehr sichtbar ist,erspart viel Fehlersuche.Wenn bei Delay =1 alles noch funktioniert ist man bei 1 Mhz.
    Dim Backlight nicht vergessen ist in der Lib 1=eingeschaltet hinterlegt.
    Hallo Zusammen,
    danke für Eure Hilfe , geht es.
    So sieht es aus.


    $regfile = "m16def.dat" 'Atmega16
    $crystal = 4000000 '4 MHz
    $lib "YwRobot_Lcd_i2c.lib" 'YwRobot Treiber für LCD

    $hwstack = 64
    $swstack = 10
    $framesize = 40


    '************************************************* *********
    '******************* Deklarationen ************************

    Const Pcf8574_lcd = 126 'Adresse des I2C-LCDs
    Dim Lcd_backlight As Byte '1 = an; 0 = aus. Wird erst durch einen LCD-Befehl umgesetzt!

    '****************** Initialisierung ***********************

    Ddrb = &B11111111 'Port B als Ausgangsport
    Ddrd = &B01110000 'D4, D5, D6 als Ausgang; Rest als Eingang
    Portd = &B10001111 'Eingänge auf high legen

    Config Scl = Portc.0 'Konfigurieren von I2C
    Config Sda = Portc.1

    Config Lcd = 16 * 2 'nicht unbedingt nötig
    Config I2cdelay = 1

    Waitms 300 'warte bis Kondensator bei Ta0 geladen, auch für LCD-Init!


    '************************************************* *********
    '******************** Hauptprogramm ***********************

    Cls
    Lcd "Hello world!"
    Wait 1
    Lcd_backlight = 0
    Locate 2 , 1
    Lcd "2. row..."
    Wait 2
    Lcd_backlight = 1
    Locate 1 , 1 'Damit Backlight-Zustand an LCD übermittelt wird
    End

    Der Code finde ich richtig aufgeräut
    Die Adresse ist die 126 da auf der Platine keine Brücken drauf sind . Mann kann aber diese auf der Platine noch drauf löten ist schon dafür vorgesehen.

    Der Nächste Schritt wird sein ein ADC wert auszugeben danach einen Stromwert.
    Das ganze soll eine Stromversorgung für den Modellflug geben.
    Werde hierfür noch ein neues Projekt erstellen.

    Gruß Thomas und Danke nochmal an ftelektro und Michael.
    Geändert von Smith-mini.plane (07.11.2016 um 22:38 Uhr)

  6. #6
    Platinenputzer
    Registriert seit
    02.11.2016
    Ort
    09481
    Alter
    60
    Beiträge
    65
    Dann schau mal hier,vielleicht kannste was verwenden.
    http://www.wettringer-modellbauforum...708#post761708

  7. #7
    Platinenputzer
    Registriert seit
    02.11.2016
    Ort
    09481
    Alter
    60
    Beiträge
    65
    Link funktioniert!? Link funktioniert bei mir ,kann es mal jemand anderes testen.
    Geändert von ftelektro (07.11.2016 um 22:02 Uhr)

  8. #8
    Platinenputzer
    Registriert seit
    02.11.2016
    Beiträge
    42
    Zitat Zitat von ftelektro Beitrag anzeigen
    Dann schau mal hier,vielleicht kannste was verwenden.
    http://www.wettringer-modellbauforum...708#post761708
    Der Link ist Klasse
    Gruß Thomas

  9. #9
    mac5150
    Gast
    Hallo Thomas,

    freut mich, dass Dir der Beitrag gefällt!

    Viele Grüße
    Mathias

  10. #10
    Platinenputzer
    Registriert seit
    02.11.2016
    Beiträge
    42
    Zitat Zitat von mac5150 Beitrag anzeigen
    Hallo Thomas,

    freut mich, dass Dir der Beitrag gefällt!

    Viele Grüße
    Mathias

    Hallo Mathias,
    klasse funktioniert auch bei mir, jetzt muss ich es nur noch richtig verstehen !!

    Gruß Thomas

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •