owned this note
owned this note
Published
Linked with GitHub
# Von kalten Füßen zu -1°C - so werden Temperaturen gemessen
<center><img src="https://cdn.instructables.com/FWY/656Z/J1V7XTFM/FWY656ZJ1V7XTFM.MEDIUM.jpg"></center>
---
Täglich vermessen tausende technische Geräte mithilfe von Sensoren unsere Umwelt, reagieren anhand der Ergebnisse oder speichern sie in Datenbanken ab. Sind die Daten einmal erfasst, wirken sie wie kleine Wahrheiten, mit denen wir z.B. die Wasser- oder Luftqualität erforschen. Auf dem Weg dahin kann aber vieles schiefgehen. Für unseren Alltag ist es also gut zu wissen, wie solche Daten entstehen, um Fehler erkennen und interpretieren zu können. Thema dieses Workshops ist jener Weg, vom natürlichen Ereignis zum digitalen Zahlenwert.
Am Beispiel eines Temperatursensors, eines sogenannten Heißleiters oder auch Thermistors, werden wir gemeinsam mit Marie erforschen, was beim Erfassen einer Temperatur passiert.
---
**Dazu benötigen wir folgendes:**
- [ ] [Heißleiter (10k Ohm bei 25°C)](https://www.reichelt.de/Heissleiter-Varistoren/NTC-0-2-10K/3/index.html?ACTION=3&LA=446&ARTICLE=13553&GROUPID=3114&artnr=NTC-0%2C2+10K&SEARCH=hei%25C3%259Fleiter)
- [ ] [Widerstand (10k Ohm)](https://www.conrad.de/de/kohleschicht-widerstand-10-k-axial-bedrahtet-0207-025-w-yageo-cfr-25jt-52-10k-1-st-1417697.html)
- [ ] [Arduino UNO](http://www.ebay.de/itm/New-SunFounder-Lab-Arduino-Uno-R3-Development-Board-ATMEGA328P-ATMEGA16U2-2012-/371760736256?hash=item568eaaa800:g:SzEAAOxySoJTTPLI)
- [ ] [3 Steckkabel](https://www.amazon.de/Neuftech-20cm-Steckbr%C3%BCcken-Drahtbr%C3%BCcken-Raspberry/dp/B00NBNIETC/ref=sr_1_6?ie=UTF8&qid=1506432258&sr=8-6&keywords=jumper+kabel)
- [ ] [Steckplatine](http://www.ebay.de/itm/like/262511436575?chn=ps&dispItem=1)
- [ ] USB Kabel (das ist beim Arduino dabei)
- [ ] [Multimeter](https://de.wikipedia.org/wiki/Multimeter)
- [ ] Notebook
---
## Eckdaten
| Dauer | Anschaffungskosten | Vorkenntnisse | Vorbereitungszeit |
| -------- | ------------------ | ------------------ |--------- |
| ~ 4 h | ~ 15€ | | ~ 2 h |
| empfohlene Arbeitsweise |
| ------------- |
| 2er Teams |
---
## Ein Tag im Winter
Marie ist verärgert: In ihrem Zimmer zieht ihr die Kälte in die Glieder, das digitale Thermometer der Heizung zeigt allerdings 20°C an. "Es ist auf jeden fall kälter!", denkt sich Marie. Etwas kann nicht stimmen. Erst neulich wurde der Display des Thermometers ausgetauscht und die Heizung selbst überprüft, an ihnen kann es also nicht liegen.
"Mh", denkt sich Marie, "die Heizung weiß also gar nicht, dass es kalt ist. Sie bekommt falsche Informationen, also Datenmüll - wie ihr Vater immer sagt. Aber was das wohl sind, Daten? Vielleicht kann ich der Heizung ja auf die Sprünge helfen!"
---
## Daten - die Sprache der Computer
<center><img src="https://cdn.instructables.com/FU7/I69H/J20P2QVH/FU7I69HJ20P2QVH.MEDIUM.jpg"></center>
Daten können in verschiedener Form vorliegen. In der Regel sind es Zahlen oder Buchstaben, die Informationen repräsentieren und durch Computer verarbeitet werden können.
<details>
<summary>Was bedeutet das genau?</summary>
Die Semiotik, die Zeichentheorie, unterscheidet die physischen Ereignissen von den Begriffen, die sie beschreiben sowie die Symbole, die die Beschreibungen repräsentieren. Dieser Zusammenhang wird im <a href="https://de.wikipedia.org/wiki/Semiotisches_Dreieck">Semiotischen Dreieck</a> abgebildet.
<center><img src="https://upload.wikimedia.org/wikipedia/commons/f/ff/Semiotischesdreieck.jpg"><br></br>CC-BY-SA 3.0 @SteinundBaum</center>
</details><br>
Wir spüren z.B., dass es wärmer wird und nennen diesen Vorgang einen Temperaturanstieg, den wir im europäischen Raum mit einer Zahl sowie der Einheit Grad Celsius (°C) beschreiben. Indem wir diesen Vorgang messen, können wir ihn in Zahlen ausdrücken und mit Computern weiterverarbeiten. So kommt die Heizung an die Messdaten, die sie benötigt, um sinnvoll arbeiten zu können.
<i class="fa fa-refresh fa-spin fa-3x fa-fw"></i> *Sind das Daten? Diskutiert gemeinsam und setzt einen Haken, wenn ihr zustimmt. Euch fällt noch mehr ein? Dann fügt es einfach ein:*
- [ ] Freude
- [ ] 27
- [ ] Baumart: Birke, Höhe: 24m, gepflanzt: 1972
- [ ] bunte Blätter
- [ ] 001101111011100001011110
- [ ] Marie, weiblich, 16 Jahre
- [ ] ...
---
Daten repräsentieren also das, was wir Menschen zum Beispiel als Temperatur bezeichnen. Arbeitet die Heizung falsch, kann es nicht direkt an den Daten liegen, denn sie sind ja nur die Träger der Informationen. Der Grund muss an ihrer Quelle zu finden sein, an den Messinstrumenten oder Fühlern.
"Okay", denkt sich Marie, "dann baue ich mir einen eigenen Fühler. Damit kann ich dann herausfinden, ob der der Heizung falsch liegt. Aber wo fange ich an? Woraus besteht so ein Fühler?"
---
## Marie baut sich ihr eigenes Thermometer
<center><img src="https://cdn.instructables.com/FUT/BXHD/J20P2QWD/FUTBXHDJ20P2QWD.MEDIUM.jpg"></center>
Im Messen liegt die Schwierigkeit. Denn der Mensch hat sich den Begriff "Temperatur" ausgedacht und festgelegt: Wenn Wasser bei normalem Luftdruck beginnt zu gefrieren, nennen wir das 0°C.
<center><iframe width="560" height="315" src="https://www.youtube.com/embed/B-YRHgFsDtw" frameborder="0" allowfullscreen></iframe></center>
Wenn sich aber nun die Temperatur erhöht, ist der genaue Temperaturwert sehr schwer durch Finger und Augenmaß festzustellen. Deswegen wurden Messtechniken entwickelt, die da genauer sind.
Der Mensch hat beobachtet, dass nicht nur Wasser sondern auch viele andere Materialien ihren Zustand verändern, wenn sich die Temperatur ändert. Z.B. ändern Metalle ihre elektrische Leitfähigkeit. Wenn sich die Temperatur verändert, leiten sie Strom besser oder schlechter, ihr Widerstandswert verändert sich, der als "Ohm" bezeichnet wird. Und so wurden Wege gefunden, die elektrische Leitfähigkeit mancher Metalle in Temperaturwerte umzurechnen.
---
### Das braucht Marie für ihr Thermometer
Damit sind wir beim Thermistor. Der Thermistor ist ein elektrischer Widerstand, der seinen Widerstandswert ändert, wenn sich die Temperatur verändert. Wenn es z.B. 25°C sind, hat der Thermistor einen Widerstand von 10.000 Ohm, bei 30°C 7942 Ohm, bei 35°C 6327 Ohm usw. D.h.: Umso mehr wir dieser Wertepaare kennen, desto genauer können wir die Temperatur angeben.
<details>
<summary>Was ist ein elektrischer Widerstand?</summary>
Ein Widerstand ist in einem Stromkreis wie eine Verengung in einer Wasserleitung zu verstehen: Wenn von einem Berg durch ein dickes Rohr Wasser fließt, hat es eine bestimmte Fließkraft, die vom Durchmesser des Rohres und dem Höhenunterschied abhängt. Ist nun das Rohr an einer Stelle schmaler, ergibt sich für das Wasser ein Widerstand und es fließt schwächer. Die Menge an Wasser, die an einer Stelle in einer bestimmten Zeit fließt, nennt man Strom. Die Kraft, mit der sich der Strom bewegt, kann Spannung genannt werden.
<center><iframe width="560" height="315" src="https://www.youtube.com/embed/Je22SgH8TCk?rel=0" frameborder="0" allowfullscreen></iframe></center>
</details><br>
Wenn wir also messen wollen, welche Temperatur wir haben, müssen wir messen, welchen Widerstand der Thermistor hat.
<i class="fa fa-refresh fa-spin fa-3x fa-fw"></i> *Diskutiert gemeinsam, wie ihr an den Widerstandswert des Thermistors kommt*
<details>
<summary>So ermittelt ihr den Widerstandswert</summary>
Der Widerstandswert ist nicht direkt messbar. Um an ihn zu kommen, müssen wir einen Trick anwenden und ein bisschen Mathe. Dazu nehmen wir eine Grundgleichung der Elektrotechnik, das Ohmsche Gesetz:<br><br>
**U = R \* I**
U = Spannung in Volt
R = Widerstand in Ohm
I = Strom in Ampere
</details><br>
Wie im Klapptext beschrieben, hängen Strom, Spannung und Widerstand miteinander zusammen. Ist der Widerstand hoch, wird mehr Spannung benötigt, um einen bestimmten Strom durch einen elektrischen Leiter fließen zu lassen. U = R * I beschreibt diesen Zusammenhang. Während U das Formelzeichen für die Spannung (in Volt) ist, beschreiben R den Widerstand (in Ohm) und I den Strom (in Ampere). Wenn wir also den Strom und die Spannung kennen, lässt sich der Widerstand leicht berechnen. Dafür muss die Gleichung nur nach R umgestellt werden: R = U / I. Also messen wir den Strom und die Spannung und ermitteln dann die Temperatur mit Hilfe des Ohmschen Gesetzes?
---
### Leicht gesteckte Beinchen: Die Schaltung
Marie steckt den Thermistor auf ein Steckbrett, verbindet ihn mit (+) und (-) einer 5 Volt Stromquelle und versucht zu messen. Dafür hält sie das blaue (schwarze) Kabel des Multimeters an (-) und das rote an (+). Vorher hat sie das Messgerät darauf eingestellt, Gleichspannung zu messen. Mit zwei Fingern umfasst sie den Temperatursensor, damit er wärmer wird, um zu erkennen, ob sich die Spannung verändert.
<img alt="" src="https://github.com/okfde/edulabs/blob/master/assets/img/projects_extern/Sensorworkshop_Aufbau_1.jpg?raw=true" />
<i class="fa fa-refresh fa-spin fa-3x fa-fw"></i> *Versucht es auch einmal. Welches Messergebnis erhaltet ihr? Kann das stimmen?*
<details>
<summary>So funktioniert die Steckplatine</summary>
Die roten Linien zeigen, was im Gehäuse des Steckbrettes miteinander verbunden ist.
<img alt="" src="http://starthardware.org/wp-content/uploads/2014/10/4_2_breadboard1.png" />
</details>
---
### Und wo steht die Temperatur? Analoges Messen
Marie wundert sich, wahrscheinlich ist es euch auch so gegangen: Das Messgerät hat genau die Spannung angezeigt, die sie selbst angeschlossen hat. Sonst hat sich nichts verändert. Egal ob sie den Sensor mit der Hand aufgewärmt hat oder nicht. Es scheint noch etwas zu fehlen, damit Marie den Widerstand des Thermistors richtig ermitteln kann.
<i class="fa fa-refresh fa-spin fa-3x fa-fw"></i> *Habt ihr eine Idee, woran das liegen kann, dass das Messgerät immer eure Gesamtspannung anzeigt?*
<details>
<summary>Die Lösung: Der Spannungsteiler</summary>
Legen wir das Messgerät an den Thermistor an, wird immer die Spannung U_gesamt herauskommen, da ein Referenzpunkt fehlt, mit dem der Spannungsabfall am Thermistor selbst gemessen werden kann. Das Messgerät kann also gar nicht messen, was in unserem Sensor vorgeht, weil wir immer nur die Versorgungspannung messen. Um zur Spannung des Sensors und damit zu unserer Temperaturmessung zu kommen, können wir uns wieder eines Trickes bedienen, des Spannungsteilers. Der schafft uns den benötigten Referenzpunkt durch einen getrennten Bereich, der nur indirekt mit der Versorgungspannung verbunden ist.
Den Spannungsteiler erhalten wir, wenn wir einen weiteren Widerstand hinzufügen, den wir genau kennen, den 10k Ohm Widerstand.
<img alt="" src="https://github.com/okfde/edulabs/blob/master/assets/img/projects_extern/Sensorworkshop_Aufbau_2.jpg?raw=true" />
Wenn wir jetzt den (+) Pol des Multimeters mit der mittleren Verbindung von Thermistor und Widerstand verbinden und den (-) Pol mit dem (-) Pol der Versorgungsspannung, messen wir die Spannung an U2 und können mit Hilfe folgender Formel den Widerstand R1 des Sensors berechnen:
**R1 = (R2*Ugesamt)/U2 - R2**
<details>
<summary>Die Formel des Spannungsteilers</summary>
Wenn, wie beim Spannungsteiler, zwei Widerstände in Reihe geschaltet sind, dann dürfen ihre Widerstandswerte addiert werden. Das Ergebnis nennt man dann Ersatzwiderstand. Gleiches gilt dann auch für das Ohmsche Gesetz, mit dem wir beide Widerstände berechnen können. Wir erinnern uns:<br><br>
`U = R * I`
Gleiches gilt auch für die Widerstände R2 und den Thermistor R1:
`U1 = R1 * I und U2 = R2 * I`
Bei einer Reihenschaltung können wir R1 und R2 addieren, d.h.:
```
R_gesamt = R1 + R2
U_gesamt = R_gesamt * I
```
Formen wir letzteres um, so erhalten wir:
`I = U_gesamt / R_gesamt`
Wenn wir jetzt den aktuellen Widerstand R1, unseren Thermistor, berechnen möchten, können wir I einfach durch den letzten Schritt ersetzen:
`U1 = R1 * I <=> U1 = R1 * (U_gesamt / R_gesamt)`
Stellen wir die Gleichung nach R1 um, so erhalten wir:
**R1 = (R2*Ugesamt)/U2 - R2**
</details><br>
Haben wir den aktuellen Widerstand berechnet, <a href="http://cdn-reichelt.de/documents/datenblatt/B400/NTC-02_Serie.pdf">schauen wir in einer Tabelle die Temperatur nach</a> (S. 79, Spalte 6.103).
</details>
---
### Sind das jetzt Daten?
Marie hat jetzt ihr eigenes Temperaturmessgerät gebaut. Allerdings benötigt sie dafür immer auch noch ein Multimeter, um die Spannung zu messen. Außerdem muss sie anschließend die Spannung in einen Widerstand umrechnen und dann <a href="http://cdn-reichelt.de/documents/datenblatt/B400/NTC-02_Serie.pdf">in einer Tabelle nach der Temperatur nachschlagen</a> (S. 79, Spalte 6.103). Das ist noch sehr umständlich.
<i class="fa fa-refresh fa-spin fa-3x fa-fw"></i> *Aber wie gelangen diese Informationen jetzt zu der Heizung? Sind das jetzt schon Daten? Findet es gemeinsam heraus.*
---
### Für den Computer übersetzen: digitales Messen
In einer modernen Heizung steckt ein Mikrocontroller, das ist ein Ein-Chip-Computer. Diese sehr kleinen Computer befinden sich in vielen Geräten des Alltages und steuern zum Beispiel eure Waschmaschine. Mikrocontroller zeichnen sich dadurch aus, dass wir an sie recht einfach Sensoren oder Aktoren, z.B. Leuchtdioden, anschließen können. Sie arbeiten mit Daten. Also eindeutige Zahlen, die z.B. Zustände unseres Alltages repräsentieren. Diese Zustände müssen allerdings erst in die Sprache des Mikrocontrollers übersetzt werden. Das schaffen sie auch selbst, sofern wir es ihnen beibringen.
Marie verwendet ein Arduino UNO, auf dem ein solcher Mikrocontroller verbaut ist.

<center>CC BY-SA 4.0 2018 — <a href="http://starthardware.org"/>Stefan Hermann</a><br><br></center>
Damit dieser arbeitet, muss er programmiert werden. Das passiert z.B. mit Hilfe eines Notebooks. [Dort muss die Arduino IDE installiert sein](http://starthardware.org/lektion-1-vorbereitung/). Das ist ein Programm, mit dem ihr selbst Programme in der [Programmiersprache C](https://de.wikipedia.org/wiki/C_(Programmiersprache)) schreiben (keine Sorge, [das ist schnell gelernt](https://de.wikibooks.org/wiki/C%2B%2B-Programmierung:_Kontrollstrukturen)) und auf Mikrocontroller übertragen könnt. Dabei müsst ihr euch nur an eine vorgegebene Struktur halten.
<details>
<summary>Die Basisstruktur von Arduino - eine Einführung für den ersten Start</summary>
Jedes Programm besteht aus folgenden zwei Teilen:
der **void setup(){}** und der
**void loop(){}** Funktion
Diese beiden Funktionen machen genau das, was ihre Namen sagen: In der Ersten wird festgelegt, was in der Zweiten verwendet wird. Die erste wird einmalig aufgerufen, wenn der Mikrocontroller gestartet wurde. Die loop-Funktion läuft anschließend unendlich. Z.B. wird ein Pin des Mikrocontrollers als Ausgang festgelegt, damit ihr damit eine Leuchtdiode ansteuern könnt. In der loop Funktion, die der Mikrocontroller im Betrieb fortwährend abarbeitet, kann die LED dann z.B. ein und ausgeschaltet werden.
**Ein erster Test - Los geht's:**
Navigiert in eurer Arduino IDE Installtion über Datei/Beispiele/Basics zum Projekt "Blink" und probiert das Beschriebene einfach aus. Dazu öffnet ihr "Blink", steckt den Arduino UNO via USB an euer Notebook, wählt diesen über Werkzeuge/Board sowie über Werkzeuge/Port aus und klickt im Editor auf den Pfeil nach rechts "Hochladen" - fertig. Jetzt sollte auf eurem Arduino Board eine Leuchtdiode blinken.
[Hier findet ihr ein paar Einsteiger-Projekte](http://starthardware.org/), mit denen ihr den Arduino kennenlernen könnt.
</details><br>
Inzwischen kennen wir den Mikrocontroller und haben zuvor erste Temperaturmessungen gemacht. Die Messungen waren aber noch sehr aufwändig. Besser wäre es, wenn das automatisch ablaufen würde und wir die Daten direkt verarbeiten könnten. Das geht mit unserem Mikrocontroller. Denn mit diesem können wir ebenfalls eine Messung durchführen, sofern wir ihn so programmieren. Mit folgender Funktion ist das möglich:
**analogRead(pin)**
<details>
<summary>Was sind Funktionen?</summary>
Eine <a href="https://de.wikipedia.org/wiki/Funktion_(Programmierung)">Funktion</a> ist ein kleines Programm, das in größere Programme eingefügt wird. Viele solcher Funktionen wurden bereits geschrieben. Wir können auf sie zugreifen, indem wir eine Bibliothek einbinden, in der sie hinterlegt ist. Wir können aber auch selbst welche schreiben.
</details><br>
Mit ihr erfolgt ein grundlegender Schritt der Datenverarbeitung, die Analog-Digital-Wandlung: Durch die Funktion analogRead(pin) wird ein analoges Signal (z.B. eine Spannung), das an "pin" anliegt, digitalisiert. Mit der Analog-Digital-Wandlung übersetzt sich der Mikrocontroller also das, was in der Natur passiert, in seine eigene Sprache.
<details>
<summary>Analog, digital - wo liegt der Unterschied?</summary>
<center><iframe width="560" height="315" src="https://www.youtube.com/embed/btgAUdbj85E?rel=0" frameborder="0" allowfullscreen></iframe></center>
</details><br>
Letztendlich macht der Mikrocontroller nichts anderes, als das, was wir mit dem Messgerät gemacht haben, mit einer Ausnahme: Er misst die Spannung an "pin" und weist das Ergebnis einem Zahlenwert zwischen 0 und 1023 zu (Umso größer diese Zahl ist, desto genauer ist die Messung). Das macht er so schnell, wie wir es ihm sagen und wie es sein Prozessor erlaubt. Möchten wir daraus den Spannungswert berechnen, müssen wir das Ergebnis der Wandlung wieder umwandeln, also mit 5V/1024 multiplizieren. Wenn uns der Mikrocontroller den Wert 788 zurück gibt, so erhalten wir durch die Multiplikation mit 5V/1024 3,8 Volt.
Der Code für die Digitalisierung und die Rückgabe des digitalisierten und umgerechneten Spannungswertes ist folgendermaßen:
```
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 1:
float sensorValue = analogRead(A0) * (5.0/1024.0);
// print out the value you read:
Serial.println(sensorValue);
// delay in between reads for stability
delay(1);
}
```
Bevor wir den Code auf den Mikrocontroller übertragen, muss die Termistor-Schaltung über ein Kabel mit dem Pin A0 am Messpunkt (+) verbunden werden.

Auch (+) 5V sowie GND (-) müssen vom Mikrocontroller kommen. Die Funktion "Serial.println(message)" ermöglicht es, Zustände im Mikrocontroller an unser Notebook zu senden. Um Serial.println() nutzen zu können, muss in der Funktion "setup()" vorher die Sendegeschwindigkeit festgelegt worden sein. Im Beispiel sind das 9600 [bits](https://de.wikipedia.org/wiki/Bit) pro Sekunde. Anschließend müssen wir in der Arduino IDE über "Werkzeuge" den Seriellen Monitor starten.
<details>
<summary>Was passiert da genau?</summary>
Mit Searial.begin(9600) wird in der Setup Funktion die serielle Datenübertragung initialisiert und die Geschwindigkeit von 9600 bits/s gesetzt. Anschließend startet die loop() Funktion. In dieser wird immer wieder eine float Variable namens "sensorValue" erstellt und dieser der mit 5/1024 multiplizierte Wert zugewiesen, der durch die Analog-Digital-Wandlung bestimmt wurde. Anschließend sendet der Mikrocontroller den Inhalt der Variable mithilfe der Searial.println() Funktion an unser Notebook, wartet ganz kurz delay(1) und beginnt von Vorne.
</details><br>
Wir können also jetzt mit dem Mikrocontroller einen Spannungswert messen. Noch fehlt aber die Umrechnung in einen Widerstandswert und die anschließende Interpretation der Temperatur. Bisher haben wir das mit Hilfe der Tabelle gemacht. Diese haben wir allerdings auf dem Mikrocontroller noch nicht abgelegt, da sie einen Haken hat: sie ist ungenau. Denn die meinsten Datenblätter geben den Widerstandswert nur alle 5°C an, die Werte dazwischen fehlen. Schöner wäre auch, wenn wir die Tabelle gar nicht mehr brauchen und die Temperatur direkt ausrechnen könnten.
Das geht und lässt sich wieder mithilfe eines Trickes lösen: Wenn wir die Spannungswerte in Abhängigkeit von der Temperatur in ein Koordinatensystem übertragen, dann ist ein kontinuierlicher Verlauf zu sehen.
Durch die Mathematik wissen wir, dass eine solche Regelmäßigkeit auch durch eine Funktion ausgedrückt werden kann. Finden wir also eine Funktion, die unserer Folge von Widerstandswerten ähnelt, lassen sich mit ihr die fehlenden Werte ermitteln. Um das zu erreichen, können wir uns eines Tabellenkalkulationsprogrammes bedienen. Das geht folgendermaßen: Erst tragen wir die Temperaturwerte in eine Spalte ein, daneben die Widerstandswerte. Anschließend nutzen wir das umgeformte Ohmsche Gesetz U2 = R2 * (U_gesamt / R_gesamt) und berechnen die Spannungswerte für den Messwiderstand R2, die wir in eine Spalte neben die Temperaturwerte schreiben. Jetzt haben wir zu jedem Widerstandswert eine Temperatur und einen Spannungswert. Die beiden letzten Spalten markieren wir und weisen das Programm an, diese als x und y Werte in ein Koordinatensystem zu zeichnen.

Anschließend rechts-klicken wir auf die nun sichtbare Folge von Punkten und wählen "Trendlinie einfügen" aus. Nun probieren wir verschiedene der angebotenen Trendfunktionen aus und wählen die, die unserer Punktfolge am nächsten ist.
<i class="fa fa-refresh fa-spin fa-3x fa-fw"></i> *Wie nennt sich die Funktion, die eurer Punktfolge am nächsten ist?*
<details>
<summary>Diese Funktion sollte am besten passen</summary>
Es sollte sich um eine <a href="https://de.wikipedia.org/wiki/Polynom">polynomische</a> Trendfunktion handeln. Ist eine passende gefunden, wählen wir zum Schluss in diesem Auswahlfenster "Gleichung anzeigen" aus - fertig.
</details><br>
Nun müsste etwa folgendes in eurem Chart zu sehen sein:

Mit dieser Gleichung lässt sich nun die Temperatur direkt berechnen, sofern wir den aktuellen Spannungswert unserer Thermistor-Schaltung kennen. Passen wir den Code von vorhin unseren neuen Erkenntnissen an, sieht er beispielsweise so aus:
```
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 1:
float sensorValue = (analogRead(A0)*(5.0/1023.0));
double temp = 1.0304979225*pow(sensorValue,4) - 8.8852088479*pow(sensorValue,3) + 26.7473408985*pow(sensorValue,2) - 13.6032287304*sensorValue - 8.9327944109;
// print out the value you read:
Serial.println(temp);
delay(1); // delay in between reads for stability
}
```
Zugegeben, die vielen Nachkommastellen machen den Code nicht gerade übersichtlich. Übertragen wir diesen auf unseren Mikrocontroller, so erhalten wir über den Seriellen Monitor eine ungefähre Temperaturangabe. **Glückwunsch, du hast ein digitales Thermometer gebaut!**
---
## Es geht: Mein Thermometer funktioniert
Marie ist fertig, ihr Termometer funktioniert. Und tatsächlich, es zeigt einen Wert an, der ihren kalten Füßen viel mehr entspricht. Der Temperatursensor der Heizung scheint also kaputt zu sein. Aber kann sie sich sicher sein, dass ihr eigenes Termometer wirklich richtig ist?
<i class="fa fa-refresh fa-spin fa-3x fa-fw"></i> *Vergleicht eure Ergebnisse. Fällt euch etwas auf? Diskutiert gemeinsam.*
<details>
<summary>Diskussion - Messen und Wahrheit</summary>
Wenn du das Ergebnis jetzt mit anderen Thermometern vergleichst, wird dir auffallen, dass es starke Abweichungen gibt. Das liegt in erster Linie an der Toleranz eines jeden Thermistors. Das ist ein Wert, der in Prozent angibt, wie stark die Widerstandswerte von der Norm abweichen können. Um solche Ungenauigkeiten zu vermeiden, muss unser Thermometer, wie jedes Messgerät, kalibriert werden. Dazu nimmt man ein sehr genaues Temperaturmessgerät, was kalibriert ist und misst die Abweichung des selbstgebauten Sensors. Die Abweichung wird dann im Code unseres Sensors berücksichtigt.
Neben dieser Standardabweichung sind noch viele andere Messfehler möglich. Z.B. können Materialermüdung, Verschmutzungen am Sensor, ungünstige Aufstellungsorte des Messgerätes und Schwankungen der Stromversorgung das Messergebnis verfälschen. Wenn mit Messdaten gearbeitet wird, müssen diese Aspekte unbedingt berücksichtig werden, weil es sonst zu Fehlinterpretationen und -entscheidungen kommen kann.
</details>
---
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br/><p>Inhalte dieses Materials sind, sofern nicht anders angegeben, nach <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons 4.0</a> Attribution lizenziert.</p>