Arduino Forum

International => Deutsch => Topic started by: sorath on Jan 03, 2013, 09:27 pm

Title: {gelöst} - [Einsteiger] Temperatur zum Schalten - "flattern" verhindern
Post by: sorath on Jan 03, 2013, 09:27 pm
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:

Quote
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
Title: Re: [Einsteiger] Temperatur zum Schalten - "flattern" verhindern
Post by: MueThoS on Jan 03, 2013, 09:29 pm
Du musst eine  http://de.wikipedia.org/wiki/Hysterese einbauen
Title: Re: [Einsteiger] Temperatur zum Schalten - "flattern" verhindern
Post by: UweFederer on Jan 03, 2013, 09:37 pm
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
Title: Re: [Einsteiger] Temperatur zum Schalten - "flattern" verhindern
Post by: sorath on Jan 03, 2013, 09:41 pm
Vielen Dank!

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

http://arduino.cc/forum/index.php?topic=77457.0


Schönen Abend !


Gruß
Chris
Title: Re: [Einsteiger] Temperatur zum Schalten - "flattern" verhindern
Post by: michael_x on Jan 03, 2013, 09:48 pm
Hysterese heisst, dass man im Umschaltbereich den Wert so lässt wie er ist:

z.B.:
Code: [Select]
if (temp < 22 || blue == 1) blue = 1;
if (temp > 23 || blue == 0) blue = 0;
digitalWrite(blueLED, blue);  // Hysterese zwischen 22 und 23