Hier im Forum habe ich erklärt bekommen, wie ich mit unsigned long long weiter rechnen kann.
Theoretisch zumindest.
Jetzt ist aber map() mit ihm Spiel und ich komme einfach nicht darauf, wo mein Fehler ist.
Wo muss ich welche Variablenart einsetzen? Mit Versuch und Irrtum komme ich auch nicht weiter.
Und kann ich innerhalb der map Funktion einen Mindeswert für das Ergebnis festlegen, oder nehme ich dazu eine If() Funktion?
In diesem Fall sollte Soll nicht kleiner werden als Sollmin,
Könnt Ihr mir mit diesen beiden Dingen auf die Sprünge helfen?
//sinkende Temperatur über lange Zeit
unsigned long long Rest = 0;
unsigned long long Start = 0;
unsigned long long Soll = 0;
unsigned long Sollmin = 2400; //24.00°C
unsigned long Sollmax = 2950; //29.50°C
unsigned long long Programmdauer = 15*(60*60*1000ULL); //15 Stunden
float Solltemperatur = 0;
void setup()
{
Serial.begin(9600);
Serial.println("Serial Start");
Start = millis(); // nur der Vollständigkeit halber
}
void loop()
{
Rest = (Programmdauer - (millis()-Start));
Soll = map(Rest, 0, Programmdauer, Sollmin, Sollmax);
Solltemperatur = Soll/100.00;
Serial.println(Solltemperatur);
delay(5000);
}