Temperaturmessung per AVR

Gast #63974
Lesenswert?
• ▲
▼
Guten Abend

Ich habe da ein kleines Problem wo mir Kopfschmerzen bereitet. Ich
will/muss mehrere Temperaturen (6 Messpunkte) mit einem AVR erfassen.
So jetzt habe ich mir gedacht nehme doch einfach einen PT100/PT1000 und
digitalisiere den Spannungsfall am Wiederstand per ADC und werte das
ganze mit dem AVR aus! So die Sache soll sehr genau werden, also so
min. 0,5°C Genauigkeit. Da 6 Messbrücken etwas viel Platz und Aufwand
bedeuten habe ich folgende Idee.
Die Schaltung wird von einem Präzisions Spannungswandler (+5V)
gespeist. So jetzt bau ich noch eine Präzisions Stromquelle ein die die
Messfühler versorgt. Somit würde ich mir die Messbrücken sparen da ja
Temperatur-, Spannungs- und Stromschwankungen relativ gering sein
dürften!
Was haltet Ihr von der Idee??
Gast #63978
Lesenswert?
• ▲
▼
Ein ähnliches Verfahren wie Bernhard habe ich auch schon eingesetzt:

64 der 10-Bit-AD-Werte aufaddieren, ergibt einen Pseudo-16-Bit-Wert.
Natürlich nicht mit 16-Bit Genauigkeit, aber doch wesentlich besser als
einzelne AD-Messwerte.

Stefan
Gast #63979
Lesenswert?
• ▲
▼
Guten Abend

@ Stefan und Bernhard

Könnte einer von euch vielleicht so nett sein das genauer zu erklären?
Gleitende Mittelwertbildung????? 64 der 10-Bit-AD-Werte aufaddieren,
ergibt einen Pseudo-16-Bit-Wert ?????

Habe mal Elektroniker gelernt (EEAN) aber seit 6 Jahren nix mehr mit
Elektronik am Hut. Bin leider direkt nach der Ausbildung in nen anderen
Job gekommen (Wartung vom ICE --> Steckkarte raus neue rein)! Bin etwas
ausser Übung und arbeite mich grad wieder ein.
Für Hilfe bin ich euch sehr dankbar.

Sascha
Gast #63980
Lesenswert?
• ▲
▼
Hallo Samy

Es werden einfach mehrere Messwerte addiert und dann durch die Anzahl
der addierten Messwerte dividiert.

Damit fallen einzelene "Ausreißer" nicht so ins Gewicht.

Mann nimmt dafür oft eine Anzahl, die man durch schieben nachher leicht
dividieren kann. 2, 4, 8, 16, 32,64 usw. Ist durch rechts schieben
leicht zu erledigen.

MFG

Dieter
Gast #63981
Lesenswert?
• ▲
▼
Wenn DU AD-Messungen machst, dann wirst Du bemerken, dass Du selten
exakt dassselbe misst - der Wert "wackelt" immer ein bischen. Also:

eigendlicher Wert: 72,3
gemessen: 72, 73, 72, 71, 75, 72, 74, 71

Dieser Effekt kommt vom Rauschen auf der Schaltung, oder vom Rauschen
Deines Mess-Signals. Das kann Dich ärgern, oder Du machst was draus.

Wenn Du alle Werte addierst (im Beispiel 8), dann kommst Du auf 580.
Geteilt durch alle 8 Messwerte würdest Du einen Mittelwert von 72,5
bekommen. Das kommt doch schon wesentlich besser ran als die
Einzel-Messwerte.

Genau betrachtet kann Dir das Rauschen nämlich auch helfen. Angenommen,
Du hast einen idealen Wandler und eine ideale Messspg. Dann ist Dein
Messfehler bis zu +/- 1/2 Bit. Im oberen Fall würdset Du immer 72
messen und damit 0,3 Abweichung haben. Liegt jetzt aber ein (ideales)
Rauschen auf Deinem Messsignal, dann misst Du abwechselnd 72 und 73,
wenn Diu viele Werte aufaddierst und danach durch die Anzahl teilst,
wirst Du (im Idealtfall) wirklich auf die 72,3 kommen. Obwohl das Dein
AD-Wandler EIGENDLICH garnicht kann. Wenn Du Dich näher damit
beschäftige willst, such mal unter Quantisierungsrauschen.

Mit 72,3 sind wir leider schon im Bereich des Flieskommas. Das ist
immer ärgerlich, weil viel Rechnerei und grosse Bibliotheken. Deswegen
kommt jetzt ein Rechen-Kniff.
Eigendlich interessiert Dich die Zahl 72,3 überhaupt nicht. Den Wert
des AD-Wandlers musst Du ja eh interpretieren, in Deinem Fall als
Temperatur. Dann kannst Du auch gleich sagen: ich addiere 64 Werte auf
und interpretiere dann das Ergebnis als (Pseudo-) 16-Bit-Wert.

Warum 64 und warum 16 Bit?
Dein Wandler hat 10 Bit, macht 1023 als Maximalwert. Davon kannst Du
maximal 64 Stück in einem 16-Bit Wert aufaddieren. Bitte beachten:
unsigned verwenden! Das Ergebnis kann genaugenommen nicht den
Maximalwert einer 16-Bit-Zahl annehmen, sondern 63 Ticks darunter,
sprich: 1023 * 64.

Ich hoffe mal, das war einigermassen verständlich...

Viele Grüße, Stefan
Gast #63982
Lesenswert?
• ▲
▼
Hallo Stefan,

ich hätte es nicht besser sagen können.
Kleine Ergänzung:
Gleitende Mittelwertbildung bedeutet n gemessene Werte aufaddieren und
durch n teilen. Bei jeder neuen Messung wird dann der älteste Messwert
ersetzt und wieder der Mittelwert gebildet.

Bernhard

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.