Arduino-UNO-I2C-LCD

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

    • Arduino-UNO-I2C-LCD

      Hallo,
      hier einmal eine einfache Ansteuerung eines I2C-Displays mit dem PCF8574.
      Gruß Udo

      BASCOM-Quellcode: Arduino-UNO-I2C-LCD.bas

      1. '(
      2. ***************************
      3. * *
      4. * Udo Lorenz *
      5. * 10.05.2018 *
      6. * *
      7. ***************************
      8. Arduino UNO Clone mit I2C-LED PCF8574
      9. PullUp an Scl und Sda 2,7 kOhm nicht vergessen!
      10. ')
      11. $regfile = "m328pdef.dat"
      12. $crystal = 16000000
      13. $hwstack = 80
      14. $swstack = 80
      15. $framesize = 100
      16. $baud = 38400
      17. $lib "YwRobot_Lcd_i2c.lib" 'LCD Lib
      18. Config Pinb.5 = Output 'Board LED
      19. Led Alias Portb.5
      20. '******************* Deklarationen ************************
      21. Const Pcf8574_lcd = &H4E 'Adresse des I2C-LCDs, je nach Baustein und Adresse!
      22. Dim Lcd_backlight As Byte '1 an, 0 aus.
      23. '****************** Initialisierung ***********************
      24. Config Scl = Portc.5 'I2C Pins
      25. Config Sda = Portc.4 'I2C Pins
      26. Config Lcd = 20 * 4 'muss nicht unbeding angegeben werden
      27. Config I2cdelay = 10 '100 kHz
      28. Waitms 300
      29. Lcd_backlight = 1 'Beleuchtung Einschalten
      30. Locate 1 , 1 'Beleuchtung Ein übermitteln
      31. Cls '
      32. '******************** Hauptprogramm ***********************
      33. Do
      34. Lcd_backlight = 1
      35. Locate 1 , 1
      36. Locate 3 , 1 : Lcd "Hello World!!!!!!!!!"
      37. Locate 1 , 1 : Lcd "Das ist Zeile 1-----"
      38. Locate 2 , 1 : Lcd "Das ist ein Test!???"
      39. Locate 4 , 1 : Lcd "Und hier ist Zeile 4"
      40. Wait 3
      41. Lcd_backlight = 0
      42. Locate 1 , 1
      43. Wait 1
      44. Loop
      45. End
      Alles anzeigen
    • Na ja, die 4 Drähtchen schafft man, wenn man den code liest, auch ohne Schaltbild. Man könnte die uno-Bezeichnung dieser pins noch erwähnen.
      Codeschnipsel, die hier gepostet werden, brauchen aus meiner Sicht nicht neu zu sein, nur in der Überschrift gut beschrieben (damit man sie mit der Suche findet) und vollständig. Ein link zur lib wäre recht, oder gleich die lib zum download und ein Bild/link von dem Adapter, der verwendet wird. Ok, wenn der nicht auf's Lcd gesteckt wird, dann ist ein Schaltbild wieder nötig ;) .
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Hallo Michael,
      ja Du hast recht. Den Code findet man hier im Forum. Ich hab ihn aber als Codeschnipsel hier eingestellt, das hilft enorm beim Erstellen eines eigenen Projektes. So sehe ich das jedenfalls. Wenn Ihr das nun anders seht, einfach löschen.
      Ein Schaltplan für 4 Drätchen finde ich etwas übertrieben und Fritzing kann ich nun wirklich nicht als Mittel zum Erstellen eines solchen sehen.
      Gruß Udo
    • Udo01 schrieb:

      Ein Schaltplan für 4 Drätchen finde ich etwas übertrieben
      Ich zähle am Display mindestens 6 Anschlüsse, dazu noch Plus und Minus und Beleuchtung.

      Es gibt mehrere verschiedene Arten der Ansteuerung über I2C, je nach verwendeter Lib (ist die in Bascom enthalten und wenn nicht, wo bekommt man sie?)

      Ich selbst kenne mich mit der Ansteuerung aus und weiß, wo ich welche Info finde, aber andere eben nicht, deshalb hätte ich es an deiner Stelle gut gefunden, die Info mitzuliefern, da sich dein Beitrag vermutlich an I2C-Display-Einsteiger richtet.


      Udo01 schrieb:

      Wenn Ihr das nun anders seht, einfach löschen.
      Versuch bitte meine Beiträge nicht persönlich zu nehmen, mir geht es um die Info an sich und ich wollte dich nur darauf aufmerksam machen, dass das Codestück ohne den Schaltplan für Anfänger nichts bringt. So ein Forum ist ja auch ein Wissenspool, aber was nützt es dem Anfänger, wenn er zum x-ten mal den Code sieht, aber keinen Plan für die Verdrahtung hat.
      So sehe ich das.

      Der PCF8574 hat 8 frei wählbare Ausgänge. Welche werden hier benutzt und braucht man Pullups?
    • Michael schrieb:

      Versuch bitte meine Beiträge nicht persönlich zu nehmen, mir geht es um die Info an sich und ich wollte dich nur darauf aufmerksam machen, dass das Codestück ohne den Schaltplan für Anfänger nichts bringt.
      Nö Michael, alles gut! Ich seh es ja ähnlich.
      Anfänger sollte man aber auch den richtigen Weg zeigen und da gehört Fritzing sicherlich nicht dazu. Aber das ist dann sicherlich eine ander Diskusion und gehört hier nicht hin.
      Gruß Udo
    • Hier noch als Ergänzung ein Bild des Aufbaues. Die Displays gibt esmittlerweile in verschiedenen Ausführungen zB. bei A....n und anderen Anbietern fertig aufgebaut, dazu einfach Googel fragen. Auf der angesetzten PCF8574 Platine sind keine PullUp Widerstände aufgelötet. Ich habe diese nachträglich eingelötet, siehe Pfeil. Das spart dann ein extra Steckbrett. Über die 6 Lötpunkte rechts neben den Widerständen kann man die I2C Adresse anders Codieren., das ist aber nur nötig wen zB. zwei Displays eingesetzt werden sollen, da diese nicht die gleiche Adresse haben dürfen. Noch etwas zu den I2C-Pins, diese sind nicht auf die von mir verwendeten festgeschrieben, die können frei innerhalb der µC-Spezifikation verwendet werden. Sollte nun das Display dunkel bleiben, lohnt es sich den I2C-Scanner zu benutzen. Der ist hier im Forum zu finden. Anbei noch die "YwRobot_Lcd_i2c.lib", diese ist im orginal Bascom nicht vorhanden. Die Datei wird einfach in den Ordner "..\BASCOM-AVR\LIB" hinein kopiert.
      Gruß Udo
      i2c-display.jpg
      Dateien
    • Zur Ergänzung mit ohne Suffix A

      BASCOM-Quellcode

      1. Const Pcf8574_lcd = 126 'Adresse des I2C-LCDs
      2. 'Pcf8574_lcd = 78
      3. 'Pcf8574A_lcd = 126
      4. Dim Lcd_backlight As Byte '1 = an; 0 = aus. Wird erst durch einen LCD-Befehl umgesetzt!
      5. Config I2cdelay = 1 '1=1Mhz,5=200Khz,10=100Khz,15=66,66Khz
      6. 'Wenn in Lcd keine Anzeige muß der Delaywert erhöht werden.Mit Wert 15 beginnen und dann langsam verringern.