Forum: Mikrocontroller und Digitale Elektronik Temperaturmessung per AVR


von Samy (Gast)


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??

von Dirk (Gast)


Lesenswert?

Hi,

vielleicht ist es mit einem 1 Wire Sensor oder TWI(I2C) Bus Sensor
einfacher und billiger.


Mfg

Dirk

von Samy (Gast)


Lesenswert?

Ja da gibt es noch ein Prob. Die Sensoren erfassen ne Wassertemperatur
d.h. ich muss die Dinger dicht irgendwie einbauen. Das einzige was ich
gefunden habe mit Gewinde und geeignet für flüssige Medien sind PT100
bzw. PT1000.!

von Bernhard Koopmeiners (Gast)


Lesenswert?

Hallo Samy,

einfach Deinen PT100 als Spannungsteiler schalten und mit dem ADC
einlesen. Gleitende Mittelwertbildung über mindestens 32 Messwerte und
Deine Genauigkeit ist locker erreicht.

Bernhard

von Stefan Kleinwort (Gast)


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

von Samy (Gast)


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

von Dieter B. (Gast)


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

von Stefan Kleinwort (Gast)


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

von Bernhard Koopmeiners (Gast)


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

von Stefan Kleinwort (Gast)


Lesenswert?

Danke danke :-))

Mit der Methode habe ich übrigens schon eine Akkumessung (Delta-V)
gebaut, das hat ziemlich gut geklappt.

Stefan

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.