Ich würde gerne ein eigenes Zeichen erstellen und dieses im CGRAM des Displays ablegen. Ich verwende die LiquidCrystal.h Bibliothek. Ich weiß, da kann man die Zeichen über Chars etc defenieren. Nur leider kann ich die Zeichen dann nicht als Buchstaben im Wort einfügen, sondern muss das jedes mal umständlich über lcd.write() machen. Das nervt, wenn man die Zeichen dauernd braucht!!!
Ich habe ein Beispiel-Programm im Internet gefunden, nur leider funktioniert das nicht, da es nicht direkt für Arduino geschrieben wurde....
Da kann man das Zeichen durch klicken erstellen und der Code wird auch generiert.
Nur leider kann ich die Zeichen dann nicht als Buchstaben im Wort einfügen, sondern muss das jedes mal umständlich über
Klar geht das!
lcd.print("Blah\x01" "blah");
oder:
lcd.print("Blah" "\x01" "blah");
Hier muss man nur die Teil-Strings trennen weil der Compiler sonst x01b als eine Zahl interpretieren will. Wenn nach der Zahl nichts von 0-f kommt, kann man das auch weglassen
Aduadu:
Kennt einer von euch ne Lösung?
Oder kann mir weiterhelfen, das Programm von Kalle auf die Arduino umzuschreiben?
Selbstdefinierte Zeichen kannst Du selbst definieren per lcd.createChar().
Mit dem Beispielprogramm zur LiquidCrystal-Library fängst Du am besten an.
Du kannst bis zu acht (0...7) selbstdefinierte Zeichen gleichzeitig definiert haben (z.B. im setup) und dann später im Programm gleichzeitig nutzen.
Du kannst insgesamt auch viel mehr als 8 verschiedene Zeichen nutzen, aber dann mußt Du die Zeichen innerhalb des Programms vor dem Anzeigen immer umdefinieren und dann anzeigen. Es können zu jedem Zeitpunkt nur 8 verschiedene selbstdefinierte Zeichen sein.
Per Hex- oder Octal-Codierung kannst Du diese Sonderzeichen nicht nur lcd.write, sondern auch mit lcd.print zusammen verwenden.
Nur bekomme ich es gerade nicht hin, die Zeichen auszugeben. Diese werden komplett ignoriert!!!!
Muss ich da die Hex 0x00 senden? Wenn ja, dann geht das nicht
Nur bekomme ich es gerade nicht hin, die Zeichen auszugeben. Diese werden komplett ignoriert!!!!
Muss ich da die Hex 0x00 senden? Wenn ja, dann geht das nicht
Die Codes von 1 bis 7 kannst Du innerhalb eines Strings als HEX oder OCT (octal) codieren und zusammen mit anderen Zeichen senden.
Den Code 0 kannst Du innerhalb eines Strings NICHT verwenden, da ein Nullzeichen in der Programmiersprache C/C++ für "Ende des Strings" steht. Das 0-Zeichen müßtest Du also extra per "write()" Aufruf senden.