Challenge Heiße Hand
Deine Herausforderung: Bringe Calliope auf Temperatur
Wie gut kannst du das Thermometer des Calliope erhitzen?
Challenge Heiße Hand
Bringe Calliope innerhalb einer vorgegeben Zeit mit den Händen auf eine möglichst hohe Temperatur.
Aufgabe: Unterprogramm für Heiße Hand
Erstelle für Calliope ein Unterprogramm, das nach einem Countdown innerhalb einer 10-Sekunden-Zeitspanne regelmäßig überprüft, ob die jeweilige Temperatur über dem bisherigen Maximalwert liegt und danach das Maximum aller Temperaturmessungen ausgibt.
Bei jedem neuen Maximum während der Messzeit soll die LED rot sein - sonst blau.
Hilfekärtchen
Calliope hat einen eingebauten Temperatursensor (Temperaturfühler). Der sitzt allerdings im Prozessorbauteil. Seine eigentliche Aufgabe ist, die Temperatur des Prozessors (also der Recheneinheit des Calliope) zu überwachen. Wenn du aber deinen Finger auf das Prozessorbauteil legst, wirst du feststellen, dass die gemessene Temperatur höher wird. Aber natürlich entspricht diese Temperatur auch ohne deinen Finger nicht der Raumtemperatur.
Eine Alternative sind externe Temperatursensoren (z.B. als Element des CO2-Sensors), die du an den Calliope anschließen kannst.
Du benötigst eine neue Variable (z.B. "maximum"), die du mit der aktuellen Temperatur initialisierst.
Nun musst du regelmäßig überprüfen, ob die aktuelle Temperatur größer als das bisherige Maximum ist. Warte danach aber ca. eine halbe Sekunde mit der nächsten Messung.
Bei einem neuen Maximum schalte die LED auf rot und gib die gerade gemessene Temperatur aus. Sonst schalte die LED auf blau.
Das letzte Hilfekärtchen gibt es in 60 Sekunden...
Funktion heisseHand:
... (hier fehlt noch was) ...
merke dir in der Variablen maximum die aktuelle Temperatur
setze die LED auf grün
zeige die aktuelle Temperatur an
merke dir in der Variablen startwert die aktuelle Laufzeit(ms)
während die Differenz aus aktueller Laufzeit und startwert < 10000 ist:
wenn die aktuelle Temperatur > maximum ist:
merke dir in der Variablen maximum die aktuelle Temperatur
setze die LED auf rot
zeige die aktuelle Temperatur an
sonst:
setze die LED auf rot
pausiere 500ms
zeige den Wert der Variablen maximum an
Nö! 😜