Lib für I2C/TWI Arduino 20x4 LCD

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Lib für I2C/TWI Arduino 20x4 LCD

      Meine Suche nach einer Lib für das Arduino 20x4 I2C/TWI Lcd war erfolglos.
      Habe die Pins vom Treiber IC PCF8574T zum Display geprüft, dabei bemerkt die Portbelegung von P0 bis P3 und P4 bis P7 sind vertauscht.
      Somit passt vermutlich keine recherchierte LIB.

      Ylcd_i2c new_Lib
      P0-D4 ist hier P0 to RS
      P1-D5 ist hier P1 to RW
      P2-D6 ist hier P2 to E
      P3-D7 ist hier P3 to Basis Transistor /LED

      P4-Rs ist hier P4 to D4
      P5-RW ist hier P4 to D5
      P6-E2 ist hier P6 to D6
      P7-E1 ist hier P7 to D7

      Rw bzw Port1 von PCF8574 ist an RW vom Display geführt. Somit sollte das in der Lib berücksichtigt sein.

      In den Lib Dateien meiner Recherche passt nichts zu diesem Display.
      Habe ich irgendeine passende Lib übersehen?

      Mit ASM kenne ich mich nicht aus, versuchte somit nicht eine Lib auf die neuen Bedürfnisse anzupassen.
      Wo finde ich eine passende Lib?
    • Du musst Dir mal AN #118 library von Kent ansehen.

      Vielleicht hilft das (Du musst noch die richtige I2C-Adresse eintragen!!!):


      Quellcode

      1. Config I2cdelay = 10
      2. Config Lcd = 20x4
      3. $lib "bl_Lcd_i2c.lib" ' AN #118 library from Kent
      4. ' with this addition
      5. ' * lds r27,{backlight}
      6. ' andi _temp2,&hf7
      7. ' or _temp2,r27
      8. 'LCD-display including backlight
      9. '0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
      10. '1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
      11. 'G 5 C R R E D D D D D D D D B B
      12. 'N O S W 0 1 2 3 4 5 6 7 L L
      13. 'D V N S
      14. 'PCF8574
      15. 'P7 = D7
      16. 'P6 = D6
      17. 'P5 = D5
      18. 'P4 = D4
      19. 'P3 = 1 = backlight on / 0 = backlight off
      20. 'P2 = E
      21. 'P1 = RW
      22. 'P0 = RS
      23. Const Pcf_d4 = 4
      24. Const Pcf_d5 = 5
      25. Const Pcf_d6 = 6
      26. Const Pcf_d7 = 7
      27. Const Pcf_rs = 0
      28. Const Pcf_rw = 1
      29. Const Pcf_e1 = 2
      30. Dim B As Byte
      31. Dim A As Byte
      32. Dim _lcd_e As Byte
      33. Dim Backlight As Byte
      34. Backlight_on Alias &H08
      35. Backlight_off Alias &H00
      36. Backlight = Backlight_on
      37. _lcd_e = 128
      38. Const Pcf8574_lcd = 126 'Defines the address of the I/O
      39. 'expander for LCD
      40. Initlcd 'WICHTIG!
      41. Wait 2
      42. CLS
      43. Locate 1 , 1
      44. LCD "UND LOS..."
      Alles anzeigen
      In den Zeilen 28 bis 34 kannst Du auch andere Zuweisungen der Anschlüsse eintragen.
    • Danke für Lib, deren Erklärung und Anteilnahme.
      Habe einiges probiert, Display zeigt nur 2 Zeilen an und nur Reihen 1,3,5,7 eines Zeichens.
      Logikanalyser auf I2C Modus und triggern auf fallende Flanke von SDA benutzt.
      Angezeigt wird nun wie zu erwaten Write on H40 with ACK und folgende Startsequenz.
      03,C3,03,04,C4,04,04,C4,04,02,C2,02,02,C2,02,08 usw

      Nun Analyser an Display angeschlossen Canal0 = RS, Canal1 = RW, Canal2 = E, C4 = DB4, C5 = DB5, C6 = DB6, C7 = DB7
      Zu sehen sind nun H/L Wechsel an RS, an RW, an E und an DB4 und DB7. DB5 und DB6 bleiben immer Low.

      Zu erwarten wäre am Display DB5 und DB6 sollten die Pegel wechseln.
      Angezeigt werden soll Zeile 1 in Zeile 1, Zeile 2 in Zeile 2 usw.

      Ich hätte RW vom Display auf ständig Lowpegel erwartet, sollte ja nur geschrieben werden.
      Wieso keine Wechsel an DB5 und DB6 erfolgen, bleibt mir momentan unbekannt.
      Da E2 nicht vorhanden, müsste die Lib die Adresswerte für Zeilen 3 und 4 entsprechend umrechnen.

      Momentan weiß ich nicht warum das Display nichts vernünftiges anzeigt, ob Lib in Hinsicht Zeichenadressen für Zeile 3 + 4
      umrechnen passt, oder welche passender wäre. Unklar ist mir, wieso DB5 und DB6 am Display keine Pegelwechsel haben, und wie
      man dieses Display mit Bascom ansteuern kann.