Go Down

Topic: My (Einheit) auf Serial Display schreiben? (Read 67 times) previous topic - next topic

Andreas_R

Hallo,

für einen Leitfähigkeitssensor möchte ich einfach den aktuellen Messwert auf dem Serial Monitor anzeigen lassen.
Das funktioniert soweit auch schon ganz gut.
Jetzt wäre noch schick wenn da die Einheit dabei stehen würde.
Leider heißt die "mykro Siemens pro Zentimeter", also "myS/cm".
Statt "my" sollte da halt der griechische Buchstabe my stehen, aber ich bekomme das nicht einmal hier hin.

Viele Grüße,
Andy

Code: [Select]
int sensorPin = 15; // hier Pin eintragen an dem der Sensor angeschlossen ist
                    // 15 entspricht Analog Pin 1
int sensorValue = 0;
int Leitwert = 0;
 
void setup() {
 
  Serial.begin(9600);   // Hier Baudrate eintragen, muss dem Wert des Serial
                        // Monitor entsprechen !
}
void loop() {
  sensorValue = analogRead(sensorPin);
  Leitwert = sensorValue * -33,8 + 38189;
Serial.print(Leitwert);
Serial.println("myS/cm");
  delay(10*1000); // Messintervall (in ms)
}

michael_x

So etwa "µS/cm"  ?

Hier im Forum sollte unicode kein Problem sein.
Beim SerialMonitor eher schon. Sende doch mal ein 'µ' an den Arduino und guck, was da ankommt.

Könnte ein 0xB5 sein im windows-1252 Ansi - Zeichensatz sein.

(Früher haben wir zur Not schon mal ein 'u' genommen, aber schick ist was anderes)

jurs

#2
Nov 03, 2014, 11:22 am Last Edit: Nov 03, 2014, 11:27 am by jurs
"myS/cm".
8-Bit Computer arbeiten bei der Ausgabe seit jeher mit 8-Bit Zeichentabellen.
Einheitlich genormt sind davon als "ASCII-Zeichensatz" sogar nur 7-Bits, und abzüglich von 32 Steuerzeichen-Codes verbleiben als geringster einheitlich darstellbarer Zeichensatz die ASCII-Tabelle mit Zeichencodes von 32 bis 127. Das µ-Zeichen gehört nicht dazu.

Die Zeichen von 128 bis 255 ergeben zwar auch Zeichencodes, aber abhängig vom Betriebssystem und der ggf. auf diesem Betriebssystem verwendeten Zeichentabelle bedeuten unterschiedliche Zeichencodes unterschiedliche Zeichen.

Auf einer Windows-Standardkonfiguration bei Verwendung des Arduino-Seriellen-Monitors bekommst Du das µ-Zeichen wie von Michael beschrieben mit dem Hex-Code B5, also im Code beispielsweise:
Code: [Select]

  Serial.println(" \xB5S/cm");  


Ich würde mich allerdings nicht darauf verlassen, dass dies bei allen Betriebssystemen und mit allen seriellen Terminalprogrammen bei allen Konfigurationseinstellungen der Fall ist.

Der kleinste gemeinsame Nenner bei 8-Bit Computing ist die Verwendung der ASCII-Tabelle mit Zeichencodes bis 127. Dafür hat sich unter Wissenschaftlern und Ingenieuren der Kleinbuchstabe "u" als Ersatzzeichen für das "µ" etabliert, so dass im Prinzip in einer Tabelle auch das möglich ist:
Code: [Select]

  Serial.println(" uS/cm");  

wenn Du in einem erläuternden Text angibst, dass "uS" für "Mikro-Siemens" steht. Dies hätte dann beispielsweise auch den Vorteil, dass es auf einem LCD-Display genau so gemacht werden kann. Denn da Dein LCD-Display das µ-Zeichen nicht bei 0xB5 sitzen hat sondern dafür einen anderen Code verwendet, müßtest Du Dir für Dein 8-Bit LCD-Display natürlich den Code für "µ" heraussuchen und senden, den das betreffende LCD-Modul für "µ" verwendet.

Go Up