TemperaturR

ftComputing : Programme für die fischertechnik-Interfaces und -konstruktionskästen
  
ftComputing.de
Home
Back
Sitemap
Index
Links
Impressum
Mail
 

Aufgabe

"Die Heizung wird simuliert durch die Linsenlampe M2, als Kühlaggregat dient das Gebläse am Ausgang M1. Zur Temperaturmessung verwenden wir den NTC-Widerstand am Eingang EE. Programmiere das Modell so, daß oberhalb einer bestimmten Temperatur die Heizung aus- und das Gebläse einschaltet. Dieses soll so lange kühlen, bis ein unterer Grenzwert erreicht ist. Dann soll das Gebläse auss- und die Heizung eingeschaltet werden". Soweit das Zitat aus dem "Computing Starter" Begleitheft.

Anwendungskonstanten

Const mVentilator = 1, mLampe = 2
Const aNTC = 0
Const wHeiss = 1, wKalt = 2

Beschriftung der Textfelder

.lblTitel = "Temperaturregelung"
.lblMText(1).Caption = "Kühlung"
.lblMText(2).Caption = "Heizung"
.lblAText(0).Caption = "Temperatur"
.lblWert(1).Caption = "Heiß"
.txtWert(1).Text = 520
.lblWert(2).Caption = "Kalt"
.txtWert(2).Text = 560

fishMain

Do          ' --- Schleife bis HALT
  Select Case ftiGetAnalog(aNTC)
  Case Is < Werte(wHeiss)
    ftiSetMotor mLampe, ftiAus
    ftiSetMotor mVentilator, ftiEin
  Case Is > Werte(wKalt)
    ftiSetMotor mLampe, ftiEin
    ftiSetMotor mVentilator, ftiAus
  End Select
Loop Until ftiFinish(0)      ' --- Abbruchwunsch

Was passiert da? 
Es gibt da zunächst wieder eine Endlosschleife, die über den HALT-Button beendet werden kann. In der Schleife gibt es ein neues Visual Basic Konstrukt : das Select Case. Wirkt wie ein geschachteltes If, ist aber übersichtlicher. Hier ist der Select-Ausdruck der aktuelle Wert des Analogeinganges EX, des NTC-Widerstandes, der die aktuelle Temperatur mißt. Mit Case Is < Werte(wHeiss) wird der Fall ausgewählt bei dem der aktuelle Temperaturwert unter dem Wert des Heiss-Feldes auf der Form liegt : dann ist es heiß, es muß gekühlt werden. Bei Case Is > Werte(wKalt) ist dann kalt und es muß geheizt werden. Das wars. Bei der Inbetriebnahme sollte man etwas mit den Werten für Heiss und Kalt experimentieren, sie sind vom NTC und der Raumtemperatur abhängig.

Erweiterungen

Anzeige des Betriebszustandes in der Statuszeile durch printStatus wie gehabt. 

Man sollte dem Modell etwas Ruhe gönnen und noch einen Case einbauen bei dem die Temperatur stimmt (also kein Kühlen/Heizen).