Tipp zum Artikel "Umlaute auf LCD" - AZ-Delivery

Hallo und willkommen zu unserem heutigen Blog Artikel.

 

Vor einigen Tagen haben wir Ihnen in einem Beitrag gezeigt, wie Sie selbsterstellte Zeichen wie z.B. Umlaute auf einem 1602 oder 2004 LC Display ausgeben können.

Die dort veröffentlichte Zeichentabelle beinhaltet jedoch bereits die Zeichen für "äöüß°µ" und "Ω". Für viele Anwendungen würden diese schon reichen.

Da sich die Tabelle jedoch nicht an den UTF-8 Standard hält, können diese Zeichen nicht ohne weiteres ausgegeben werden.

Über eine sogenannte Escape-Sequenz können wir jedoch den Chip direkt anweisen ein bestimmtes Zeichen auszugeben.

Eine Escape-Sequenz  ist eine Zeichenkombination in der technischen Informatik, die keinen Text repräsentiert, sondern vom Gerät abgefangen wird und eine Sonderfunktion ausführt.

Typischerweise fängt diese mit einem Backslash "\" an, gefolgt von einer zahl.

Damit können die anfangs erwähnten Zeichen wie folgt ausgegeben werden:

  

  lcd.print("\xE1"); // gibt ein ä aus
  lcd.print("\xEF"); // gibt ein ö aus
  lcd.print("\xF5"); // gibt ein ü aus
  lcd.print("\xE2"); // gibt ein ß aus
  lcd.print("\xDF"); // gibt ein ° aus
  lcd.print("\xE4"); // gibt ein µ aus
  lcd.print("\xF4"); // gibt ein Ω aus

Um einen Escape-Sequenz zu beenden, können Sie einen weiterne Backslash am Ende einfügen. Um zum Beispiel die Ausgabe "Küche: 23 °C" auf dem Display auszugeben, können Sie folgende Schreibweise verwenden:

 

 

  lcd.print("K\xF5\che: 23 \xDF\C");

Wir hoffen, dass unsere Tipps zur korrekten Darstellung von Sonderzeichen und Umlauten auf LC Displays sich bei Ihren Projekten als nützlich erweisen, und freuen uns auf Ihr Feedback.

Ich wünsche Ihnen viel Erfolg bei Ihren Projekten, und verabschiede mich bis zum nächsten Beitrag.

 

Ihr Markus Neumann

  

 

 

DisplaysSpecials

5 comments

DeitaGER

DeitaGER

Der Blog ist sehr hilfreich aber beim “%” – Zeichen (ASCII dez: 37 / hex: 25) → “\x25” → “\0×25”) bin ich damit gescheitert. Der Versuch eines Temp/Humi – Messers mit dem DHT11 und der LED Matrix MAX72xx erweist sich doch etwas schwieriger.
Das “%” wird als Steuerzeichen gewertet und die IDE weiß nicht, dass es zur Anzeige kommen soll.

Wilhelm Weniger

Wilhelm Weniger

Ich wollte nur statt “Hello word” den Text “Grüezi” am LCD ausgeben.
Das konnte ich dann wie folgt lösen:
#include
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
char Replace1 = 0xE1; //ä
char Replace2 = 0xEF; //ö
char Replace3 = 0xF5; //ü
String Hello = “Grüezi”;

void setup() {
lcd.begin(16, 2);
Hello.replace(“ä”,String(Replace1));
Hello.replace(“ö”,String(Replace2));
Hello.replace(“ü”,String(Replace3));
lcd.print(Meldung);
}
void loop() {
lcd.setCursor(0, 1);
lcd.print(millis() / 1000);
}

dieter gutmann

dieter gutmann

Ich verwende einen 1,3" OLED I²C Display
Arduino 2.0.1
und ESP32 Dev Module
In Windows10 gibt es unter Windows-Zubehör eine Zeichentabelle.
Wenn man mit der Maus auf ein Zeichen zeigt bekommt man den zughörigen HEX-Wert angezeigt.

Werner

Werner

Falls es jemanden interessiert: Ich habe mich daran gesetzt und die LCD Library so geändert, dass man nun im Fließtext wie gewohnt Umlaute verwenden kann. Also ein einfaches lcd.print(“Grüße aus Österreich”); ist möglich. Der Library findest du hier zum Download: https://werner.rothschopf.net/202003_arduino_liquid_crystal_umlaute.htm

Malke

Malke

Guten Abend,
der Hinweis hat mich weitergebracht. Deshalb ein herzliches Dankeschön !!!
Nun fehlt mir nur noch der Code für das große !Ü!

Gruss

Dietmar Malke

Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery