Arduino Programmieren: Umwandeln von Datentypen

Bei der Programmierung müssen wir manchmal Datentypen umwandeln und wie du das in der Arduino IDE machst möchte ich dir in diesem Beitrag zeigen.

Arduino - Umwandeln von Datentypen
Arduino – Umwandeln von Datentypen

In der Arduino IDE programmierst du mit einer Art C/C++ daher kannst du auch die Funktionen / Möglichkeiten aus diesen Programmiersprachen nutzen, um Datentypen zu konvertieren (so nennt man das Umwandeln von Datentypen).

Wozu brauchen wir das Umwandeln von Datentypen eigentlich?

Nehmen wir an wir haben einen Sensor vom Typ DHTxx und lesen die Werte aus diesem mithilfe einer Bibliothek aus. Dann erhalten wir die Werte als Gleitkommazahl. Diesen Wert Bsp. „23,45“ möchten wir nun auf ein OLED Display anzeigen. Die Bibliotheken für Displays bieten verschiedene Funktionen, um Zeichenketten an bestimmten Positionen anzeigen zu lassen.

DIY IoT Wetterstation mit ESP8266 Microcontroller, DHT11 Sensor und 0,96" OLED Display
DIY IoT Wetterstation mit ESP8266 Mikrocontroller, DHT11 Sensor und 0,96″ OLED Display

Da aber eine Zahl, egal ob Gleitkommazahl oder ganze Zahl nicht einfach einer Zeichenkette zuweisen können, müssen wir diese konvertieren.

Konvertieren von Zahlen in Zeichenketten

In der Arduino Reference findest du eine Auflistung aller Funktionen, unter anderem auch Funktionen für das Umwandeln von Datentypen.

konvertieren von int in string

Das Umwandeln in Zeichenketten ist mithilfe des Objektes „String“ sehr einfach, denn dem Konstruktor wird der Zahlenwert (egal ob Gleitkommazahl oder ganze Zahl) übergeben und wir erhalten eine Zeichenkette zurück.

float temp = 3.14;
String strValue = String(temp);

Im Beitrag Arduino Programmierung: Ausgabe formatierter Strings / Zeichenketten habe ich dir bereits gezeigt wie du diese Zahlenwerte formatiert ausgeben kannst und somit ggf. vorhandene Nachkommastellen zu kürzen.

Umwandeln von Gleitkommazahlen in ganze Zahlen

Um Gleitkommazahlen in Ganzzahlen umzuwandeln, muss man bedenken das man entweder einfach eine Gleitkommazahl zu einer ganzen Zahl zuweist oder man wandelt diese korrekt um und erhält dann eine korrekt gerundete Zahl.

float fValue = 3.5;
//einfaches zuweisen einer Gleitkommazahl
int value = fValue;

//umwandeln einer Gleitkommazahl
int v = int(fValue);

Die Ausgabe auf der Konsole sieht in unserem Fall wie folgt aus:

Umwandeln von Zahlen
Umwandeln von Zahlen

Formatieren von Zahlen

Wenn wir Gleitkommazahlen in Zeichenketten umwandeln, dann können wir auch definieren nach wie viel Nachkommastellen abgeschnitten werden soll.

void setup() {
  Serial.begin(9600);
  float number = 3.1415926535;
  String value1 = String(number,1);
  String value2 = String(number,2);
  String value3 = String(number,3);
  String value4 = String(number,4);

  Serial.print("eine Nachkommastelle: ");
  Serial.println(value1);

  Serial.print("zwei Nachkommastellen: ");
  Serial.println(value2);

  Serial.print("drei Nachkommastellen: ");
  Serial.println(value3);

  Serial.print("vier Nachkommastellen: ");
  Serial.println(value4);
}

void loop() {}

Die Ausgabe auf der Konsole sieht in unserem Fall wie folgt aus:

Ausgabe formatierter Zahlen im seriellen Monitor der Arduino IDE
Ausgabe formatierter Zahlen im seriellen Monitor der Arduino IDE

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert