sitemap link mailform link home

Umlaute auf LCD

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.h> // ACHTUNG: Klammern verwenden!

// Festlegen der Pins für das LCD:
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() {

}

.

Letzte Änderung:
June 21. 2024 19:13:39
«    top    »