Gast
#4249260
Hallo zusammen Ich bin gerade dabei mir eine Ableseeinheit für meinen Gaszähler zu bauen. Da der Gaszähler keine magnetische Abfrage unterstützt nutze ich die Abfrage mittels Reflexlichtschranke. Die Ziffer 6 in der letzen Stelle des Zählers besitzt eine kleine Spiegelfläche. Das Messen geschieht mit einem ATTiny85, das klappt eigentlich auch soweit. Nachdem ich ein paar Messreihen aufgenommen habe, konnte ich mit Hilfe eines digitalen Tiefpasses auch die Werte für eine obere (100) und untere (50) Hysterese finden. Im Normalfall funktioniert das so weit so gut. Aber, wenn der Zählerstand genau auf der Ziffer 6 stehen bleibt, dann schaukeln sich die Werte nach dem Tiefpass auf und ich erhalte falsche Daten. Der Sensor wird alle 200ms abgefragt. Das Abfrageergebniss geht in diese Filterfunktion ein: out = in - last_in + coeff * last_out ; mit coeff = 1 Wenn der Zähler sich dreht sieht das so aus wie im Bild "Gaszähler-Normalfall.png". Es sind zwei Umdrehungen dargestellt. Wenn der Zähler aber genau mit der Spiegelfläche bei Sensor stehen bleibt dann klappt das mit meiner Filterfunktion nicht mehr (Bild Gaszähler-Sonderfall.png). Der Ausgangswert wandert um den oberen Hysterese Wert herum. Welche Art von Filterfunktion könnte ich verwenden damit auch der Sonderfall nicht zu fehlerhaften Werten führt? Bin für jede Hilfe dankbar.

