Gandolf_Erzogel:
Vielen Dank für die Erklärung 
Vorsicht: Wenn das Code für eine Temperaturregelung ist, sind beide Codevarianten EXTREM KRITISCH!
Und das Problem liegt nicht darin, wo Du es gesehen hast, sondern das Problem ist die fehlende Hysterese beim Schalten.
Zur Erläuterung: Wenn Du in schneller Folge Temperaturen ausliest, dann ergeben sich an den Umschaltpunkten immer Messfolgen, die in der letzten Stelle springen. D.h. wenn Du bei Temperatur 22.000 bist und Temperaturen in Hundertstel Grad misst, dann könntest Du nacheinander messen:
19.990
20.000
19.990
20.000
19.990
20.000
19.990
19.990
19.990
20.000
Und wenn Du hundert solche Messungen in der Sekunde machst und mit Deiner Schaltlogik schaltest, dann schaltest Du (und zwar mit beiden Codes) einige zigmal pro Sekunde den Lüfter ein und aus.
Wenn Du ein mechanisches Relais angeschlossen hast, dann rattert das am Schaltpunkt unter Umständen los wie ein Maschinengewehr und ist in kürzester Zeit ruiniert.
Und wenn Du elektronisch schaltest, ist das ewige AN und AUS zigmal pro Sekunde für den Lüfter auch nicht gut.
Wenn der Lüfter die Temperatur nach dem Einschalten schnell runterkühlt, kann es auch zu einem intermittierenden Betrieb führen, d.h. Du mißt 20.000, schaltest den Lüfter ein, drei Sekunden später hast Du wieder 19.990 und der Lüfter geht aus. Dann schaltet er immer drei Sekunden an, drei Sekunden aus, drei Sekunden an, drei Sekunden aus etc.
Für ordentlich geschaltete Zweipunktregler ist es daher zwingend notwendig, eine Hysterese vorzusehen, d.h. einen Unterschied zwischen der Einschalttemperatur und der Ausschalttemperatur des Heiz- oder Kühlgeräts. Und in der Zwischenzone wird immer der letzte Schaltzustand beibehalten.
Beispielcode:
fVal = digitalRead(fan_airflowIn_Pin);
if (pValue >= "22.500") {
digitalWrite(fan_airflowIn_Pin, HIGH);
}
else if (pValue < "21.500"){
digitalWrite(fan_airflowIn_Pin, LOW);
}
Dann schaltet der Lüfter an, wenn 22.500 überschritten werden.
Und der Lüfter schaltet aus, wenn 21.500 unterschritten werden.
Und in der Zone dazwischen bleibt der Schaltzustand so, wie er zuletzt gesetzt war.
Insbesondere bei Verwendung mechanischer Relais ist eine nicht zu kleine Hysterese zwingend notwendig; Viele Relais sind ja laut Datenblatt nur für eine Million Schaltungen garantiert, und je häufiger ein mechanisches Relais schaltet, desto eher ist das Lebensende des Bauteils erreicht.
Bei verschleißfreier elektronischer Ein-/Ausschaltung kann die Hysterese geringer sein, aber sie muss mindestens so gross sein, dass sie oberhalb der bei Messungen "springenden letzten Stelle" liegt.