Ciao e benvenuto al nostro articolo sul blog oggi.
Qualche giorno fa, vi abbiamo presentato un Inserisci mostrato come emettere caratteri auto-creati come umlauts su un display 1602 o 2004 LC.
Tuttavia, la tabella dei caratteri pubblicata contiene già i caratteri per "" e "a". Per molte applicazioni, queste sarebbero sufficienti.
Tuttavia, poiché la tabella non è conforme allo standard UTF-8, questi caratteri non possono essere facilmente emessi.
Tuttavia, possiamo istruire il chip direttamente a emettere un carattere specifico tramite una cosiddetta sequenza di escape.
Una sequenza di escape è una combinazione di caratteri nell'informatica tecnica che non rappresenta il testo, ma viene intercettata dal dispositivo ed esegue una funzione speciale.
In genere, inizia con una barra rovesciata, seguita da un numero.
Ciò consente ai caratteri menzionati inizialmente di essere emessi come segue:
Lcd.Stampare("XE1"); emette un Lcd.Stampare("XEF"); dà un . Lcd.Stampare("XF5"); dà un Lcd.Stampare("XE2"); dà un' Lcd.Stampare("XDF"); emette un Lcd.Stampare("XE4"); emette un Lcd.Stampare("XF4"); emette un
Per terminare una sequenza di escape, è possibile inserire una barra rovesciata più ampia alla fine. Ad esempio, per utilizzare l'output "Cibo: 23 gradi centigradi" sul display, è possibile utilizzare la seguente ortografia:
Lcd.Stampare("K xF5"che: 23 xDF-C");
Speriamo che i nostri suggerimenti per la corretta visualizzazione di caratteri speciali e umlaut sui display LC si riveleranno utili nei vostri progetti e attendiamo con ansia il vostro feedback.
Vi auguro ogni successo nei vostri progetti e vi dico addio al prossimo contributo.
Il tuo Markus Neumann
5 commenti
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
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
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
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
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