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
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:
Außer der Beleuchtung funktioniert nichts. Kein Cursur etc. ...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
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
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
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
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 ReadDoch 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?)Nachtrag:
die Variable _lcd_e = 192 ist auf 192 zu setzen.
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
Die richtige Adresse gejumpert?
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
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
Der Code funktioniert.... allerdings nicht mit dem I2C-LCD der C-Control.schau Dir mal diesen Code an, bei mir funst das LCD.
mfg
Stefan
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
OK. Ich habe für mein 4x40 LCD nur ca. 5 EUR bezahltIch würde nur ungern mir ein neues Display kaufen, da es runde 40€ gekostet hat
Hast Du die obigen Schaltpläne angesehen?Eventuell muss ich noch P7 mit P6 vertauschen? Ich weiß aber nicht, ob das überhaupt einen Sinn hat.
Der Code, den Mat-sche verlinkt hat funktioniert.@Suggarman: Hast du einen Code, der passt ?
mfg
Stefan
Lesezeichen