Ergänzung vom 9. März 2018:
Weiter unten werden einige mützliche Funktionen der Bibliothek LiquidCrystal.h gezeigt - u.a. die Ausgabe von Umlauten in der folgenden Form lt. Datenblatt des HD44780:
lcd.write(0b11110101); //ü
lcd.write(0xf5); // ü
Es geht aber auch noch wesentlich eleganter...
Quelle: https://www.mikrocontroller.net/topic/293125
Arduino-Sketch:
// Ein LC-Display am Arduino
// Umlaute ausgeben https://www.mikrocontroller.net/topic/293125
// Ersetzungscode als Makros definieren:
#define UE "\365" // ü
#define AE "\341" // ä
#define OE "\357" // ö
#define SZ "\342" //ß
#include <LiquidCrystal.h> // ACHTUNG: Klammern verwenden!
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Ausgeben von Umlauten mittels folgender Methode:
lcd.print("Umlaute+SZ: " AE UE OE SZ); // Umlaute anzeigen auf LCD
delay(5000)
lcd.clear();
}
void loop() {
}
Beitrag vom November 2017:
Im folgenden Quellcode-Listing werden einige nützliche Befehle der Bibliothek LiquidCrystal.h angewendet.
Arduino-Sketch:
// LCD Demo mit:
// Ausgabe von Text in zwei Zeilen
// Exakte Positionierung von Text im Display
// Ausgabe des Wertes von Variablen
// Löschen des Displays
// Ausgabe von Umlauten und Sonderzeichen
// Display aus- und einschalten ohne "Datenverlust"
// Scrollen von Text im Display
// Autor: Niels Nikolaisen www.elektronik.nmp24.de
#include <
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// LCD starten
lcd.begin(16, 2);
// Ausgabe von Text in Zeile 1 und 2
lcd.setCursor(0, 0); // 1. Zeichen, 1. Zeile
lcd.print("Text in Zeile 1");
lcd.setCursor(0, 1); // 1. Zeichen, 2. Zeile
lcd.print("Text in Zeile 2");
delay(3000);
lcd.clear(); // Display löschen
delay(1000);
// Ausgabe von Text an einer definierten Position
lcd.setCursor(0, 0); // 1. Zeichen, 1. Zeile
lcd.print("Text ab Pos.10");
lcd.setCursor(10, 1); // 10. Zeichen, 2. Zeile
lcd.print("*TEXT*");
delay(5000);
lcd.clear(); // Display löschen
delay(1000);
// Ausgabe von Text und Variablen in einer Zeile
// Das braucht man z.B., um Messwerte auszugeben
lcd.setCursor(0, 0); // 1. Zeichen, 1. Zeile
lcd.print("Messwert = ");
int Messwert = 999;
lcd.setCursor(11, 0); // 11. Zeichen, 1. Zeile
lcd.print(Messwert);
delay(5000);
lcd.clear(); // Display löschen
delay(1000);
// Umlaute und Sonderzeichen ausgeben
lcd.setCursor(0, 0); // 1. Zeichen, 1. Zeile
lcd.print("Umlaute/Sonder-");
lcd.setCursor(0, 1); // 1. Zeichen, 1. Zeile
lcd.print("zeichen:");
// http://forum.arduino.cc/index.php?topic=143903.0
// https://de.wikipedia.org/wiki/HD44780
lcd.write(0b11110101); //ü
lcd.write(0xf5); // ü
lcd.write(0b11100001); // ä
lcd.write(0xe1); // ä
lcd.write(0b11101111); // ö
lcd.write(0xef); // ö
lcd.write(0xf4); // Omega / Ohmzeichen
lcd.write(0xff); // Schwarzes Kästchen
delay(5000);
lcd.clear(); // Display löschen
delay(1000);
// Ausgabe: "So können Sie Umlaute ausgeben"
// Etwas umständlich - aber es funktioniert
lcd.setCursor(0, 0); // 1. Zeichen, 1. Zeile
lcd.print("So k"); lcd.write(0xef); lcd.print("nnen Sie");
lcd.setCursor(0, 1); // 1. Zeichen, 2. Zeile
lcd.print("Umlaute ausgeben");
delay(5000);
lcd.clear(); // Display löschen
delay(1000);
// Display aus- und einschalten ohne Datenverlust
lcd.setCursor(0, 0); // 1. Zeichen, 1. Zeile
lcd.print("Blinken");
delay(1000);
lcd.noDisplay();
delay(1000);
lcd.display();
delay(1000);
lcd.clear(); // Display löschen
delay(1000);
// Text im Display scrollen - Zeile 1
// Das funktioniert leider nur für Texte mit max. 16 Zeichen
lcd.print("Display scrollen");
delay(1000);
// Den Text rechts verschwinden lassen:
for (int positionCounter = 0; positionCounter < 17; positionCounter++) {
// scroll one position right:
lcd.scrollDisplayRight();
}
delay(1000);
// Den Text von rechts hereinscrollen:
for (int positionCounter = 0; positionCounter < 17; positionCounter++) {
// scroll one position left:
lcd.scrollDisplayLeft();
delay(150);
}
delay(3000);
lcd.clear(); // Display löschen
delay(1000);
// Text im Display scrollen - Zeile 1 und 2 gleichzeitig
lcd.setCursor(0, 0); // 1. Zeichen, 2. Zeile
lcd.print("Scrollen Zeile 1");
lcd.setCursor(0, 1); // 1. Zeichen, 2. Zeile
lcd.print("Scrollen Zeile 2");
delay(1000);
// Den Text rechts verschwinden lassen:
for (int positionCounter = 0; positionCounter < 17; positionCounter++) {
// scroll one position right:
lcd.scrollDisplayRight();
}
delay(1000);
// Den Text von rechts hereinscrollen:
for (int positionCounter = 0; positionCounter < 17; positionCounter++) {
// scroll one position left:
lcd.scrollDisplayLeft();
delay(150);
}
delay(3000);
lcd.clear(); // Display löschen
delay(1000);
lcd.print("Und aus die Maus!");
delay(3000);
lcd.clear(); // Display löschen
}
void loop() {
}
.