🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
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

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb