Pages: [1]   Go Down
Author Topic: {gelöst} - [Einsteiger] Temperatur zum Schalten - "flattern" verhindern  (Read 554 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 40
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: January 03, 2013, 03:41:47 pm by sorath » Logged

NRW
Offline Offline
Sr. Member
****
Karma: 2
Posts: 372
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Du musst eine  http://de.wikipedia.org/wiki/Hysterese einbauen
Logged

Global Moderator
Offline Offline
Newbie
*****
Karma: 13
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 40
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 56
Posts: 2981
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

Pages: [1]   Go Up
Jump to: