{gelöst} - [Einsteiger] Temperatur zum Schalten - "flattern" verhindern

Hallo Leute !

Ich bin gerade dabei meine RGB-LED Temperaturanzeige auf eine Relais-Platine zu übertragen.

die ursprüngliche Schaltung (oder die eigentliche Schaltung) sieht einfach so aus:

if ( tempc < 22) { Blue(); }
if ( tempc > 23) { Green(); }
if ( tempc > 25) { Red(); }

die LED flackert an den Schaltwerten, bis nach weiterer Erwärumg (oder eben Abkühlung) des Temperatursensors.

Wie verhindert ihr das denn?

Danke für Tips!

Gruß
Chris

Du musst eine Hysterese – Wikipedia einbauen

wie MueThoS sagt:

if ( tempc <= 22) { Blue(); }
if ( tempc > 22 && tempc<25) { Green(); }
if ( tempc >= 25) { Red(); }

Du mußt mit Temperaturbereichen arbeiten und nicht mit einzelnen Temperaturwerten.
Grüße Uwe

Vielen Dank!

Bin auch dank der Hinweise auf folgenden Thread gestoßen, in dem ausführlich diskutiert wurde, hier der link

Schönen Abend !

Gruß
Chris

Hysterese heisst, dass man im Umschaltbereich den Wert so lässt wie er ist:

z.B.:

if (temp < 22 || blue == 1) blue = 1;
if (temp > 23 || blue == 0) blue = 0;
digitalWrite(blueLED, blue);  // Hysterese zwischen 22 und 23