Arduino: Temperaturmessung mit NTC und PTC: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 18: | Zeile 18: | ||
== Lernzielkontrolle == | == Lernzielkontrolle == | ||
# Was ist ein NTC? Wie funktioniert er? | |||
# Mit welcher Schaltung kann man mit einem NTC die Temperatur messen? | |||
# Wie lautet der Zusammenhang <math>T = f(R_{NTC})<math>? | |||
# Setzen Sie die Formel in C um und testen Sie diese mit den Messwerten aus dem NTC-Datenblatt. | |||
# Was ist ein PTC? Wie funktioniert er? | |||
# Mit welcher Schaltung kann man mit einem PTC die Temperatur messen? | |||
# Wie lautet der Zusammenhang <math>T = f(R_{PTC})<math>? | |||
# Setzen Sie die Formel in C um und testen Sie diese mit den Messwerten aus dem PTC-Datenblatt. | |||
# Was bedeutet EEPROM? | # Was bedeutet EEPROM? | ||
# Wie häufig können Sie das EEPROM beschreiben? | # Wie häufig können Sie das EEPROM beschreiben? |
Version vom 10. Dezember 2022, 16:18 Uhr
Autor: Prof. Dr.-Ing. Schneider
Modul: Praxismodul I
Lehrveranstaltung: Mechatronik, Informatikpraktikum 1, 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
- Was ist ein NTC? Wie funktioniert er?
- Mit welcher Schaltung kann man mit einem NTC die Temperatur messen?
- Wie lautet der Zusammenhang Fehler beim Parsen (Konvertierungsfehler. Der Server („cli“) hat berichtet: „[INVALID]“): {\displaystyle T = f(R_{NTC})<math>? # Setzen Sie die Formel in C um und testen Sie diese mit den Messwerten aus dem NTC-Datenblatt. # Was ist ein PTC? Wie funktioniert er? # Mit welcher Schaltung kann man mit einem PTC die Temperatur messen? # Wie lautet der Zusammenhang <math>T = f(R_{PTC})<math>? # Setzen Sie die Formel in C um und testen Sie diese mit den Messwerten aus dem PTC-Datenblatt. # Was bedeutet EEPROM? # Wie häufig können Sie das EEPROM beschreiben? # 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 == Bereiten Sie sich anhand der nachfolgenden Aufgaben auf den Praktikumstermin vor. # Bereiten Sie sich anhand der [[Arduino:_Temperaturmessung_mit_NTC_und_PTC#Tutorials|Tutorials]] vor. # Planen Sie alle Programme mit PAP. # Beantworten Sie die Lernzielkontrollfragen. # Arbeiten Sie nachhaltig in SVN. '''Arbeitsergebnisse''' in SVN: <code>PAP, charakterisiereUltraschaschallsensor.ino, USMessung.txt, charakterisiereUltraschallSensor.m, Lernzielkontrolle_Termin_11.pdf, GleitendesMittelwertFilter(), TiefpasstFilter()</code> == Versuchsdurchführung == === Aufgabe 12.1: Lernzielkontrolle === Präsentieren Sie Prof. Schneider das Ergebnis der Lernzielkontrolle. '''Arbeitsergebnisse''' in SVN: <code>Lernzielkontrolle_Termin_10.pdf</code> === Aufgabe 12.2: Temperaturmessung mit einem NTC === # Lesen Sie die Messwerte des Ultraschall-Sensors auf statische Ziele im gesamten Messbereich aus (10 cm, 20 cm, 50 cm, 1 m, 2 m, 3 m, 4 m). Schreiben Sie hierzu ein Arduino-Programm <code>statische Messunsicherheit.ino</code>. Jeder Messsatz sollte >100 Messwerte umfassen. # Nutzen Sie das Programm <code>Putty</code>, um die Daten der seriellen Schnittstelle in der ASCII-Datei <code>Ultraschallmessung.txt</code> zu speichern. # Schreiben Sie einmalig als Header die Bezeichnung der Messwerte Zeit in ms und Strecke in cm in die Textdatei. # Laden und visualisieren Sie die Messdaten in Ultraschallmessung.txt mit MATLAB®. # Stellen Sie die Messdaten in einem Diagramm in cm über der Zeit dar. # Berechnen Sie Mittelwert und Standardabweichung und stellen Sie diese dar, # Beschriften Sie die Graphen. '''Nützlich MATLAB®-Befehle:''' <code>mean, std, xline</code> '''Arbeitsergebnisse''' in SVN: <code>statische Messunsicherheit.ino, Ultraschallmessung.txt, zeigeUltraschallMessung.m</code> === Aufgabe 12.3: Temperaturmessung mit einem PTC === Ein gleitendes Mittlwertfilter bildet einen Mittelwert über k Messwerte mittels FIFO. # Schreiben Sie die Funktion <code>GleitendesMittelwertFilter()</code>, welches die Eingangswerte zyklisch filtert. Hier bei wird der Mittelwert über die letzten k Messwerte gebildet. # Testen Sie Ihre Funktion mit Ultraschallmesswerten mit statischen Zielen. # Visualisieren Sie Messwerte und Filterergebnis im seriellen Plotter. # Testen Sie Ihre Funktion mit Ultraschallmesswerten mit dynamischen Zielen. # Wählen Sie k anhand der Messwerte und diskutieren Sie Ihre Wahl mit Prof. Schneider. '''Arbeitsergebnisse''' in SVN: <code>testeGleitendesMittelwert.ino</code> '''Hinweis:''' * Nutzen Sie das FIFO aus Aufgabe 6.4. * Die Formel für das gleitende Mittelwertfilter lautet: <math>\bar{x}(k)=\frac{x(1)+x(2)+\ldots+x(k)}{k}} für Messwerte
Eine Einführung zu rekursiven Filtern finden Sie in folgendem Video.
- Gleitendes Mittelwertfilter: 19 m 52 s
- Tiefpasfilter: 29 m
Aufgabe 12.4: Datensicherung im EEPROM
- Sichern Sie folgende Daten im EEPROM
- die Namen der Teammitglieder als
string
. - die Anzahl der Teammitglieder als
byte
. - die Baudrate als
int
. - die Zeit mit
millis()
alslong
. - die gemessene Temperatur in °C als
float
.
- die Namen der Teammitglieder als
- Trennen Sie den Arduino von der Spannungsversorgung.
- Lesen Sie die im EEPROM gespeicherten Daten aus und visualisieren Sie diese im seriellen Monitor.
Arbeitsergebnisse in SVN: speichereDateninEEPROM.ino, leseDatenausEEPROM.ino
Aufgabe 12.5: Nachhaltige Doku
- Sichern Sie alle Ergebnisse mit beschreibendem Text (
message
) in SVN. - Wurden die Regeln für den Umgang mit SVN eingehalten?
- Wurde die 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: SVN Log
Bewertung
Aufgabe | Punkte |
12.1 | 2 |
12.2 | 2 |
12.3 | 2 |
12.4 | 2 |
12.5 | 2 |
Tutorials
- Arduino: EEPROM Library
- Anrduino.cc: A guide to EEPROM
- HSHL-Wiki: PTC Temperatursensor (KTY81-210)
- HSHL-Wiki: NTC Temperatursensor (MF58 3950 B)
Demos
Literatur
- Brühlmann, T.: Arduino Praxiseinstieg. Heidelberg: mitp, 4. Auflage 2019. ISBN 978-3-7475-0056-9. URL: HSHL-Bib, O'Reilly-URL
- Brühlmann, T.: Sensoren im Einsatz mit Arduino. Frechen: mitp Verlag, 1. Auflage 2017. ISBN: 9783958451520. URL: HSHL-Bib, O'Reilly
- Snieders, R.: ARDUINO lernen. Nordhorn: 8. Auflage 2022. URL: https://funduino.de/vorwort
- Schneider, U.: Programmierrichtlinie für für die Erstellung von Software in C. Lippstadt: 1. Auflage 2022. PDF-Dokument (212 kb)
→ zurück zum Hauptartikel: Arduino Praxiseinstieg