Bastelseite Display + Antriebe Sensoren C++ | |
Ein LCD-Display mit I2C und 2 Zeilen zu je 16 Zeichen
Durch die Ausführung von I2C benötigt das LCD-Display nur vier Anschlüsse: Plus und Minus Stromversorgung, sowie SCL und SDA.
Die Anzeige ist einfarbig.
Der benötigte Treiber:
LiquidCrystal_I2C.h
Griechische, mathematische und elektronische Zeichen, sowie deutsche Umlaute
Da es ein IIC - oder auch I2C - Display ist, verläuft die Verkabelung mit nur zwei Anschlüssen recht einfach, neben 5 Volt und Ground. Die beide andere Anschlüsse sind SCL und SDA.
Am UNO R3 kommt
SCL an Pin A5
und
SDA an Pin A4 .
Die Ausgabe erfolgt in 2 Zeilen zu je 16 Zeichen.
Typisch Computer: er beginnt bei "0" zu zählen!
Das erste Zeichen beginnt also bei 0 - nicht bei 1! Die erste Zeile heißt Zeile 0, die zweite Zeile ist 1.
Vielleicht wird es jetzt verständlicher, was im Sketch "lcd.setCursor(12, 1);" bedeutet: das 13.te Zeichen in der zweiten Zeile .....
Die Adresse des Displays für den Anschluss am Arduino ist das Wichtigste. Wird einfach nur alles angeschlossen, funktioniert es zu 99% nicht.
Da jedes Display eine unterschiedliche Adresse hat, kann man diese auch auslesen. Dies geht am Besten mit einem kleinen Sketch:
In jedem Sketch werden alle möglichen Adressen versucht auszulesen. Antwortet ein angeschlossenes z.B. Display mit seiner Adresse, wird diese am Seriellen Monitor angezeigt.
Hier nun ein kleiner Sketch:
// lcd-2x16a.ino #include <Wire.h> // Wire Bibliothek einbinden #include <LiquidCrystal_I2C.h> // Vorher hinzugefügte LiquidCrystal_I2C Bibliothek einbinden LiquidCrystal_I2C lcd(0x27, 16, 2); // "0x27" ist die Adresse vom 2zeiligen Display // Hier wird festgelegt um was für einen Display es sich handelt. // Hier ist es 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(0x3F, 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. // Es bedeutet (0,0) das erste Zeichen in der ersten Zeile, // da der Computer bei "0" anfängt zu zählen .... lcd.print("abcdefghijklmnop"); // Erste Zeile mit 16 Zeichen gefüllt lcd.setCursor(0, 1);// In diesem Fall bedeutet (0,1) das erste Zeichen in der zweiten Zeile. lcd.print("01234567890"); // Zweite Zeile mit 11 Zeichen gefüllt lcd.setCursor(12, 1);// Hier bedeutet (12,1) das zwölfte Zeichen in der zweiten Zeile. lcd.write(0xE1); // ae = ä lcd.write(0xEF); // oe = ö lcd.write(0xF5); // ue = ü lcd.write(0xE2); // scharfes s = ß }
2 x 16 Zeichen mit deutschen Umlauten
Griechische, mathematische (∑) und elektronische Zeichen, wie z.B. µ und Ω
Deutsche Umlaute - Extern: https://werner.rothschopf.net/202003_arduino_liquid_crystal_umlaute.htm
Deutsche Umlaute - Extern: https://www.mikrocontroller.net/topic/293125