Inhalt des Kapitels
- Anleitung zum LCD Display mit I2C Anschluss
- Hinweise zur Ansteuerung der I2C-Displays
- Verkabelung
- Verkabelung am MEGA2560 R3
- Installation der Bibliothek "LiquidCrystal I2C"
- Der Programmcode
- Erweiterung des Programmcodes
- Funduino - Dein Onlineshop für Mikroelektronik
Anleitung zum LCD Display mit I2C Anschluss
Mit einem LCD-Display kann man Buchstaben und Ziffern darstellen. Dies ist in vielen Anwendungen nützlich, zum Beispiel, um Messwerte oder auch Menüs darzustellen. Mit Hilfe des LCD lassen sich aber auch Daten darstellen, wenn kein Computer am Arduino-Mikrocontroller angeschlossen ist.
Das LCD Modul mit angelötetem I2C Bus ermöglicht die Verwendung eines LCD Moduls mit einer einfachen Verkabelung. Dies ist bei komplexeren Projekten besonders vorteilhaft. Ein weiterer Unterschied zum normalen LCD Display besteht darin, dass sich auf der Rückseite des Displays ein Drehregler befindet, mit dem der Kontrast des LCD reguliert werden kann.
Hinweise zur Ansteuerung der I2C-Displays
Hinweis Es gibt je nach Display unterschiedliche I²C-Module, die auf der Rückseite des LCD angelötet sind. Diese Anleitung funktioniert grundsätzlich mit verschiedenen I²C-Displays, jedoch kann die I²C-Adresse (eine HEX-Zahl) unterschiedlich sein und muss im Sketch entsprechend angegeben werden. Die typischen I²C-HEX Adressen sind „0x27“ und „0x3F“. Sollte das Display während der Durchführung dieser Anleitung nicht funktionieren, muss eine andere HEX-Adresse verwendet werden. Eine detaillierte Beschreibung zu I²C-Adressen und Tipps zur Anwendung befinden sich in der Anleitung „Zwei I²C-Module gleichzeitig verwenden“.
In diesem Beispiel:
I²C-Modul ohne Lötstellen mit fester HEX-Adresse 0x27, HEX-Adresse kann abweichen!
I²C-Modul mit rot markierten Lötstellen. Standart-HEX-Adresse 0x3F (kann abweichen!), veränderbar durch die Lötstellen A1-A3)
Verkabelung
Die Verkabelung ist sehr simpel. Am I2C LCD Modul sind nur vier Kontakte vorhanden. GND wird mit dem GND Kontakt am Mikrocontroller verbunden. VCC mit dem 5V Kontakt am Microcontroller, SDA mit dem analogen Eingang A4 und SCL mit dem analogen Eingang A5.
Verkabelung am MEGA2560 R3
Bei dem MEGA2560 R3 Microcontroller gibt es für die SDA – und SCL- Kontakte eigene Eingänge auf dem Board unter 20 und 21.
Installation der Bibliothek "LiquidCrystal I2C"
Um mit dem I²C LCD Modul arbeiten zu können, benötigt man eine Library. Wir verwenden in dieser Anleitung die „LiquidCrystal I2C“ Library. Die Library kann über die Bibliothekenverwaltung der Arduino-Software hinzugefügt werden. Der angezeigte Name in der Bibliothekenverwaltung lautet „LiquidCrystal I2C by Marco Schwartz“.
Der Programmcode
#include <Wire.h> // Wire Bibliothek einbinden #include <LiquidCrystal_I2C.h> // Vorher hinzugefügte LiquidCrystal_I2C Bibliothek einbinden LiquidCrystal_I2C lcd(0x27, 16, 2); //Hier wird festgelegt um was für einen Display es sich handelt. In diesem Fall eines mit 16 Zeichen in 2 Zeilen und der HEX-Adresse 0x27. Für ein vierzeiliges I2C-LCD verwendet man den Code "LiquidCrystal_I2C lcd(0x27, 20, 4)" 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("Funduino GmbH"); lcd.setCursor(0, 1);// In diesem Fall bedeutet (0,1) das erste Zeichen in der zweiten Zeile. lcd.print("Viel Erfolg!"); }
Erweiterung des Programmcodes
Mit dem I2C LCD Modul können wie mit dem einfachen LCD Modul, auch Messwerte angezeigt werden.
Hier ein Beispielcode, bei dem ein Feuchtigkeitssensor an Pin A0 angeschlossen wurde :
#include <Wire.h> // Wire Bibliothek einbinden #include <LiquidCrystal_I2C.h> // Vorher hinzugefügte LiquidCrystal_I2C Bibliothek einbinden LiquidCrystal_I2C lcd(0x27, 16, 2); //Hier wird festgelegt um welches Display es sich handelt. Die HEX-Adresse 0x27 ist eine Standartadresse für LCD mit einem einfachen I²C-Modul auf der Rückseite. Wenn das I²C Modul Lötstellen zur Veränderung der HEX-Adresse aufweist, ist die Standartadresse "0x3F". In diesem Fall handelt es sich um ein LCD mit 16 Zeichen in 2 Zeilen (16,2). Für ein vierzeiliges I2C-LCD verwendet man den Code "LiquidCrystal_I2C lcd(0x27, 20, 4)". int messwert=0; void setup() { lcd.init(); //Im Setup wird der LCD gestartet lcd.backlight(); //Hintergrundbeleuchtung einschalten (lcd.noBacklight(); schaltet die Beleuchtung aus). } void loop() { messwert=analogRead(A0); // Der Messwert vom Analogen Eingang A0 soll ausgelesen, und unter der Variablen „messwert“ gespeichert werden. 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("Messwert: "); lcd.setCursor(0, 1); // In diesem Fall bedeutet (0,1) das erste Zeichen in der zweiten Zeile. lcd.print(messwert); delay(500); }
Funduino - Dein Onlineshop für Mikroelektronik
Dauerhaft 10% Rabatt für Schüler, Studenten und Lehrkräfte
Mehr als 2.000 Artikel sofort verfügbar!
Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.