- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Programmierungsproblem mit dem I²C-BUS LC-DISPLAY C-CONTROL

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    10.05.2009
    Beiträge
    5

    Programmierungsproblem mit dem I²C-BUS LC-DISPLAY C-CONTROL

    Anzeige

    Praxistest und DIY Projekte
    Hi,

    ich bin Schüler und habe mir das I²C-BUS LC-DISPLAY C-CONTROL I bei Conrad bestellt (http://www.conrad.de/goto.php?artikel=198330) und versucht es mit meinem atmega32 und einem Quarz von 16MHz zum Laufen zu bringen. Scl(Portc.0) und Sda(Portc.1) sind genauso wie V+ und Gnd angeschlossen.

    Zum Programmieren habe ich mir die Lcd_i2c.lib heruntergeladen (http://www.mcselec.com/index.php?opt...d=82&Itemid=57) und das beiligende Demoprogramm so umgeschrieben:


    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    
    $lib "Lcd_i2c.lib"                                          'My I2C driver for the LCD
    
    Config I2cdelay = 1
    
    Const Pcf8574_lcd = &H40                                    'Defines the address of the I/O expander for LCD
    
    Config Scl = Portc.0                                        'Configure I2C SCL
    Config Sda = Portc.1                                        'Configure I2C SDA
    Dim _lcd_e As Byte                                          'Needed to control 4 line LCD
    
    
    
    '_lcd_e = 128 select E1, 64 select E2, 192 select both (for CLS or DefLCDChar etc.)
    _lcd_e = 128                                                'Upper half of 4-line display is selected
    
    'Here the LCD test program that is included in Bascom follows
    'and at the end there is a demo of the keyboard scan routine
    
    Dim A As Byte
    Config Lcd = 16 * 2                                         'configure lcd screen
    'other options are 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a
    'When you dont include this option 16 * 2 is assumed
    '16 * 1a is intended for 16 character displays with split addresses over 2 lines
    
    '$LCD = address will turn LCD into 8-bit databus mode
    '       use this with uP with external RAM and/or ROM
    '       because it aint need the port pins !
    ' Put your own strings here
    Cls                                                         'clear the LCD display
    Lcd "Hello world."                                          'display this at the top line
    Wait 1
    Lowerline                                                   'select the lower line
    Wait 1
    Lcd "Shift this."                                           'display this at the lower line
    Wait 1
    For A = 1 To 10
       Shiftlcd Right                                           'shift the text to the right
       Waitms 250                                               'wait a moment
    Next
    
    For A = 1 To 10
       Shiftlcd Left                                            'shift the text to the left
       Waitms 250                                               'wait a moment
    Next
    
    
    Locate 2 , 1                                                'set cursor position
    Lcd "*"                                                     'display this
    Wait 1                                                      'wait a moment
    
    Shiftcursor Right                                           'shift the cursor
    Lcd "@"                                                     'display this
    Wait 1                                                      'wait a moment
    
    Home Upper                                                  'select line 1 and return home
    Lcd "Replaced."                                             'replace the text
    Wait 1                                                      'wait a moment
    
    Cursor Off Noblink                                          'hide cursor
    Wait 1                                                      'wait a moment
    Cursor On Blink                                             'show cursor
    Wait 1                                                      'wait a moment
    Display Off                                                 'turn display off
    Wait 1                                                      'wait a moment
    Display On                                                  'turn display on
    
    End
    Außer der Beleuchtung funktioniert nichts. Kein Cursur etc. ...

    Auch mit einem an ein Display mit 16 * 2 angepassten Code, den ich aus dem Buch "Roboter selbst bauen" (http://books.google.de/books?id=tjUA...bauen#PPA59,M1) entnommen habe, tut sich nichts.

    Vielleicht hatte jemand das selbe Problem und hat es gelöst ?
    Ich würde mich über Lösungen, Raschläge oder Fragen über Unklarheiten freuen ...

    Gruß,
    Markus

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Dies ist ein ziemlich spezielles Display, aber hier im Forum kannst du schon einige Beiträge zum Thema PCF8574 finden. Schau mal in der Suche.

    Gruß

    Rolf

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo Markus,

    die von dir eingesetzte Library $lib "Lcd_i2c.lib" erwartet am Ausgang P4 das RS des Displays und am P5 das RW-Signal.

    Beim Conrad-Teil sind diese 2 vertauscht.

    Quelle:
    http://www2.produktinfo.conrad.com/d...play_Modul.pdf
    http://www.mcselec.com/index.php?opt...d=82&Itemid=57

    ob das die einzigen Unterschiede sind, kann ich dir leider nicht sagen.

    Günter

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    10.05.2009
    Beiträge
    5
    Hallo alle zusammen und vielen Dank für die schnellen Antworten

    Ich hatte schon im Forum gesucht, bin aber nur auf eins gekommen, dass zu mir passen könnte (https://www.roboternetz.de/phpBB2/ze...hlight=pcf8574). Dort schreibt dirtyklaus er habe es damit gelöst:
    Getrennt -also aufgepitscht -zwischen Display Platine und Controlerplatine:
    Die Pinne: pin 3, pin 4

    An Displayplatine:
    - pin 4 (RS) auf Pin 5 auf Controlerplatine (PCF8547)
    - Pin 5 (R/W) auf Masse (pin1) gelötet - fest Read
    Nachtrag:
    die Variable _lcd_e = 192 ist auf 192 zu setzen.
    Doch damit bin ich nicht viel weitergekommen... (wieso pin 3 und pin 4 auftrennen, wenn dann unten von pin 4 und pin 5 die Rede ist?)

    Ich habe ,wie guenter1604 dann beschrieben hat, pin 4 und pin 5 aufgetrennt und die beiden vertauscht ... Leider ohne Erfolg.

    Dann bin ich dazu übergegangen noch Pin 5 auf Masse zu legen und die Programmzeile, wie dirtyklaus beschrieben hat, zu änderen, aber wieder ohne Erfolg.

    Gruß,
    Markus

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Die richtige Adresse gejumpert?

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.09.2004
    Beiträge
    264
    Ich stand kürzlich vor genau dem gleichen Problem.

    Die Leitungen DB4 bis DB7 sind gleich angeschlossen. Alle anderen Leitungen gehen auf andere Ports des PCF8574. Nimm lieber eine andere Adapterplatine und ein anderes Display.

    AVR: http://www.rn-wissen.de/index.php/Bi..._i2c_schem.png
    C-Control: http://www.spiketronics.com/downloads/BA005.pdf



    mfg

    Stefan

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.03.2006
    Ort
    Hinsdorf
    Alter
    49
    Beiträge
    381
    Hi,

    schau Dir mal diesen Code an, bei mir funst das LCD.

    http://www.mcselec.com/index.php?opt...d=82&Itemid=57

    Gruß MAT

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.09.2004
    Beiträge
    264
    schau Dir mal diesen Code an, bei mir funst das LCD.
    Der Code funktioniert.... allerdings nicht mit dem I2C-LCD der C-Control.

    mfg

    Stefan

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    10.05.2009
    Beiträge
    5
    Hallo alle und danke für die weitern Antworten,

    hier sind erstmal ein paar Bilder, wie jetzt mein Display aussieht.
    Bild hier  

    Bild hier  

    An den Jumpern habe ich nichts geändert; sind alle auf Low. => H&40, was auch im Programmcode steht.

    Ich würde nur ungern mir ein neues Display kaufen, da es runde 40€ gekostet hat. Also versuche ich lieber noch daran rumzubasteln ...

    Die Pins P0 bis P5 müssten ja jetzt passen.

    Eventuell muss ich noch P7 mit P6 vertauschen? Ich weiß aber nicht, ob das überhaupt einen Sinn hat.

    @Suggarman: Hast du einen Code, der passt ?

    Hat irgendjemand noch eine Idee oder sollte ich das wirklich aufgeben ?

    Vielen Dank,
    Markus

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.09.2004
    Beiträge
    264
    Ich würde nur ungern mir ein neues Display kaufen, da es runde 40€ gekostet hat
    OK. Ich habe für mein 4x40 LCD nur ca. 5 EUR bezahlt

    Eventuell muss ich noch P7 mit P6 vertauschen? Ich weiß aber nicht, ob das überhaupt einen Sinn hat.
    Hast Du die obigen Schaltpläne angesehen?

    @Suggarman: Hast du einen Code, der passt ?
    Der Code, den Mat-sche verlinkt hat funktioniert.

    mfg

    Stefan

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress