Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Deutsch
  • English
Menu

Arduino Lektion 24: LCD 4×20 Modul mit I2C Schnittstelle

Posted on 28. Januar 20173. Mai 2023 by Stefan Draeger

In diesem Tutorial möchte das LCD-Display 4×20 Beschreiben. Die Bezeichnung 4×20 bezieht sich in diesem Fall auf 4 Zeilen mit je 20 Zeichen.
Da ich im Tutorial „Arduino Lektion 7: LCD-Display ansteuern“ bereits ein Display beschrieben habe möchte hier auf die Besonderheit eingehen.
Es sind nunmehr 4 PINs am IIC I2C Modul zu belegen (statt 16 PINs) damit mit dem Display kommuniziert werden kann. Das ist besonders für größere Projekte sinnvoll.

LCD Modul 4×20 am Arduino UNO

Es ist in dem Bild ein kleiner Drehpotentiometer (blau) zu erkennen, über diesen lässt sich die Helligkeit des Displays regeln.

LCD 4×20 Display (hinten)

Das Display ist bereits in einen Rahmen geklebt für ein anderes Projekt.

  • Technische Daten
  • Anschlussplan
  • Quellcode
    • benötigte Bibliothek
    • Arduino Sketch
  • Download
  • Ausblick

Technische Daten

  • Format: 4 Zeilen zu je 20 Zeichen
  • Maße (in mm):
    • Platine: 98x60x5
    • Display: 98x40x5
  • Stromversorgung: 5V
  • Umgebungstemperatur: -20 °C bis 70 °C

Anschlussplan

Das Display verfügt über 4 PINs welche auf dem IIC I2C Modul wie folgt beschrieben sind: GND,VCC,SDA (Data Line) und SCL (Clock Line).

DisplayArduino UNO
 GND GND
VCC5V
SDAA4
 SCLA5

Quellcode

benötigte Bibliothek

Für die Kommunikation mit dem I2C Modul wird die LiquidCrystal Bibliothek benötigt. Diese Bibliothek kann unter https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads heruntergeladen werden. Wie man eine externe Bibliothek in die Arduino IDE einbindet habe ich im Tutorial „Arduino IDE, Einbinden einer Bibliothek“ ausführlich beschrieben.

Arduino Sketch

Wer das Tutorial „Arduino Lektion 7: LCD-Display ansteuern“ kennt, wird hier nicht weiter überrascht werden, denn die Funktionen sind geblieben.

// Einbinden Wire Bibliothek
#include <Wire.h>
// Einbinden der LiquidCrystal Bibliothek für das I2C Modul des Displays.
#include <LiquidCrystal_I2C.h> 

// Es gibt min. 2 Adressen welche ein Display verwenden kann: 0x3F oder 0x27.
// Setzt die PINs des I2C Moduls für die Kommunikation mit dem Display.
// Adresse: 0x27
// EN: 2
// RW; 1
// RS: 0
// D4: 4
// D5: 5
// D6: 6
// D7: 7
// BL: 3
// BLPOL: POSITIVE
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); 
 
 
void setup()
{
  // initialisieren des Displays mit 20 Zeichen und 4 Zeilen
  lcd.begin(20,4);
  // setzten des Cursors auf die erste Zeile (gebinnend bei 0) und dem ersten Zeichen
  lcd.setCursor ( 0, 0 );
  // setzten eines Textes
  lcd.print("LCD 20x4 Modul");  
  // setzten des Cursors auf die zweite Zeile (1) und dem ersten Zeichen (0)
  lcd.setCursor ( 0, 1 );        
  // setzten eines Textes
  lcd.print ("01234567890123456789");   
  // setzten des Cursors auf die dritte Zeile (2) und dem ersten Zeichen (0)
  lcd.setCursor ( 0, 2 );
  // setzten eines Textes
  lcd.print ("!@$%&/()=?");     
  // setzten des Cursors auf die vierte Zeile (3) und dem ersten Zeichen (0)
  lcd.setCursor ( 0, 3 );
  // setzten eines Textes       
  lcd.print ("www.draeger-it.blog");    
}
 
void loop()
{
 
}

Download

Hier nun der Download des Sketches:

LCD 4×20 Modul mit I2C SchnittstelleHerunterladen

Ausblick

Im nächsten Tutorial möchte ich nun mehrere Sensoren benutzen um das Display mit Daten zu befüllen.

