Thermometer kalibrieren: Unterschied zwischen den Versionen
KKeine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
Zeile 25: | Zeile 25: | ||
m = 13.066 | m = 13.066 | ||
und setze die Werte in diese Formel ein | und setze die Werte in diese Formel ein: '''x = (y - c) / m''' | ||
d.h. x = (Messwert micro:bit - 199.65) / 13.066 = Temperaturwert | |||
d.h. | |||
x = (Messwert micro:bit - 199.65) / 13.066 = Temperaturwert | |||
</spoiler> | </spoiler> | ||
Version vom 21. Dezember 2021, 14:23 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 508
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>