Thermometer kalibrieren: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
Zeile 11: | Zeile 11: | ||
1. Messung innen: | 1. Messung innen: | ||
* 23,6 Grad Celsius am Thermometer | * 23,6 Grad Celsius am Thermometer | ||
* micro:bit zeigt den Wert <spoiler | * micro:bit zeigt den Wert <spoiler text="??">508</spoiler> | ||
2. Messung außen (od. Kühlschrank): | 2. Messung außen (od. Kühlschrank): |
Version vom 21. Dezember 2021, 14:29 Uhr
Eine analoge Schaltung benötigt eine exakte Nullstellung (Kalibrierung) der Anzeigewerte. Diese Kalibrierung erfolgt hier mit 2 Temperaturmessungen mit mindestens 10 Grad Unterschied z.B. innen und außen. Am einfachsten ist es wenn man Raum- und Kühlschranktemperatur messen kann, das gelingt unabhängig von der Jahreszeit.
Zusätzlich zur Schaltung mit dem micro:bit benötigst du ein Thermometer,
etwas Geduld zur Akklimatisierung bevor gemessen wird, und die Werte des micro:bits für beide Temperaturmessungen. Der micro:bit zeigt analoge Werte umgerechnet der zur Verfügung stehenden Spannung an den PINs digital an.
1. Messung innen:
- 23,6 Grad Celsius am Thermometer
- micro:bit zeigt den Wert <spoiler text="??">508</spoiler>
2. Messung außen (od. Kühlschrank):
- 9,9 Grad Celsius am Thermometer
- micro:bit zeigt den Wert 329
Wie die Umrechung der gemessenen Werte in eine Temperatur funktioniert wird im Bild Umrechnungstabelle und -formel hier daneben erklärt.
<spoiler>
Wenn du keine Zeit für eine exakte Kalibrierung aufwenden kannst oder kein Thermometer zur Verfügung steht, verwende einfach folgende Werte:
c = 199.65
und
m = 13.066
und setze die Werte in diese Formel ein: x = (y - c) / m
d.h. x = (Messwert micro:bit - 199.65) / 13.066 = Temperaturwert </spoiler>
Erstelle zur Messung der beiden Temperaturwerte ein kleines Hilfsprogramm, das bei Drücken der Taste A den aktuellen Messwert von PIN 0 anzeigt. <spoiler>
input.onButtonPressed(Button.A, function () { TempWert = pins.analogReadPin(AnalogPin.P0) basic.showNumber(TempWert) basic.pause(1000) })
</spoiler>