Hi Leute,
Ich, C++ ca.1%.
In meinem Code werden die Werte von 3 Temperatursensoren DS18B20 abgefagt.
Da die im selben Raum sind, möchte ich die Bauelemente- Differenzen ausgleichen.
Sensor 0 soll der Richtwert sein.
Erstmal der laufende Code (abgeleitet aus Beisp. im Netz):
void getTemperatures() {
sensors.requestTemperatures(); // Send the command to get temperatures
// Loop through each device, print out temperature data
for(int i=0;i<numberOfDevices; i++){
// Search the wire for address
if(sensors.getAddress(tempDeviceAddress, i)){
// Print the data
float tempC = sensors.getTempC(tempDeviceAddress);
dataMessage = dataMessage + "," + i + "," + tempC;
//xyz
Serial.print("Temperatur für device: ");
Serial.print(i,DEC);
Serial.print(" = ");
Serial.print(tempC);
Serial.println("°C");
}
}
}
Alles anzeigen
Zwischen float tempC... und dataMessage... (//xyz) möchte ich (für die Sensoren 1 und 2) IF- Anweisungen setzen, etwa so:
So daß ich die Sensoren 1 und 2 an den Sensor 0 händisch anpassen kann. Nicht schick, aber so daß ich es kapiere.
-ähem, "==" und "=" ist doch so ok?
Mein Problem ist, daß der Code unter den IF- Anweisungen nicht mehr ausgeführt wird, ab "dataMessage =...".
Muß ich alle unteren Anweisungen in jede IF- Abfrage extra setzen (bzw. eine Unterroutine daraus machen und jedesmal anspringen)?
Dann müßte ich ja auch für Sensor 0 was tun, der ja sonst garnicht beachtet wird?
Sorry für die Laienfrage. Zu IF erschlägt einen das Netz, aber verschachtelte Anweisungen... gibt es ja vielleicht nicht in C.
-übrigens, mit IF...ELSE ist das genauso.
Hans