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

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 38: 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?
'''Arbeitsergebnisse''' in SVN: <code>Lernzielkontrolle_Termin_13.pdf</code>
# Wurde auf <code>magic numbers</code> verzichtet?
 
# Wurde die [[Medium:Programmierrichtlinie.pdf|Programmierrichtlinie]] eingehalten?
== Tutorials ==
== Tutorials ==
* [https://docs.arduino.cc/learn/built-in-libraries/eeprom Arduino.cc: EEPROM Library]
* [https://docs.arduino.cc/learn/built-in-libraries/eeprom Arduino.cc: EEPROM Library]
Zeile 50: Zeile 49:
== Demos ==
== 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/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]
*[https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoMessePTCTemperatur/DemoMessePTCTemperatur.ino SVN: DemoMessePTCTemperatur.ino]


== Vorbereitung ==
== Versuchsvorbereitung ==
Bereiten Sie sich anhand der nachfolgenden Aufgaben auf den Praktikumstermin vor.
# 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 13.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_13.pdf</code>
----
=== Aufgabe 13.2: Temperaturmessung mit einem NTC ===
=== Aufgabe 13.2: Temperaturmessung mit einem NTC ===
# Messen Sie den Widerstandswert des NTC (z.&thinsp;B. 100&thinsp;kΩ).
# Messen Sie den Widerstandswert des NTC (z.&thinsp;B. 100&thinsp;kΩ).
Zeile 78: 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 89: 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]
|-
|}
----
----


Zeile 102: 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 112: Zeile 120:


Die Lösung finden Sie in [1, S. 144ff.].
Die Lösung finden Sie in [1, S. 144ff.].
 
|-
'''Demo:''' [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/Arduino/DemoMessePTCTemperatur/DemoMessePTCTemperatur.ino SVN: DemoMessePTCTemperatur.ino]
|}
</div>
{| 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]
|-
|}
----
----


Zeile 132: 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://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/Arduino/DemoEEPROM/DemoEEPROM.ino SVN: DemoEEPROM.ino]  
|-
|}
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tutorials&thinsp;</strong>
|-
|
* [https://docs.arduino.cc/learn/built-in-libraries/eeprom Arduino.cc: EEPROM Library]
* [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]
* [https://docs.arduino.cc/learn/programming/eeprom-guide Arduino.cc: A guide to EEPROM]
 
|-
|}
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Video Tutorial: EEPROM&thinsp;</strong>
|-
|
{{#ev:youtube|https://https://youtu.be/bVH4_tet_Eo| 600 | | Video 1: So funktioniert der Arduino EEPROM|frame}}
{{#ev:youtube|https://https://youtu.be/bVH4_tet_Eo| 600 | | Video 1: So funktioniert der Arduino EEPROM|frame}}
|-
|}
----


</div>
----
=== Aufgabe 13.5: Nachhaltige Doku ===
=== Aufgabe 13.5: Nachhaltige Doku ===
* Sichern Sie alle Ergebnisse mit beschreibendem Text (<code>message</code>) in SVN.
* Sichern Sie alle Ergebnisse mit beschreibendem Text (<code>message</code>) in SVN.
* Wurden die Regeln für den Umgang mit SVN eingehalten?
* Beachten Sie dabei die [[Software_Anforderungen|Software Anforderungen]].
* 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>


'''Arbeitsergebnisse''' in SVN: <code>SVN Log</code></code>, <code>Lernzielkontrolle_Termin_13.pdf</code>


== [[Datei:Lektionen.jpg|60px]] Ausblick zur nächsten Lektion ==
In der nächsten Lektion findet die Abschlussprüfung statt.


== Literatur ==
== Literatur ==
Zeile 165: Zeile 187:


----
----
→ 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_24/25|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_24/25|14]]<br>
→ 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]]
→ 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