Hola y bienvenidos a nuestro artículo de blog hoy.
Hace unos días te tenemos en uno Contribución te mostró cómo crear tus propios personajes como Umlauts en una pantalla LC 1602 o 2004.
Sin embargo, la tabla de caracteres publicada allí ya contiene los caracteres para "äöüß ° µ" y "Ω". Para muchas aplicaciones, estas serían suficientes.
Sin embargo, dado que la tabla no cumple con el estándar UTF-8, estos caracteres no se pueden generar fácilmente.
Sin embargo, podemos usar la llamada secuencia de escape para dirigir el chip a la salida de un carácter específico.
Una secuencia de escape es una combinación de caracteres en ingeniería informática que no representa texto, pero es interceptada por el dispositivo y realiza una función especial.
Por lo general, esto comienza con una barra diagonal inversa "\" seguida de un número.
Los caracteres mencionados al principio se pueden generar de la siguiente manera:
lcd.imprimir("\ xE1"); // emite un ä lcd.imprimir("\ xEF"); // emite un ö lcd.imprimir("\ xF5"); // emite un ü lcd.imprimir("\ xE2"); // genera un ß lcd.imprimir("\ xDF"); // salidas a ° lcd.imprimir("\ xE4"); // genera un µ lcd.imprimir("\ xF4"); // emite un Ω
Para finalizar una secuencia de escape, puede insertar otra barra diagonal inversa al final. Por ejemplo, para generar "Cocina: 23 ° C"en la pantalla, puede usar la siguiente notación:
lcd.imprimir("K \ xF5 \ che: 23 \ xDF \ C");
Esperamos que nuestros consejos sobre la visualización correcta de caracteres especiales y diéresis en las pantallas LC resulten útiles en sus proyectos, y esperamos sus comentarios.
Les deseo buena suerte con sus proyectos y me despido hasta el próximo post.
Tuyo Markus Neumann
5 comentarios
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