LCD Display mit I2C-Anschluss ansteuern
- I2C Display
- 4x MW-Kabel
- Arduino Uno
- USB-Kabel für den Arduino
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 Display | Arduino |
---|---|
GND | GND |
VCC | 5V |
SDA | A4 |
SCL | A5 |

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 ohne Lötstellen. HEX-Adresse 0x27
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 )