Wenn ein Zeichen nicht existiert mußt Du es selbst definieren. Ein GLCD wird nur mit Pixel angesteuert. Der Zeichensatz ist diesem Fall im Kontroller gespeichert, der die I2C Schnittstelle bereitstellt. Du kannst aber einzelne Pixel setzen. Setze einfach die Pixel die zusammen ein ° ergeben.
maverick1509 das ist ein Grafik LCD mit einem extra programmierten µController für das I2C interface und nicht ein LCD- Modul mit dem HD44780 Controller.
uwefed:
maverick1509 das ist ein Grafik LCD mit einem extra programmierten µController für das I2C interface und nicht ein LCD- Modul mit dem HD44780 Controller.
Dein Vorschlag funktioniert leider nicht.
Grüße Uwe
ok, hab ich erst jetzt gelesen. Wird wohl daran liegen.
The module is controlled using ASCII characters. The character decimal 254 (0xFE) is acommand prefix. Any data sent to the GLCD-FLEXEL that is not prefixed by the command prefix (0xFE) will be displayed as chars on the LCD.
NOTE:
To display the char on LCD, just send its ASCII number, 0x20 to 0x7F displays the standard set of characters. 0xFE is reserved for function command.
Also die Zeichen von 32 bis 127 stellt das Display sicher dar. Die zitierte Textstelle läßt aber Intepretationsspielraum was mit den Zeichen von 128 bis 253 passiert.
die Textstelle
The SMALL, MEDIUM and LARGE fonts include ASCII characters from 0x20 (“Space”) to 0x7E (“~”). The BIG DIGIT font includes ASCII characters from 0x20 (“Space”) to 0x3E (“>”).
beseitigt alle Zweifel, daß der erweiterten ASHII-Zeichensatz (Code 128 bis 255) vieleicht doch unterstützt wird.
Du mußt das °-Zeichen also pixelweise malen oder einen kleinen Kreis mit LCD.circle() zeichnen.
So, falls mal jemand auch dieses Problem noch hat, wie ich Anfänger gg:
Mit einem normalen LCD geht es so, wie schon oben beschrieben: 'Temp. \337C " (das Temp. ist jetzt nur als Bsp.)
Evtl. sollte man drauf achten, dass die Stellen-Anzahl mit der im Display stimmt.
Es wird dann so angezeigt: 'Temp. 27 °C' Die Zeichenanzahl für '\337' ist nur eine im Display.
Evlt. liegt's noch an der library, ich verwende die 'LiquidCrystal.h'
Das LCD ist das LCM1602A.
Und einen Arduino Uno verwende ich.
Danke an dieses Forum, hat mir in diesem Fall schon geholfen! So wie es sein soll.
schreibe dir eine for Schleife die im Sekundentakt oder länger alle Zeichen vom Displayzeichensatz auf dem Display anzeigt.
Die genormten Zahlen und Buchstaben vom ASCII Code kannste ja überspringen.
Entweder es ist im Displayzeichensatz enthalten nur an anderer Stelle oder nicht.
Ich stehe irgendwie am Schlauch Ich kriege bei dem Programm nicht die Sonderzeichen, sondern das "i" wir einfach nur ausgegeben anstatt dem ASC-Zeichen
void loop() {
if (i < 374) {
i++;
lcd.setCursor(0, 3);
lcd.print(" ");
lcd.setCursor(0, 3);
lcd.print(i);
lcd.print(" = ");
lcd.print(" \i"); //--- Ausgabe des ASC-Zeichens ---
delay (3000);
}
}
Sonderzeichen bzw. ASCII Code mit Serial.write(x) bzw. lcd.write(x) ausgeben. Vielleicht ist das der grundlegende Fehler, weshalb auch 0xDF nicht funktionierte.
Die Ausführungszeichen sind an der Stelle ebenso falsch. Wenn dann so für die Wertausgabe von i.