LCD Display mit I2C-Anschluss ansteuern

Erstellt von Niclas Lüth
Benötigtes Material
  • I2C Display
  • 4x MW-Kabel
  • Arduino Uno
  • USB-Kabel für den Arduino
Als PDF
PDF-Download
Arbeitsblatt
PDF-Download Lehrer
Lehrerblatt

Beschreibung

Mit einem LCD kann man Buchstaben und Nummern darstellen. Man kann zum Beispiel Messwerte oder auch den Zustand in dem sich der Arduino befindet anzeigen lassen (“fahre vorwärts” / “fahre rückwärts”). Der I2C Bus (Anschlussschnittstelle) ermöglicht eine simple Verkabelung im Gegensatz zu einem größeren herkömmlichen Display. Außerdem lässt sich auf der Rückseite mittels eines Drehreglers der Kontrast einstellen.

Verkabelung

I2C DisplayArduino
GNDGND
VCC5V
SDAA4
SCLA5
Schaltplan

Schaltplan

Code-Beispiel

Es muss eine Library im Arduino Programm hinzugefügt werden. Wir verwenden die Library “LiquidCrystal I2C”. Siehe Bibliotheksverwaltung

#include <LiquidCrystal_I2C.h>  // LiquidCrystal_I2C Bibliothek einbinden.
#include <Wire.h>               // Wire Bibliothek einbinden.

// Bestimmung des Displays:
LiquidCrystal_I2C lcd(0x3f, 16, 2);  // HEX-Adresse 0x3f, 16 Zeichen in 2
                                     // Zeilen. Für ein vierzeiliges I2C-LCD
                                     // verwenden. wir: LiquidCrystal_I2C
                                     // lcd(0x3f, 20, 4). Bei Problemen schaue
                                     // ins FAQ.

void setup() {
  lcd.init();       // Im Setup wird der LCD gestartet.
  lcd.backlight();  // Hintergrundbeleuchtung einschalten.
                    // ( lcd.noBacklight(); schaltet die Beleuchtung aus).
}

void loop() {
  lcd.setCursor(0, 0);  // Hier wird die Position des ersten Zeichens
                        // festgelegt. In diesem Fall bedeutet (0,0) das erste
                        // Zeichen in der ersten Zeile.
  lcd.print("Ich bin ein");
  lcd.setCursor(0, 1);  // In diesem Fall bedeutet (0,1) das erste Zeichen in
                        // der zweiten Zeile.
  lcd.print("Arduino!");
}

Häufige Fragen und Probleme

Mein Display leuchtet aber zeigt nichts an, wieso?

  • Es gibt je nach Display unterschiedliche I2C Module, die auf der Unterseite angelötet sind.

  • Überprüfe anhand der folgenden Bilder ob du in der 5. Zeile des Codes die richtigen Angaben gemacht hast.

    I²C-Modul mit rot markierten Lötstellen. HEX-Adresse 0x3F

    I²C-Modul mit rot markierten Lötstellen. HEX-Adresse 0x3F

  • Wurde die Library korrekt eingebunden? Siehe PROGRAMM

Mein Display leuchtet nicht!

  • Ist die Verkabelung korrekt ? VCC darf nicht an 3,3V angeschlossen werden (zu wenig Energie)
  • Kabel überprüft? Vielleicht hat eines der 4 MW Kabel einen Defekt. Tauscht alle Kabel einmal aus.
    • Funktioniert es, prüft anschließend jedes einzelne Kabel, um das Defekte zu finden.

Mein Display zeigt Zeichen an, die da nicht hin sollen!

  • Soll das Display verschiedene Dinge hintereinander anzeigen? Wird mit dem Befehl lcd.print(“12345”); die Zeichen “12345” angezeigt und anschließend lcd.print(“abc”); verwendet, zeigt das Display nun “abc45” an, da für die 4. und 5. Stelle kein neuer Wert angegeben wurde. Um dies zu umgehen, kann man zwischendurch mit dem Befehl lcd.clear(); das Display leeren.

Mein Programm zeigt immer einen Fehler wenn ich den Code übertragen möchte?

Port und Board im Programm überprüft?

Das Material und dessen Inhalte sind - sofern nicht anders angegeben - lizenziert unter der Creative Commons Lizenz CC BY-NC-SA 4.0 (für den vollständigen Lizenztext siehe https://creativecommons.org/licenses/by-sa/4.0/legalcode )