Temperatur-Kontrolle
Raumtemperatur exakt messen? Ist doch eigentlich easy!
- „Sag mal Petra, ist dir auch so heiß wie mir?“
- „Äähhhm, … nein?! Aber wir könnten die Raumtemperatur mit dem microbit checken. Was meinst du, Marcel?“
- „Naja, der hat ja so einen Sensor auf der CPU, glaube ich. Aber wie messen wir dann den Raum?“
- „Marcel, das geht einfach mit einem externen Sensor, der weit genug von der CPU entfernt ist - z.B. mit Krokoklemmen-Kabeln. Lass uns das doch gleich ausprobieren, einverstanden?“
Aufgabenstellung
- Der BBC micro:bit dient als Messgerät für die echte Raumtemperatur ohne dabei die CPU Abwärme mit zu messen.
- Sobald der micro:bit mit Strom versorgt ist und sich an die Umgebungstemperatur angepasst hat (ca. 5-10 Min.), misst er dauerhaft.
- Wird die Taste A gedrückt, zeigt er den Wert als Zahl.
<spoiler>
- Zur Ermittlung der Temperatur wird eine analoge Schaltung (vgl. Thermometer mit Quecksilber) aufgebaut
- Dazu wird ein Stromkreis mit Krokoklemmen und Sensoren aufgebaut
- Der Strom vom micro:bit gelangt über Kabel und Sensoren vom Stromausgang an einen Stromeingang des micro:bit
- Es kann nun temperaturabhängig gemessen werden, wie viel davon vom ursprünglichen Strom tatsächlich in den micro:bit zurück kommt
- Dieser Wert wird als Graph auf der LED Matrix angezeigt
</spoiler>
Materialien
- BBC micro:bit
- 3 Krokodilklemmen-Kabel (unterschiedliche Farben)
- 1 Thermistor 10 K <spoiler>
Einkaufsvorschlag: | erhältlich bei Fa. Conrad</spoiler>
- 1 Widerstand 10 kOhm (braun, schwarz, orange, gold) <spoiler>https://www.conrad.at/de/ratgeber/technik-einfach-erklaert/widerstands-farbcode.html#beispiel
Einkaufsvorschlag: | erhältlich bei Fa. Conrad</spoiler>
- 1 Thermometer zum Kalibrieren der analogen Schaltung
- 2 unterschiedliche Temperaturmessungen (mind. 10 Grad Celsius Unterschied) z.B. Zimmer und Kühlschrank
- etwas Zeit bei plötzlichem Temperaturwechsel zur Akklimatisierung
Zeitaufwand
- ca. 2 Schulstunden zum Aufbau der Schaltung und Kailbrieren des Messaufbaus <spoiler>Die Bestimmung der Steigung einer Geraden, sollte extra vorbereitet und zeitlich vor diesem Experiment durchgenommen werden!</spoiler>
- ca. 1-2 Schulstunden zum Entwickeln des Programmes und für erste Messungen <spoiler>Achtung! Jeweils ca. 5 - 10 Minuten zur Anpassung an die jeweilige Umgebungstemperatur mit einrechnen!</spoiler>
Schwierigkeitsgrad
Kompetenzen
Du lernst
- vernetztes und fachübergreifendes Denken
- das Formulieren und Kodieren von Abläufen in formalen Algorithmen
- das Arbeiten mit Pins und Krokoklemmen-Kabel
- Sensordaten zu lesen, zu interpretieren, und umzurechnen
- die Steigung einer Geraden mit 2-Punkt-Kalibrierung ausrechnen
Unterrichtsfächer
INF, BU, WE
Tipps und Hilfestellung
Ziel
Der micro:bit soll die Umgebungstemperatur messen und auf Knopfdruck im Display anzeigen.<spoiler>
- Zu Beginn wollen wir nur zwei Widerstandswerte (0-1023) und Temperaturen (innen/ außen) mit dem Thermometer messen
- Durch Drücken des Knopfes B wird der aktuelle Messwert (0-1023) angezeigt. Dies wird für die Innen- und Außentemperatur (oder Kühlschrank) gemacht.
- Dann berechnen wir die Steigung der Geraden aus den zwei Messpunktwerten und denn Nullpunkt z.B. mit Geogebra ==> Kalibrierung
- Nach Kalibrierung der Schaltung kann der micro:bit jede beliebige Temperatur messen und anzeigen (Wartezeit für Thermistor ca. 5-10 Min.)
- Durch Drücken des Knopfes A wird die umgerechnete Temperatur angezeigt.
- Verschwende keine Energie und optimiere deinen Code, je weniger Zeilen desto besser. Probiere so wenig Zeilen wie möglich zu verwenden.
</spoiler>
Erforderliche Programmierblöcke
- beim Start <spoiler text="Block *">
Start
* Der Block "leer" wird systembedingt mit angezeigt. </spoiler> - Variable <spoiler text="Block *">
let TempWert = 0
* Der Block "beim Start" wird systembedingt mit angezeigt. </spoiler> - pausiere <spoiler text="Block">
basic.pause()
* Der Block "beim Start" wird systembedingt mit angezeigt. </spoiler> - Wenn Knopf A gedrückt <spoiler text="Block">
input.onButtonPressed(Button.A, function () {})
</spoiler> - analoge Werte von Pin in Variable einlesen <spoiler text="Block *">
TempWert = pins.analogReadPin(AnalogPin.P0)
* Der Block "beim Start" wird systembedingt mit angezeigt. </spoiler> - zeige Zahl<spoiler text="Block *">
basic.showNumber()
* Der Block "beim Start" wird systembedingt mit angezeigt. </spoiler>
Eckpfeiler zur Programmierung
- Durch Auslesen des analogen Spannungswertes eines Pins kann der micro:bit als Messgerät verwendet werden.
- Die Spannung des micro:bits von 3 Volt wird durch die elektronische Schaltung (Thermistor + Widerstand) und etwas Wartezeit (ca. 5-10 Min.) auf die aktuelle Temperatur eingestellt.
- Dann lesen wir die Spannung an PIN 0 aus und bilden diesen Wert in einer Variable ab.
- Den Spannungswert der Variablen geben wir zur Kalibrierung bei Drücken des Knopfs B im Display aus.
- Die eingelesene Variable muss nur noch in eine Temperatur umgewandelt werden,
- Der umgerechnete Wert wird durch Drücken des Knopfs A im Display angezeigt.
Schritt für Schritt zur Lösung
- Hinweise zur Lösungsfindung und die Lösung findest du auf der Lösungsseite zu diesem Beispiel.
Präsentation und Reflexion
- Stelle dein Ergebnis vor!
- Was kann dein Messgerät? Messen andere micro:bits gleiche Werte?
- Vergleiche die Werte unterschiedlicher Blumentöpfe.
- Hast du aussagekräftige Werte bekommen? Kannst du damit eine Skala erstellen?
- Was hat dir bei der Entwicklung deines Produkts gefallen?
- Welche Schwierigkeiten hattest du? Wie konntest du sie lösen?
- Erläutere, wie dein Programm aussieht!
- Was war bei dieser Aufgabe interessant für dich?
Weiterentwicklung
- Audioalarm beim Überschreiten eines Schwellenwertes
- Smileys anstelle des Graphen bei der Ausgabe der Feuchtigkeit
- Feuchtigkeitswerte zu anderen micro:bits senden
- Bau eines Pflanzenwächters mit Bewässerungsautomatik <spoiler>(https://youtu.be/7eC_VjH1eP0, https://makecode.microbit.org/projects/plant-watering)</spoiler>