Nr.02 – I²C Display

Anleitung zum LCD Display mit I2C Anschluss

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 die Leuchtstärke des LCD reguliert werden kann.

Materialbeschaffung: www.funduinoshop.com

Hinweis:
Diese Anleitung funktioniert nur mit einem I²C Modul auf der Rückseite des Displays ohne drei Lötstellen mit der Bezeichnung A0,A1 und A2. Das Modul muss folgendermaßen aussehen:

I2Cn

Bei LCDs mit den Lötstellen auf dem I²C Modul siehe Anleitung „Zwei I²C LCD Module gleichzeitig ansteuern“.

 

Material: Mikrocontroller ( in diesem Beispiel UNO R3), LCD mit I2C Modul, Kabel

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.

Achtung!: Bei dem MEGA2560 R3 Microcontroller gibt es für die SDA – und SCL- Kontakte eigene Eingänge auf dem Board unter 20 und 21.

 

Programmieren:

Um Mit dem I2C LCD Modul zu arbeiten benötigt man eine Library welche noch nicht im Arduino Programm vorinstalliert ist. Diese kann man zum Beispiel unter https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library als .ZIP Datei herunterladen. Danach muss die Library im Arduino Programm hinzugefügt werden.

Das kann unter dem Punkt „Sketch“ dann „Include Library“ und „add .ZIP Library ..“ gemacht werden. Jetzt kann im Code auf die Library zurückgegriffen werden.

 

Code:

#include <Wire.h> // Wire Bibliothek hochladen
#include <LiquidCrystal_I2C.h>// Vorher hinzugefügte LiquidCrystal_I2C Bibliothek hochladen
LiquidCrystal_I2C lcd(0x27, 16, 2);   //Hier wird festgelegt um was für einen Display es sich handelt. In diesem Fall einer mit 16 Zeichen in 2 Zeilen.

void setup()
{
lcd.begin(); //Im Setup wird der LCD gestartet (anders als beim einfachen LCD Modul ohne 16,2 in den Klammern denn das wurde vorher festgelegt
}

void loop()
{
lcd.setCursor(0,0); //Ab hier kann das I2C LCD Modul genau wie das einfache LCD Modul programmiert werden.
lcd.print("Funduino GmbH");
lcd.setCursor(0,1);  // lcd.setCursor um Zeichen und Zeile anzugeben
lcd.print("Viel Erfolg!"); // lcd.print um etwas auf dem Display anzeigen zu lassen.
}

 

Anwendungsbeispiel:

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>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int messwert=0;

void setup()
{
lcd.begin();
}

void loop()
{
messwert=analogRead(A0);  // Der Messwert vom Analogen Eingang A0 soll ausgelesen, und unter der Variablen „messwert“ gespeichert werden.
lcd.setCursor(0,0); // In der ersten Zeile soll der Text „Messwert:“ angezeigt werden.
lcd.print("Messwert:");
lcd.setCursor(0,1);  // In der zweiten Zeile soll der Messwert, der vom Feuchtigkeitssensor bestimmt wurde, angezeigt werden.
lcd.print(messwert);
delay(500);
}