Reed für Tacho und Entprellung in Software, C, Interrupt

Gast #1727523
Hallo zusammen!
Zum Thema Entprellung in Software gibt es schon wahnsinnig viel doch hat 
mir die Suche/Google nicht wirklich weitergeholfen. Vieles, was ich fand 
war in Assembler oder Bascom und Peter Daneggers Komfortroutine ist so 
umfangreich, dass es mir schwer fällt, mich einzuarbeiten. Ich schildere 
einfach mal die Situation:

Bei Fahrzeugen mit einem Reifenumfang zwischen 100cm und 150cm sollen 
Geschwindigkeiten zwischen 5 und 200 Stundenkilometern gemessen werden. 
Hierzu befindet sich am Rad ein Magnet, an der Gabel ein Reed-Kontakt 
welcher den INT0-Pin eines Atmega32 auf Low schaltet.
Leider prellt der Reed sehr stark. Leider habe ich kein Foto vom Oszi 
aber es gibt 1-3 peaks jedes Mal, wenn der Magnet vorbeirauscht.

Das erste Problem ist eine Rechenaufgabe. Angenommen, der Reifenumfang 
ist 100cm und die Geschwindigkeit 200km/h. Dann rauscht der Magnet etwa 
56 Mal pro Sekunde vorbei. Alle gut 17ms also.

Prellt der Reed-Kontakt also länger als 17ms wars das für mich also 
schon, oder? Gibt es hierzu Erfahrungswerte? Ich habe mir leider nicht 
notiert, wie weit die Peaks auseinander lagen und gerade kein Oszi zur 
Verfügung :(

Ich kann mir auch gut vorstellen, dass das Verhalten des Reeds sich 
abhängig der Geschwindigkeit ändert. Gehen wir von einem großen Reifen 
und einer geringen Geschwindigkeit aus, so kommt der Magnet nur noch 
etwa ein Mal pro Sekunde vorbei und passiert den Sensor natürlich auch 
sehr langsam. Ich könnte mir vorstellen, dass die Peaks dann auch weiter 
auseinander liegen und von der Entprellung nicht mehr erfasst werden. 
Oder ist das Unsinn?

Weitere Fragen beziehen sich auf die Umsetzung in Software. Bevor ich 
die ausformuliere wäre es aber vielleicht sinnvoll, wenn mir jemand 
sagen würde, ob ich der Problemstellung unter diesen Vorraussetzungen 
überhaupt Herr werden kann.

Vielen Dank und beste Grüße!
Gast #1727576
Das ist eine sehr gute Idee. Ich habe sogar noch einen in der Kramkiste 
gefunden (TLE4905L) und das Prellen ist weg. Spart mir viel Arbeit und 
ist nicht mal teurer. Danke!
Man sollte halt nicht einfach irgendwelche Lösungen 
übernehmen(Fahrradtacho) sondern erst einmal selbst nachdenken.
#1728042
Fritz Walter schrieb:
> Prellt der Reed-Kontakt also länger als 17ms wars das für mich also
> schon, oder?

Ja.
Das Nutzsignal muß von der Störung unterscheidbar sein.

Du kannst nach dem Interrupt ihn für eine Totzeit von 15ms sperren 
(Timerinterrupt). Dann vor dem Freigeben das Interruptflag löschen nicht 
vergessen.


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.