Pages: [1] 2   Go Down
Author Topic: "Grad"-Zeichen darstellen  (Read 1658 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 1
Posts: 135
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi!

Ich habe dieses Display:
http://web4robot.com/files/GLCD-FLEXEL.pdf

und möchte darauf das Grad-Zeichen "°" darstellen, welches ja leider nicht zur Standard ASCII-Tabelle gehört, sondern zu der Erweiterten.

Gibts ne Möglichkeit, dass Zeichen trotzdem darzustellen? Und wenn ja, wie!?

Danke Euch!

Gruß
Morris
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Grüße Uwe
Logged

Offline Offline
Sr. Member
****
Karma: 10
Posts: 361
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Morris,
ich hab das auch gemacht. Definiere das Zeichen:

byte Celsius[8] = {B11100,B10100,B11100,B0000,B00000,B00000,B00000,B00000}; lcd.createChar(0, Celsius);

Mit lcd.write((uint8_t)0); wird dann das Zeichen auf dem LCD-Display ausgegeben.

gruß
Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 135
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das geht scheinbar bei mir leider nicht:
Quote
error: 'class GLCDI2C' has no member named 'createChar'

Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 135
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also nur möglich, wenn man es "malt"?
Logged

Cloppenburg
Online Online
Edison Member
*
Karma: 30
Posts: 1463
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Nö.
So geht das auch: \337

Einfach so einfügen und schon haste ein "°"
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Offline Offline
Full Member
***
Karma: 1
Posts: 135
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wie???

"\337"
?

Und davor?
Logged

Cloppenburg
Online Online
Edison Member
*
Karma: 30
Posts: 1463
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

"Celsius: \337C" 
"Abk\365hlung"
"Erh\357hen"

reicht das als beispiel?
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Offline Offline
Full Member
***
Karma: 1
Posts: 135
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Leider nein  smiley-fat

Also bei
Code:
  lcd.print(337);
Wird "337" auf dem Display ausgegeben

bei
Code:
  lcd.print("337");
ebenfalls

und bei
Code:
  lcd.print("337C");
wird "337C" ausgegeben

bei
Code:
  lcd.print(337C);
gibt es den

Quote
error: invalid suffix "C" on integer constant


Bei
Code:
  lcd.print(\337);
Gibt es
Quote
error: stray '\' in program

Bei
Code:
   lcd.print("\337");
Wird nichts ausgegeben
« Last Edit: June 08, 2013, 03:32:22 pm by maeckes » Logged

Cloppenburg
Online Online
Edison Member
*
Karma: 30
Posts: 1463
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Such mal nach Octal.

Hier ein Beispiel
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Offline Offline
Full Member
***
Karma: 1
Posts: 135
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scheint bei mir nicht zu klappen.

Habe das Beispiel hier getestet
http://forum.arduino.cc/index.php?topic=143903.msg1141232#msg1141232

Code:
lcd.print("R\365cklauf");

Es wird dann einfach "Rcklauf" ausgegeben.
Logged

Cloppenburg
Online Online
Edison Member
*
Karma: 30
Posts: 1463
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Nicht Mensch, nicht Tier: Programmierer halt...

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In der Beschreibung http://web4robot.com/files/GLCD-FLEXEL.pdf die maeckes vom Display genannt hat steht:

Quote
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
Quote
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.

Grüße Uwe
« Last Edit: June 08, 2013, 06:05:34 pm by uwefed » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo maeckes,
Ich stand gestern Abend vor dem gleichen Problem. Hab dann im Netz folgendes gefunden:

lcd.write(0xDF)

Und schon funktionierts. ;-) hoffe ich konnte dir weiterhelfen.

Gruß, Leon
Logged

Pages: [1] 2   Go Up
Jump to: