Wie Temperaturschwankungen filtern ?

Gast #1783703
Lesenswert?
• ▲
▼
Guten Morgen,

ich habe ein EVA Board mit einem AT90S8535 und einen Display.
Angeschlossen habe ich dabei einen Temperatursensor vom Typ: DS1820.
Nun ist es so das die ankommenden Werte relativ stark schwanken.
Ich hab mir überlegt dafür einen IIR Filter (zeitliche Filterung) zu 
implementieren.
Einen Mittelungsfilter möchte ich nicht einsetzen. Ich möchte
ein paar praktische Erfahrungen dabei sammeln. Wie müsste ich dabei 
genau vorgehen? Danke im voraus.
Gast #1783772
Lesenswert?
• ▲
▼
Könnte ich so einen IIR-Filter erster Ordnung verwenden?

y(n)= a * x(n) + (1-a)*y(n-1)

Ich muss noch was ergänzen. Ich lese die Werte vom Temp. Sensor in der 
while(1) Schleife von main ein (Polling betrieb). Wie könnte ich da die 
Zeitermitteln wie schnell die Werte eingelesen werden. Ich denke die 
Zeit ist das schon sehr sehr kurz.
Gast #1783808
Lesenswert?
• ▲
▼
Hi,


"a" ergibt sich aus der gewünschten Filterzeitkonstante und deiner 
Abtastzeit. Setz dir einfach parallel einen Timer auf und lies dessen 
Zählregister, wenn wieder eine aktuelle Temperatur vorliegt. Bilde die 
Differenz mit dem Zählregisterwert, als die letzte Temperatur vorlag und 
berechnet die Zeitdifferenz. Dann kannst du "a" neu berechnen und den 
Filter für den neuen Temperaturwert durchrechnen.

Alternativ einfach in einer Timer-ISR zyklisch ein "lies Temperatur" 
Flag setzen und dieses im Background abpollen. Dann kannst du "a" fix 
lassen. Bei der endlosen Zeit die der Sensor braucht, sollte das die 
bessere und einfachere Variante sein.


Gruß,
Alex

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.