Serieller Monitor
Im Seriellen Monitor werden Umlaute, grafische Symbole und Sonderzeichen bei der Anweisung Serial.print() nicht immer korrekt dargestellt.
Verwende in diesem Fall stattdessen die Unicode-Zeichen:
| Zeichen | Unicode |
|---|---|
| ä | \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
}
Weitere 🔗Geometrische Symbole (externer Link abgerufen am 17.04.24)
LCD
Auf einem LCD müssen sogenannte Escape-Sequenzen verwendet werden:
| Zeichen | Escape-Sequenz dezimal | Escape-Sequenz hexadezimal |
|---|---|---|
| ä | \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
| Zeichen | Hex-Code | Dezimal-Code |
|---|---|---|
| ä | 0×84 | 132 |
| ö | 0×94 | 148 |
| ü | 0×81 | 129 |
| Ä | 0x8e | 142 |
| Ö | 0×99 | 153 |
| Ü | 0x9a | 154 |
| ß | 0xe0 | 224 |
| ° | 0xf7 | 247 |
| α | 0xdf | 223 |
| π | 0xe2 | 226 |
| Ω | 0xe9 | 233 |
| Σ | 0xe3 | 227 |
| € | 0xed | 237 |
| | | 0xad | 173 |
// 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
Bibliothek Adafruit_SSD_1306

| Zeichen | Hex-Code | Dezimal-Code |
|---|---|---|
| ä | \x84 | 132 |
| ö | \x94 | 148 |
| ü | \x81 | 129 |
| Ä | \x8e | 142 |
| Ö | \x99 | 153 |
| Ü | \x9a | 154 |
| ß | \xe1 | 224 |
| ° | \xf8 | 248 |
| α | \xe0 | 223 |
| π | \xe3 | 227 |
| Ω | \xea | 234 |
| Σ | \xee | 238 |
| € | \xee | 237 |
| | | \x7c | 124 |
| { | \x7b | 123 |
| } | \x7d | 125 |
# 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();
}
Bibliothek u8g2

Die Schriftarten, die mit tf, te, mf und me enden, verwenden den erweiterten ASCII-Zeichensatz. Du musst im setup-Teil UTFPrint einschalten.

#include "U8g2lib.h"
// 0,96 Zoll SSD1306 Frame-Buffer
U8G2_SSD1306_128X64_NONAME_F_HW_I2C oled(U8G2_R0);
void setup()
{
oled.begin();
// Schriftart
oled.setFont(u8g2_font_helvR12_tf);
oled.clearDisplay();
oled.enableUTF8Print();
}
void loop()
{
oled.setCursor(0, 20);
oled.print("Ä Ü Ö ä ö ü ß");
oled.setCursor(0, 40);
oled.print("° Ø © ¦ · ½ ¼ ¾");
oled.setCursor(0, 60);
oled.print("@ « » ± ² ³ ×");
// Inhalt des Puffers senden, anschließend löschen
oled.sendBuffer();
oled.clearBuffer();
}
Letzte Aktualisierung: