Calliope-Kurs (Lehrer Herrengasse)
Frühjahr 2019
Download Kursteil: 09_04_TemperaturAmpelBesser als DinA4-PDF-Folien
Download Kursteil: 09_04_TemperaturAmpelBesser als PDF-Folien im 16:10-Format
Nun wollen wir die Temperatur-Ampel etwas verbessern.
Ebenso wie im “echten Leben” kann man auch das Wenn-Dann - Programmier-Konstrukt erweitern.
Mit solch einem Konstrukt können wir nun unserer Temperatur-Abfrage erweitern um eine zusätzliche Abfrage grösser 25° C
Und die Farben müssen wir natürlich auch noch anpassen.
Um das Wenn-Dann - Konstrukt in der Programmier-Oberfläche zu erweitern, muss im “Wenn-Dann-Puzzle-Stück” das Zahnrädchen benutzt werden.
Das öffnet die Tool (= Werkzeug)-Box des Wenn-Dann-Puzzleteils.
Leider merkt man bei diesen Spezialitäten, dass die Programmier-Oberfläche noch nicht an allen Stellen vom Englischen ins Deutsche übersetzt wurde, dann hier kommen plötzlich:
Die Benutzung ist hier auch etwas gewöhnungs-bedürftig:
Nun können wir also in die zusätzlichen Abfragen unsere weiteren Überprüfungen auf Temperatur > 25 einklicken (am Besten die Überprüfung per rechter Maustaste von oben kopieren) und die LED-Farben-Setzen befehle einklicken und die Farben entsprechend ändern.
Nun können wir das zuerst im Simulator ausprobieren, indem wir die Temperatur ändern und die Farbe der LED beobachten.
Dazu können wir mal versuchen, die Temperatur auf > 26°C, also z.B. 30°C einzustellen und dann das Programm anschauen / beobachten.
Dazu eignet sich die Schnecke.
Die lässt das Programm im Simulator im Schneckentempo ablaufen und zeigt jeweils durch Hervorheben an, welcher Schritt gerade ausrchgeführt wird.
Das ist schonmal eine grosse Hilfe und könnte uns bei der Fehlersuche unter die Arme greifen.
Was passiert?
Auch eine Temperatur von z.B. 30°C, die ja als rot angezeigt werden soll, geht durch das ganze Wenn-Dann-Konstrukt durch. Wenn irgendeine Bedingung erfüllt ist, dann wird die zugehörige Aktion durchgeführt und dann das Konstrukt verlassen.
Nachdem wir diesen Fehler gefunden haben, müssen wir unser “Wenn-Dann” - Konstrukt umbauen:
Vor dem Umbau spielen wir das hier einmal durch :
gemessener Wert : 30
gemessener Wert : 24
gemessener Wert : 19
Nun ziehen wir also unsere Vergleichs-Puzzle-Teile und unsere RGB-LED-Farben-Setz-Puzzle-Teile raus:
und setzen es wie angedacht wieder zusammen.
Wenn wir nun die Temperatur mit der Maus im Simulator ändern, dann sehen wir, dass die Farb-Anzeige unsere LED wir gewünscht funktioniert.
Jetzt ist der Programm-Code eigentlich gut genug, um eine echte Messung in unserem echten Calliope durchzuführen.
Wir laden das Programm dazu auf den Calliope
Java-Script-Code
let AktuelleTemperatur = 0
basic.forever(() => {
AktuelleTemperatur = input.temperature()
basic.showNumber(AktuelleTemperatur)
basic.pause(500)
basic.showLeds(`
# . . # #
. . # . .
. . # . .
. . # . .
. . . # #
`)
basic.pause(500)
basic.clearScreen()
basic.pause(500)
if (AktuelleTemperatur > 25) {
basic.setLedColor(Colors.Red)
} else if (AktuelleTemperatur > 21) {
basic.setLedColor(Colors.Red)
} else {
basic.setLedColor(Colors.Blue)
}
})
Download Hex-Code
Für alle Texte und Bilder auf dieser Seite gilt: