Gast
#4791537
Nabend
Mein kleines Programm soll zwei DS18b20 Temperatursensoren auslesen und
die Werte zusammen mit den Sensoradressen in Variablen speichern.
Dafür habe ich global 4 Variablen definiert:
// globale Variablen
String Temp_1;
String Temp_1_ID;
String Temp_2;
String Temp_2_ID;
Diese sollen in der folgenden Funktion mit Werten gefüllt werden:
int readTemp()
{
// Temperatursensoren auslesen
sensors.requestTemperatures();
float t1 = sensors.getTempC(Sensor_1);
float t2 = sensors.getTempC(Sensor_2);
// float in String umwandeln // geht das einfacher?
char Temp_1[6];
String str;
str = String(t1);
str.toCharArray(Temp_1, 6);
char Temp_2[6];
String strt;
strt = String(t2);
strt.toCharArray(Temp_2, 6);
// Device Adress
Temp_1_ID = sensors.getAddress(Sensor_1, 0);
Temp_2_ID = sensors.getAddress(Sensor_2, 1);
}
Im loop möchte ich jetzt gerne die Funktion aufrufen und mit den Werten
in den Variablen weiterarbeiten können.
Jetzt erstmal nur über den seriellen Monitor ausgeben:
readTemp();
Serial.print("1 ");
Serial.println(Temp_1_ID);
Serial.print("2 ");
Serial.println(Temp_1);
Serial.print("3 ");
Serial.println(Temp_2_ID);
Serial.print("4 ");
Serial.println(Temp_2);
Die Ziffer 1-4 dienen nur der Orientierung.
Die Ausgabe sieht wie folgt aus:
1 1
2
3 1
4
Wenn ich die Variablen innerhalb der Funktion "printen" lasse,
funktioniert es aber.
Ist mein Vorgehen falsch?