www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Nachführen einer Schaltschwelle


Autor: Christian S. (mueke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich lese einen Sensor aus. Dieser gibt mir einen 14bit Wert und daraus 
bilde ich wiederumeinen Mittelwert. Das funktioniert alles soweit 
100%ig. Der Sensor reagier auf Wärmestrahlung (Bewegungsmelder). Nun 
pendelt sich der Mittelwert natürlich immer woanders ein (je nach dem wo 
der Bewegungsmelder steht draußen/drinnen).
Am Anfang setzte ich Wert k = dem Mittelwert. Wenn sich der Mittelwert 
nun weiter als eine Zahl X von dem festgesetzen Wert k entfernt, soll 
ein Flag gesetzt werden. Wenn natürlich der Mittelwert nur langsame 
veränderungen zeigt, soll der Wert k wieder = dem Mittelwert sein.
Wie kann ich das am besten realisieren?

Ich hoffe ihr habt mich verstanden ;-)

MfG
Muecke

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du brauchst vermutlich eine differentielle Erfassung der Werte, d.h., 
Dich interessiert nicht der Wert an sich sondern die Änderung (Steigung) 
des Wertes. Im einfachsten Fall wertest Du (bei konstanten 
Abtastintervallen) nur die Differenz zwischen dem aktuellen und dem 
letzten Wert aus. Wenn die einen bestimmten Wert überschreitet, dann 
wird das Flag gesetzt.

Autor: Mandrake (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist doch recht einfach. Wenn ein Bewegungsmelder eine Person detektiert,
ändert sich schlagartig das Wärmestrahlungsnieveau. Also eine schnelle 
Änderung.
Die Umgebungstemperatur ändert sich vermutlich nicht so schnell.

Ich würde das so lösen:

Mit einem IIR-Filter einen Mittelwert nachführen.
Das einfachste wäre hier alle paar Sekunden den alten Mittelwert mit 
Faktor 0,5 auf den aktuellen Momentanwert mit Faktor 0,5 auf zu 
addieren.
Dadurch steigt dein Mittelwert langsam mit der Umgebungstemperatur an.
Die Anstiegszeit kannst du mit der Periodendauer der Messwertaufnahme 
oder auch mit den beiden Faktoren ändern.

k = 1/2 k_alt + 1/2 X (IIR-Filter)

Weiter würde ich ein gewisses Delta für die Detektion einer Person 
fordern.
Das Messsignal muss also um Delta über dem nachgeführten Mittelwert 
liegen.

Probiers mal oder du musst noch mehr Infos geben.

Autor: Christian S. (mueke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK. Nach dem Schema hatte ich es versucht, aber ich hatte noch nen 
Fehler drin. Jetzt funktionierts. Danke

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.