7 thoughts on “Arduino Lektion 24: LCD 4×20 Modul mit I2C Schnittstelle”

  1. Heinz Andersen sagt:
    17. April 2018 um 17:05 Uhr

    Ich habe ein 20×4 Modul und habe den Sketch von oben übernommen.
    Die Andresse habe ich auf 0x3F geändert.
    Bekomme nun die Fehlermeldung: POSITIVE was not declared in this scope.
    Wo kann mein Fehler sitzen? ….im Voraus schon vielen Dank.

    Antworten
    1. Stefan Draeger sagt:
      17. April 2018 um 20:31 Uhr

      Hallo Heinz,

      ich habe gerade mal den Quellcode mit der / dem

      • Arduino UNO
      • Arduino IDE 1.8.5
      • Bibliothek https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/NewliquidCrystal_1.3.4.zip

      probiert und es konnte erfolgreich kompiliert werden.

      Kann mir bei der Fehlermeldung nur vorstellen das es an der Bibliothek liegt.

      Gruß,

      Stefan

      Antworten
  2. Heinz Andersen sagt:
    5. Juni 2018 um 20:53 Uhr

    Hallo Stefan,
    Du hattest Recht !!! Es lag an „NewliquidCrystal 1.3.4“ Ich hatte eine andere Version.
    Vielen Dank!

    Antworten
  3. Manuel El-Khalil sagt:
    9. Oktober 2018 um 07:26 Uhr

    Ich habe ebenfalls den Sketch von oben übernommen. Leider bekomme ich auch den Fehler „POSITIVE was not declared in this scope.“

    Ich habe es mit der v1.3.4. und mit der Version 1.3.5 versucht. Danach habe ich den Link im Kommentar ausprobiert (welcher ja direkt zum Download der Version 1.3.4 führt).

    Das Einbinden der Blibliothek habe ich wie folgt vorgenommen:
    1. Die Zip-Datein heruntergeladen.
    2. In der Arduino IDE auf Sketch->Bibliothek einbinden->.ZIP-Bibliothehinzufügen->“NewliquidCrystal_1.3.4″
    3. Den Sketch von oben Markiert und in der IDE eingefügt
    4. Auf Hochladen geklickt

    Wo liegt der Fehler?

    Antworten
    1. Stefan Draeger sagt:
      9. Oktober 2018 um 08:02 Uhr

      Hallo Manuel,

      du findest unter dem Link https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/ mehrere Bibliotheken. Die Version „LiquidCrystal_V1.2.1“ enthält die Headerdatei „LCD.h“ welche wiederum das ENUM mit dem gesuchten Wert „POSITIVE“ enthält. Ich werde mir dieses heute abend einmal genauer anschauen und dann ggf. das Tutorial anpassen.

      Gruß,

      Stefan Draeger

      Antworten
  4. Werner sagt:
    28. Dezember 2018 um 00:25 Uhr

    Hallo Stefan,

    ich habe die NewLiquidDisplay Lib 1.3.4 eingebunden. Beim kompilieren erscheint diese Fehlermeldung:
    C:\Users\Thomas\Documents\Arduino\libraries\NewliquidCrystal/SoftI2CMaster.h:503:46: error: ‚SDA_PIN‘ was not declared in this scope
    [SDADDR] „I“ (SDA_DDR), [SDAPIN] „I“ (SDA_PIN), [SDAIN] „I“ (SDA_IN)
    ^
    exit status 1
    Fehler beim Kompilieren für das Board Arduino Nano.

    Hast Du eine Idee was ich verkehrt mache?

    Vielen Dank und viele Grüße
    Werner

    Antworten
  5. Werner Mauss sagt:
    28. Dezember 2018 um 10:35 Uhr

    Hallo Stefan,
    mein gestern in einem Kommentar geschildertes Problem hat sich erledigt. Ich kenne zwar die Ursache nicht aber die Fehlermeldung verschwand, nachdem ich den gesamten Code kopiert und als Ganzes in den sonst leeren Arduiono IDE Editor eingefügt habe. Vorher hatte ich nur den Inhalt vor void sowie innerhalb des Void Funktionsblocks {} in die Vorgabe im Editor kopiert. Vermutlich lief da irgendetwas schief.
    Nervigerweise kamen beim kompletten kopieren noch irgendwelche nicht sichtbaren Sonderzeichen mit, die dann beim kompilieren Fehlermeldungen erzeugt haben. Das ließ sich schließlich verhindern, in dem ich oben nicht auf „Download“ geklickt habe sondern in der Menuzeile des Codefensters oben auf „copy“.

    Das kompilieren geht jetzt also. Das übertragen des Codes auf den Nano Clone jedoch nicht. Aber das ist ein ganz anderes Problem. Danke für Deine LCD Lektion!

    Viele Grüße
    Werner

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}