Bonjour et bienvenue à notre article de blog aujourd’hui.
Il y a quelques jours, nous vous avons présenté un Publier montré comment produire des caractères auto-créés tels que umlauts sur un écran LC 1602 ou 2004.
Cependant, le tableau des personnages publié là contient déjà les caractères pour "''" et "a". Pour de nombreuses applications, ce serait suffisant.
Cependant, parce que la table n’adhère pas à la norme UTF-8, ces caractères ne peuvent pas être facilement sortie.
Cependant, nous pouvons instruire la puce directement pour produire un personnage spécifique via une séquence d’évasion dite.
Une séquence d’évasion est une combinaison de caractères dans l’informatique technique qui ne représente pas le texte, mais est intercepté par l’appareil et effectue une fonction spéciale.
Typiquement, il commence par une barre oblique inverse, suivie d’un certain nombre.
Cela permet aux personnages mentionnés initialement d’être la sortie comme suit:
Lcd.Imprimer("XE1"); sorties d’un Lcd.Imprimer("XEF"); donne un Lcd.Imprimer("XF5"); donne un Lcd.Imprimer("XE2"); donne un Lcd.Imprimer("XDF"); sorties a Lcd.Imprimer("XE4"); sorties d’un Lcd.Imprimer("XF4"); sorties d’un
Pour mettre fin à une séquence d’évacuation, vous pouvez insérer un backslash plus large à la fin. Par exemple, pour utiliser la sortie "Nourriture : 23 oC" sur l’écran, vous pouvez utiliser l’orthographe suivante:
Lcd.Imprimer("K xF5"che: 23 xDF-C");
Nous espérons que nos conseils pour afficher correctement des caractères spéciaux et des umlauts sur les écrans LC s’avéreront utiles dans vos projets et se réjouissent de vos commentaires.
Je vous souhaite beaucoup de succès dans vos projets et dire au revoir à la prochaine contribution.
Le vôtre Markus Neumann
5 commentaires
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