Umlau­te und Sonderzeichen

Lese­zeit: 3 Minu­ten

Seri­el­ler Monitor

Im Seri­el­len Moni­tor wer­den Umlau­te, gra­fi­sche Sym­bo­le und Son­der­zei­chen bei der Anwei­sung Serial.print() nicht immer kor­rekt dar­ge­stellt.
Ver­wen­de in die­sem Fall statt­des­sen die Unicode-Zeichen:

Zei­chenUni­code
ä\u00e4
Ä\u00c4
ö\u00f6
Ö\u00d6
ü\u00fc
Ü\u00dc
ß\u00df
\u20ac
Σ\u2211
©\u00a9
×\u00d7
Ø\u00d8
α\u03b1
β\u03b2
γ\u03b3
δ\u03b4
ε\u03b5
°\u00b0

So sieht es aus:

void setup()
{
  // Seriellen Monitor starten
  Serial.begin(9600);
  
  // auf serielle Verbindung warten
  while (!Serial);
  delay(1000);

  // Buchstaben Sonderzeichen
  Serial.println("\u00e4 \u00c4 \u00f6 \u00d6 \u00fc \u00dc \u00df");
  Serial.println();

  // Symbole
  Serial.println("\u20ac \u2211 \u00a9 \u00d7 \u00d8 \u03b1 \u03b2 \u03b3 \u03b4 \u03b5");
}

void loop()
{
  // bleibt leer, das Programm läuft nur einmal
}

Wei­te­re 🔗Geo­me­tri­sche Sym­bo­le (exter­ner Link abge­ru­fen am 17.04.24)

LCD

Auf einem LCD müs­sen soge­nann­te Escape-Sequen­zen ver­wen­det werden:

Zei­chenEscape-Sequenz dezi­malEscape-Sequenz hexa­de­zi­mal
ä\341\xE1
ö\357\xEF
ü\365\xF5
ß\342\xE2
°\337\xDF
Σ\366\xF6
Ω\364\xF4
|\174\x7C
{\173\x7B
}\175\x7D
\176\x7E
\177\x7E
\350\xE8
@\100\x40
#\43\x23
\245\xA5
\363\xF3
π\367\xF7
#include "LCDIC2.h"

// 4-zeiliges LCD
LCDIC2 lcd(0x27, 20, 4);

void setup() 
{
  // LCD starten
  lcd.begin();

  // Cursor "verstecken"
  lcd.setCursor(false);

  // Ausgabe auf dem LCD
  // Cursor auf Position 0 in Zeile 0 setzen
  lcd.setCursor(0, 0);
  lcd.print("Sonderzeichen:");
  lcd.setCursor(0, 1);

  // ä ö ü ß
  lcd.print("\341 \357 \365 \342");

  // @ ° Σ Ω |{ } • → ← √ ∞ π 
  lcd.setCursor(0, 2);
  lcd.print("\100 \337 \364 \173 \175 \176 \177 \350 \363 \367");
}

void loop() 
{
  // bleibt leer, Programm läuft nur einmal  
}

TFT

Zei­chenHex-CodeDezi­mal-Code
ä0×84132
ö0×94148
ü0×81129
Ä0x8e142
Ö0×99153
Ü0x9a154
ß0xe0224
°0xf7247
α0xdf223
π0xe2226
Ω0xe9233
Σ0xe3227
0xed237
|0xad173
  // Beispiele
  // Großstädte
  tft.println();
  tft.print("Gro");
  tft.write(0xe);
  tft.print("st");
  tft.write(0x84);
  tft.print("dte");

  // Düsseldorf
  tft.println();
  tft.print("D");
  tft.write(0x81);
  tft.print("sseldorf");

  // Köln
  tft.println();
  tft.print("K");
  tft.write(0x94);
  tft.print("ln");;

OLED

Zei­chenHex-CodeDezi­mal-Code
ä\x84132
ö\x94148
ü\x81129
Ä\x8e142
Ö\x99153
Ü\x9a154
ß\xe1224
°\xf8248
α\xe0223
π\xe3227
Ω\xea234
Σ\xee238
\xee237
|\x7c124
{\x7b123
}\x7d125
# include <Adafruit_GFX.h>
# include <Adafruit_SSD1306.h>

# define BildschirmBreite 128  
# define BildschirmHoehe 64  

# define OLED_RESET 4  

// Adresse: 0x3C oder 0x3D
# define Adresse 0x3c  

// Name des Displays und Startparameter
Adafruit_SSD1306 oled(BildschirmBreite, BildschirmHoehe, &Wire, OLED_RESET);

void setup() 
{
  // OLED starten
  oled.begin(SSD1306_SWITCHCAPVCC, Adresse);

  // Bildschirm löschen
  oled.clearDisplay();

  // Schriftfarbe und -größe
  oled.setTextColor(WHITE);

  // Textgröße (1-3)
  oled.setTextSize(2);

  // Codepage auf 437 setzen -> Sonderzeichen anzeigen
  oled.cp437(true);

  // Display dunkler stellen
  oled.dim(true);
}

void loop() 
{
  oled.clearDisplay();
  oled.setCursor(0, 0);
  oled.write("\x84");  // ä -> 132
  oled.write("\x94");  // ö -> 148
  oled.write("\x81");  // ü -> 129
  oled.write("\x8e");  // Ä -> 142
  oled.write("\x99");  // Ö -> 153
  oled.write("\x9a");  // Ü -> 154
  oled.write("\xe1");  // ß -> 224
  oled.write("\xe0");  // alpha -> 223
  oled.write("\xe4");  // Summenzeichen -> 228
  oled.write("\xe3");  // PI -> 227
  oled.write("\xea");  // Ohm -> 234
  oled.write("\xed");  // Durchschnitt -> 237
  oled.write("\xee");  // € -> 238
  oled.write("\x10");  // Pfeil links -> 16
  oled.write("\x11");  // Pfeil rechts -> 17
  oled.write("\x12");  // Pfeil oben und unten -> 18
  oled.write("\x7b");  // { -> 123
  oled.write("\x7c");  // | -> 124
  oled.write("\x7d");  // } -> 125
  oled.write("\xf8");  // ° -> 248
  oled.display();
}

Serial.print() Serial.print()

Letzte Aktualisierung: März 19, 2025 @ 13:56