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