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:


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #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 |
|---|---|---|
| ä | 0x84 | 132 |
| ö | 0x94 | 148 |
| ü | 0x81 | 129 |
| Ä | 0x8e | 142 |
| Ö | 0x99 | 153 |
| Ü | 0x9a | 154 |
| ß | 0xe0 | 224 |
| ° | 0xf7 | 247 |
| α | 0xdf | 223 |
| π | 0xe2 | 226 |
| Ω | 0xe9 | 233 |
| Σ | 0xe3 | 227 |
| € | 0xed | 237 |
| | | 0xad | 173 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | // 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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | # 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.

🔗https://github.com/olikraus/u8g2/wiki/fntlist16#u8g2-font-list
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #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: