Arduino: Temperaturmessung mit NTC und PTC: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(27 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Arduino]]
[[Kategorie:Arduino]]
[[Datei:Lernset - Einsteiger Kit für Arduino.jpg|thumb|rigth|450px|Abb. 1: Lernset - Einsteiger Kit für Arduino]]
[[Datei:NTC.jpg|thumb|rigth|300px|Abb. 1: NTC Temperatursensor]]
'''Autor:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]<br>
{|
'''Modul:''' Praxismodul I<br>
|-
'''Lehrveranstaltung:''' Mechatronik, Informatikpraktikum 1, 1. Semester, Wintersemester
| '''Autor:''' || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]
|-
| '''Modul:''' || Praxismodul I
|-
| '''Lektion 13:''' || Mechatronik, Informatikpraktikum, 1. Semester, Wintersemester
|}


== Inhalt ==
== Inhalt ==
Zeile 33: Zeile 38:
# Welche Daten würden Sie im EEPROM ablegen?
# Welche Daten würden Sie im EEPROM ablegen?
# Beschreiben Sie alle Methoden der Klasse <code>EEPROM.h</code> (<code>crc, get, put, read, update, write</code>).
# Beschreiben Sie alle Methoden der Klasse <code>EEPROM.h</code> (<code>crc, get, put, read, update, write</code>).
# Wurde der Quelltext durch Header und Kommentare aufgewertet?
# Wurden jedes Programm mittels PAP geplant?
# Wurde auf <code>magic numbers</code> verzichtet?
# Wurde die [[Medium:Programmierrichtlinie.pdf|Programmierrichtlinie]] eingehalten?


== Vorbereitung ==
'''Arbeitsergebnisse''' in SVN: <code>Lernzielkontrolle_Termin_13.pdf</code>
Bereiten Sie sich anhand der nachfolgenden Aufgaben auf den Praktikumstermin vor.
 
== Tutorials ==
* [https://docs.arduino.cc/learn/built-in-libraries/eeprom Arduino.cc: EEPROM Library]
* [https://docs.arduino.cc/learn/programming/eeprom-guide Arduino.cc: A guide to EEPROM]
* [[PTC_Temperatursensor_KTY_81-210| HSHL-Wiki: PTC Temperatursensor (KTY81-210)]]
* [[Temperatursensor_NTC_MF58_3950_B| HSHL-Wiki: NTC Temperatursensor (MF58 3950 B)]]
 
== Demos ==
*[https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoEEPROM/DemoEEPROM.ino SVN: DemoEEPROM.ino]
*[https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoMesseNTCTemperatur/DemoMesseNTCTemperatur.ino SVN: DemoMesseNTCTemperatur.ino]
*[https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoMessePTCTemperatur/DemoMessePTCTemperatur.ino SVN: DemoMessePTCTemperatur.ino]
 
== Versuchsvorbereitung ==
# Bereiten Sie sich anhand der [[Arduino:_Temperaturmessung_mit_NTC_und_PTC#Tutorials|Tutorials]] und [[Arduino:_Temperaturmessung_mit_NTC_und_PTC#Demos|Demos]] vor.
# Bereiten Sie sich anhand der [[Arduino:_Temperaturmessung_mit_NTC_und_PTC#Tutorials|Tutorials]] und [[Arduino:_Temperaturmessung_mit_NTC_und_PTC#Demos|Demos]] vor.
# Planen Sie alle Programme als PAP.
# Planen Sie alle Programme als PAP.
# Beantworten Sie die Lernzielkontrollfragen.
# Beantworten Sie die Lernzielkontrollfragen.
# Arbeiten Sie nachhaltig in SVN.
# Arbeiten Sie nachhaltig in SVN.
'''Arbeitsergebnisse''' in SVN: <code>Lernzielkontrolle_Termin_12.pdf</code>


== Versuchsdurchführung ==
== Versuchsdurchführung ==
=== Aufgabe 12.1: Lernzielkontrolle ===
=== Aufgabe 13.1: Besprechung der Versuchsvorbereitung ===
Präsentieren Sie Prof. Schneider das Ergebnis der Lernzielkontrolle.
Diskutieren Sie mit Prof. Schneider die Ergebnis Ihrer Vorbereitung.
----


'''Arbeitsergebnisse''' in SVN: <code>Lernzielkontrolle_Termin_12.pdf</code>
=== Aufgabe 13.2: Temperaturmessung mit einem NTC ===
 
# Messen Sie den Widerstandswert des NTC (z.&thinsp;B. 100&thinsp;kΩ).
=== Aufgabe 12.2: Temperaturmessung mit einem NTC ===
# Bauen Sie die [[Temperatursensor_NTC_MF58_3950_B#Messschaltung|Grundschaltung]] für eine Temperaturmessung mit NTC auf. Dimensionieren Sie dabei den Spannungsteiler entsprechend des NTC-Widerstandswertes.
# Bauen Sie die [[Temperatursensor_NTC_MF58_3950_B#Messschaltung|Grundschaltung]] für eine Temperaturmessung mit NTC auf.
# Lesen Sie die Spannung am Analogpin <code>A0</code> ein.
# Lesen Sie die Spannung am Analogpin <code>A0</code> ein.
# Berechnen Sie aus dem Digitalwort den Widerstand <math>R(T)</math> in Ω.
# Berechnen Sie aus dem Digitalwort den Widerstand <math>R(T)</math> in Ω.
Zeile 63: Zeile 74:
'''Arbeitsergebnisse''' in SVN: <code>messeNTCTemperatur.ino</code>
'''Arbeitsergebnisse''' in SVN: <code>messeNTCTemperatur.ino</code>


<div class="mw-collapsible mw-collapsed">
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
'''Lösungsweg'''<br>
| <strong>Lösungsweg&thinsp;</strong>
|-
|
# <code>#include <math.h></code>
# <code>#include <math.h></code>
# <code>Messwert=analogRead(A0);</code>
# <code>Messwert=analogRead(A0);</code>
Zeile 74: Zeile 87:


Die Lösung finden Sie in [1, S. 144ff.].
Die Lösung finden Sie in [1, S. 144ff.].
</div>
|-
|}
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Demo&thinsp;</strong>
|-
|
[https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoMesseNTCTemperatur/DemoMesseNTCTemperatur.ino SVN: DemoMesseNTCTemperatur.ino]
|-
|}
----


=== Aufgabe 12.3: Temperaturmessung mit einem PTC ===
=== Aufgabe 13.3: Temperaturmessung mit einem PTC ===
# Bauen Sie die [[PTC_Temperatursensor_KTY_81-210#Messschaltung|Grundschaltung]] für eine Temperaturmessung mit NTC auf.
# Bauen Sie die [[PTC_Temperatursensor_KTY_81-210#Messschaltung|Grundschaltung]] für eine Temperaturmessung mit PTC auf.
# Lesen Sie die Spannung am Analogpin <code>A0</code> ein.
# Lesen Sie die Spannung am Analogpin <code>A0</code> ein.
# Berechnen Sie aus dem Digitalwort den Widerstand <math>R(T)</math> in Ω.
# Berechnen Sie aus dem Digitalwort den Widerstand <math>R(T)</math> in Ω.
Zeile 86: Zeile 108:
'''Arbeitsergebnisse''' in SVN: <code>messePTCTemperatur.ino</code>
'''Arbeitsergebnisse''' in SVN: <code>messePTCTemperatur.ino</code>


<div class="mw-collapsible mw-collapsed">
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
'''Lösungsweg'''<br>
| <strong>Lösungsweg&thinsp;</strong>
|-
|
# <code>#include <math.h></code>
# <code>#include <math.h></code>
# <code>Messwert=analogRead(A0);</code>
# <code>Messwert=analogRead(A0);</code>
Zeile 96: Zeile 120:


Die Lösung finden Sie in [1, S. 144ff.].
Die Lösung finden Sie in [1, S. 144ff.].
</div>
|-
=== Aufgabe 12.4: Datensicherung im EEPROM ===
|}
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Demo&thinsp;</strong>
|-
|
[https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/Arduino/DemoMessePTCTemperatur/DemoMessePTCTemperatur.ino SVN: DemoMessePTCTemperatur.ino]
|-
|}
----
 
=== Aufgabe 13.4: Datensicherung im EEPROM ===
* Betreiben Sie den Arduino mit einem 9&thinsp;V Batterieblock.
* Betreiben Sie den Arduino mit einem 9&thinsp;V Batterieblock.
* Lesen Sie einen entprellten Taster ein.
* Lesen Sie einen entprellten Taster ein.
Zeile 112: Zeile 146:
'''Arbeitsergebnisse''' in SVN: <code>speichereDatenimEEPROM.ino, leseDatenausEEPROM.ino</code>
'''Arbeitsergebnisse''' in SVN: <code>speichereDatenimEEPROM.ino, leseDatenausEEPROM.ino</code>


<div class="mw-collapsible mw-collapsed">
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
 
| <strong>Demo&thinsp;</strong>
'''Demo:''' [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/Arduino/DemoEEPROM/DemoEEPROM.ino SVN: DemoEEPROM.ino]
 
'''Tutorials'''
* [https://docs.arduino.cc/learn/built-in-libraries/eeprom Arduino.cc: EEPROM Library]
* [https://docs.arduino.cc/learn/programming/eeprom-guide Arduino.cc: A guide to EEPROM]
 
{{#ev:youtube|https://https://youtu.be/bVH4_tet_Eo| 600 | | Video 1: So funktioniert der Arduino EEPROM|frame}}
 
</div>
 
=== Aufgabe 12.5: Nachhaltige Doku ===
* Sichern Sie alle Ergebnisse mit beschreibendem Text (<code>message</code>) in SVN.
* Wurden die Regeln für den Umgang mit SVN eingehalten?
* Wurde die [[Medium:Programmierrichtlinie.pdf|Programmierrichtlinie]]  eingehalten?
* Wurde nachhaltig dokumentiert?
* Haben die Programme einen Header?
* Wurden der Quelltext umfangreich kommentiert?
* Wurden die PAPs erstellt und abgelegt? Passen die PAPs 100% zum Programm?
 
'''Arbeitsergebnis''' in SVN: <code>SVN Log</code></code>
 
== Bewertung ==
{| class="wikitable"
|-
|-
| '''Aufgabe'''|| '''Punkte'''
|  
[https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/Arduino/DemoEEPROM/DemoEEPROM.ino SVN: DemoEEPROM.ino]
|-
|-
| 12.1|| 2
|}
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tutorials&thinsp;</strong>
|-
|-
| 12.2|| 2
|  
* [https://docs.arduino.cc/learn/built-in-libraries/eeprom Arduino.cc: EEPROM Library]
* [https://docs.arduino.cc/learn/programming/eeprom-guide Arduino.cc: A guide to EEPROM]
|-
|-
| 12.3|| 2
|}
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Video Tutorial: EEPROM&thinsp;</strong>
|-
|-
| 12.4|| 2
|  
|-
{{#ev:youtube|https://https://youtu.be/bVH4_tet_Eo| 600 | | Video 1: So funktioniert der Arduino EEPROM|frame}}
| 12.5|| 2
|-
|-
|}
|}
----
=== Aufgabe 13.5: Nachhaltige Doku ===
* Sichern Sie alle Ergebnisse mit beschreibendem Text (<code>message</code>) in SVN.
* Beachten Sie dabei die [[Software_Anforderungen|Software Anforderungen]].


== Tutorials ==
'''Arbeitsergebnisse''' in SVN: <code>SVN Log</code></code>, <code>Lernzielkontrolle_Termin_13.pdf</code>
* [https://docs.arduino.cc/learn/built-in-libraries/eeprom Arduino.cc: EEPROM Library]
* [https://docs.arduino.cc/learn/programming/eeprom-guide Arduino.cc: A guide to EEPROM]
* [[PTC_Temperatursensor_KTY_81-210| HSHL-Wiki: PTC Temperatursensor (KTY81-210)]]
* [[Temperatursensor_NTC_MF58_3950_B| HSHL-Wiki: NTC Temperatursensor (MF58 3950 B)]]


== Demos ==
== [[Datei:Lektionen.jpg|60px]] Ausblick zur nächsten Lektion ==
[https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/Arduino/DemoEEPROM/DemoEEPROM.ino SVN: DemoEEPROM.ino]
In der nächsten Lektion findet die Abschlussprüfung statt.


== Literatur ==
== Literatur ==
Zeile 169: Zeile 187:


----
----
→ zurück zum Hauptartikel: [[Arduino_Praxiseinstieg|Arduino Praxiseinstieg]]
→ Termine [[Einführungsveranstaltung Informatikpraktikum 1|0]] [[Einarbeitung_in_die_Versionsverwaltung_SVN|1]] [[Einstieg_in_die_Welt_des_Arduino|2]]  [[Arduino: Taster auswerten und LEDs ansteuern|3]] [[Arduino:_Sensoren_einlesen|4]]  [[Arduino:_Infrarotsensor_einlesen|5]] [[Arduino:_Infrarotsensor_entstören|6]] [[Arduino:_Programmier-Challenge_I_WS_WS_25/26|7]] [[Arduino:_IR-Theremin|8]] [[Arduino:_Aktoren|9]] [[Arduino:_LCD_Display_mit_I2C_Schnittstelle|10]] [[Arduino:_Ultraschall_Entfernungsmessung|11]] [[Arduino:_Ultraschallsensor_entstören|12]] [[Arduino:_Temperaturmessung_mit_NTC_und_PTC|13]] [[Arduino:_Programmier-Challenge_II_WS_25/26|14]]<br>
→ zurück zum Hauptartikel: [[Arduino_Praxiseinstieg_WS_25/26|Arduino Praxiseinstieg]]<br>
→ Haben Sie Fragen? [[Informatik Praktikum FAQ]]<br>

Aktuelle Version vom 19. März 2026, 11:27 Uhr

Abb. 1: NTC Temperatursensor
Autor: Prof. Dr.-Ing. Schneider
Modul: Praxismodul I
Lektion 13: Mechatronik, Informatikpraktikum, 1. Semester, Wintersemester

Inhalt

  • Temperaturkennlinie von NTC und PTC
  • Temperaturmessung mit NTC und PTC
  • Datenspeicherung im EEPROM


Lernziele

Nach Durchführung dieser Lektion

  • können Sie mittels NTC und PTC Temperaturen messen.
  • können die Funktion und die Kennlinien eines NTC und PTC beschreiben.
  • können Sie Messwerte im EEPROM ablegen und auswerten.

Lernzielkontrolle

  1. Was ist ein NTC? Wie funktioniert er?
  2. Mit welcher Schaltung kann man mit einem NTC die Temperatur messen?
  3. Wie lautet der Zusammenhang T=f(RNTC)?
  4. Setzen Sie die Formel in C um und testen Sie diese mit den Messwerten aus dem NTC-Datenblatt.
  5. Was ist ein PTC? Wie funktioniert er?
  6. Mit welcher Schaltung kann man mit einem PTC die Temperatur messen?
  7. Wie lautet der Zusammenhang T=f(RPTC)?
  8. Setzen Sie die Formel in C um und testen Sie diese mit den Messwerten aus dem PTC-Datenblatt.
  9. Unter welchen Bedingungen nutzen Sie einen NTC oder PTC?
  10. Was bedeutet EEPROM?
  11. Wie groß ist das EEPROM vom Arduino Uno R3?
  12. Wo auf der Platine vom Arduino Uno R3 befindet sich das EEPROM?
  13. Wie häufig können Sie das EEPROM beschreiben?
  14. Welche Daten würden Sie im EEPROM ablegen?
  15. Beschreiben Sie alle Methoden der Klasse EEPROM.h (crc, get, put, read, update, write).

Arbeitsergebnisse in SVN: Lernzielkontrolle_Termin_13.pdf

Tutorials

Demos

Versuchsvorbereitung

  1. Bereiten Sie sich anhand der Tutorials und Demos vor.
  2. Planen Sie alle Programme als PAP.
  3. Beantworten Sie die Lernzielkontrollfragen.
  4. Arbeiten Sie nachhaltig in SVN.

Versuchsdurchführung

Aufgabe 13.1: Besprechung der Versuchsvorbereitung

Diskutieren Sie mit Prof. Schneider die Ergebnis Ihrer Vorbereitung.


Aufgabe 13.2: Temperaturmessung mit einem NTC

  1. Messen Sie den Widerstandswert des NTC (z. B. 100 kΩ).
  2. Bauen Sie die Grundschaltung für eine Temperaturmessung mit NTC auf. Dimensionieren Sie dabei den Spannungsteiler entsprechend des NTC-Widerstandswertes.
  3. Lesen Sie die Spannung am Analogpin A0 ein.
  4. Berechnen Sie aus dem Digitalwort den Widerstand R(T) in Ω.
  5. Formen Sie die Formel R(T) nach T um.
  6. Berechnen Sie mit Ihrer Formel die Temperatur in °C.
  7. Visualisieren Sie die Temperatur in °C im seriellen Plotter.

Arbeitsergebnisse in SVN: messeNTCTemperatur.ino


Aufgabe 13.3: Temperaturmessung mit einem PTC

  1. Bauen Sie die Grundschaltung für eine Temperaturmessung mit PTC auf.
  2. Lesen Sie die Spannung am Analogpin A0 ein.
  3. Berechnen Sie aus dem Digitalwort den Widerstand R(T) in Ω.
  4. Formen Sie die Formel R(T) nach T um.
  5. Berechnen Sie mit Ihrer Formel die Temperatur in °C.
  6. Visualisieren Sie die Temperatur in °C im Seriellen Plotter.

Arbeitsergebnisse in SVN: messePTCTemperatur.ino


Aufgabe 13.4: Datensicherung im EEPROM

  • Betreiben Sie den Arduino mit einem 9 V Batterieblock.
  • Lesen Sie einen entprellten Taster ein.
  • Sichern Sie bei Tastendruck folgende Daten im EEPROM
    • die Namen der Teammitglieder als string.
    • die Anzahl der Teammitglieder als byte.
    • die Baudrate als int.
    • die Zeit mit millis() als long.
    • die gemessene Temperatur in °C als float.
  • Messen Sie im Labor bei ca. 20 °C und im Freien bei ca. 0 °C.
  • Trennen Sie den Arduino kurz von der Spannungsversorgung.
  • Lesen Sie die im EEPROM gespeicherten Daten aus und visualisieren Sie diese im seriellen Monitor.

Arbeitsergebnisse in SVN: speichereDatenimEEPROM.ino, leseDatenausEEPROM.ino


Aufgabe 13.5: Nachhaltige Doku

  • Sichern Sie alle Ergebnisse mit beschreibendem Text (message) in SVN.
  • Beachten Sie dabei die Software Anforderungen.

Arbeitsergebnisse in SVN: SVN Log, Lernzielkontrolle_Termin_13.pdf

Ausblick zur nächsten Lektion

In der nächsten Lektion findet die Abschlussprüfung statt.

Literatur

  1. Brühlmann, T.: Arduino Praxiseinstieg. Heidelberg: mitp, 4. Auflage 2019. ISBN 978-3-7475-0056-9. URL: HSHL-Bib, O'Reilly-URL
  2. Brühlmann, T.: Sensoren im Einsatz mit Arduino. Frechen: mitp Verlag, 1. Auflage 2017. ISBN: 9783958451520. URL: HSHL-Bib, O'Reilly
  3. Snieders, R.: ARDUINO lernen. Nordhorn: 8. Auflage 2022. URL: https://funduino.de/vorwort
  4. Schneider, U.: Programmierrichtlinie für für die Erstellung von Software in C. Lippstadt: 1. Auflage 2022. PDF-Dokument (212 kb)



→ Termine 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
→ zurück zum Hauptartikel: Arduino Praxiseinstieg
→ Haben Sie Fragen? Informatik Praktikum FAQ