Sonderzeichen µ im I2C-Modul

Hallo allerseits,

ich möchte auf ein HD44780 1602 LCD Modul ein µ darstellen. Angesteuert wird das Modul mit einer I2C Schnittstelle. Bord ist ein UNO. Funktioniert alles soweit, ich möchte aber ein µ auf den Display haben. Das Zeichen sollte im Zeichensatz unter der Adresse 1100100 vorhanden sein.
Kennt einer auf die Schnelle die entsprechende Ansteuerung? Das würde mir sehr Helfen (wenn er es mir dann auch noch verrät).

M.f.G.

Hans-Ulrich

https://werner.rothschopf.net/202003_arduino_liquid_crystal_umlaute.htm

Hallo,

in dem Link scheint die Lösung für mein Problem zu finden sein. Muss ich mich mal durch kämpfen.
Vielen Dank.

M.f.G.

Hans-Ulrich

Versuchˋs mal mit:

lcd.print (char(0xE4));
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
  Serial.begin(115200);
  Serial.println(F("Start..."));
  lcd.begin();
  lcd.print('\xE4');

}

void loop()
{
}

ich benutze eine, die .begin benutzt, wenn deine .init nimmt, musste das ändern.

CreateChar: https://www.arduino.cc/en/Reference/LiquidCrystalCreateChar
Online creator: https://maxpromer.github.io/LCD-Character-Creator/

@ Koepel
Völlig unnötig. Es sind schon einige Sonderzeichen im Zeichensatz enthalten. Die kann man nur nicht direkt eingeben weil sie nicht Teil des Standard ASCII Satzes sind

lcd.print("µ");

mit meiner Library sollte eigentlich problemlos funktionieren. Ansonsten unter 0xE4 ist das Zeichen in den Standard A00 ROMs normalerweise vorhanden.

1 Like

Den HC44780 gibt es in haupfsächlich 2 Zeichensätzen könnte aber auch sehr selten einen personalisierten Zeichensatz haben. Die ersten 127 Zeichen sind (fast) Ashii die anderen sind je nach Version ein Japanische Schriftsatz (HD44780A00); europäisch Sonderzeichen (HD44780A02) oder Custom (HD44780Bxx).

Du kannst einfach den Wert des Zeichens senden um dieses darzustellen.
beim A00 ist µ auf 11100100 in hex 0xE4 beim A02 Zeichensatz auf 10110101 in 0xB5.
Andererseita kann man 8 Zeichen (von 0 bis 7) selbst definieren.

Wie man das macht schaust Du in den Beispielen der Bibliothek.

Grüße Uwe

Hallo allerseits,

habe gerade und lcd.print (char(0xE4)); und lcd.print('\xE4'); ausprobiert. Funktionieren beide, vielen Dank.
Jetzt kann ich mein kleines Projekt abschließen. Es geht um ein Kondensatormessgerät für einen Bereich von 100 nF bis 10 mF. Jedes mal muss ich eine Lupe nehmen, um die Werte auf den Bauelementen zu lesen. Das hat sich jetzt hoffentlich erübrigt.
Eine vernünftige Anzeige, Wert und Maßeinheit, war der letzte Schritt. Nur eine Zahlengruppe hat mir nicht gefallen.
Die Links habe ich mir alle gespeichert.
Nochmals vielen Dank für die Hilfe.

M.f.G.

Hans-Ulrich

So sicher wäre ich mir nicht. Ich würde mich nicht so sehr auf den gemessenen Wert verlassen sondern diesen in Relation mit dem Sollwert betrachten.
Wenn zB ein Kondensator 1,2µF hat aber 10µF sollwert würde ich den Wegschmeißen und nicht als µF Kondensator verwenden.

Aber einen Kondensator in einem Haufen zu suchen funktioniert die Meßmethode. Dann aber mal optich nachlesen.

Grüße Uwe

Hallo,

Den Effekt habe ich auch schon gesehen, zwar nicht so krass, hat mir aber am Anfang Kopfschmerzen gemacht. Ich hatte die Illusion, dass der aufgedruckte Wert mit dem gemessenen übereinstimmen sollte. War aber ein Trugschluss. Ich hatte mir einen Satz Elkos gekauft. Selbst in einer Charge gab es deutliche Unterschiede. Interessant sind auch Keramische Kondensatoren. Wenn man sie anfasst, z.B. beim Einstecken, verändern sie drastisch ihren Wert. Man muss dann warten, bis sie wieder Raumtemperatur haben.

M.f.G.

Hans-Ulrich

Eklos haben Tolleranzen von +80% und -20%. Da wundert es mich nicht daß nicht alle gleich sind. Wenn Du eine Widerstand ( Finger) paralell zum Kondensator schließt veränderst Du die Messung.

Nach welchem Funktionsprinzip funktioniert Deine Kapazitätsmessung?

Grüße Uwe

Hallo Uwe,

ich messe die Zeit, die benötigt wird, um den Kondensator auf 63 % der Ladespannung zu laden.
Die Kapazität ist dann T/R. Der Ladewiderstand beträgt 10 K. Bei kleineren Werten wird 10 mal gemessen und der Mittelwert gebildet.
Das mit den Fingern ist die Temperaturänderung. Die Messung erfolgt nicht sofort beim Einstecken sondern nach dem drücken einer Starttaste. Das hat sich als günstiger erwiesen. Wenn man sofort misst, ist die erste Messung meistens stark daneben. Das wirkt sich besonders bei den großen Werten negativ aus.

M.f.G.

Hans-Ulrich

Kondensatoren sind eigentlich gar nicht groß Temperaturabhängig. Mit den Fingern kannst Du sie auch nur um maximal 10°C erwärmen (von 20°C auf 30°C).

Du brauchst eine Konstantstromquelle und nicht einen Widerstand der den Strom begrenzt. Der Strom hängt von der Spannung des Kondensators ab.

Grüße Uwe

Ist ja auch beides dasselbe. Beide Aufrufe machen (unabhängig davon, was lcd überhaupt ist) lcd.write(0xE4);

Hallo allerseits,

@ Michael

ich bin immer noch beim lernen, und das wird wohl noch eine Weile so bleiben.

@ Uwe

Bei den kleinen Keramischen Kondensatoren (Nano-Bereich) an denen ich das ausprobiert habe, ist dieser Effekt sehr deutlich. Wie weit man das verallgemeinern kann, weiß ich nicht.
Ich hatte erst einen Fehler im meinen Aufbau vermutet, bis ich die eigentliche Ursache erkannt hatte.

Jetzt zu den Ladekurven. Lade ich einen Kondensator mit einer Konstantstromquelle auf 1 V, ergibt sich aus Strom und Zeit die Ladung und damit die Kapazität (oder umgedreht). Da hast du recht. Das ist aber nur eine Möglichkeit um die Kapazität zu messen. Eine andere findest du hier:
https://wetec.vrok.de/rechner/cclad.htm
Genau nach dieser Methode funktioniert mein Aufbau.

M.f.G.

Hans-Ulrich