Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage Input Capture/Frequenz/Timer mit Tastenentprellung


von Dominik Steg (Gast)


Lesenswert?

Hallo,

ich beschäftige mich erst seit 3 Wochen mit AVR's und habe erste LED's 
zum leuchten und blinken gebracht.
Ich lese fleißig die Tutorials und möchte nun eine Frequenz mittels 
einem Reedkontakt und einem Magnet (schmutzunempfindlich) einlesen and 
einem Prüfstand.
Der Prüfstand dreht bis zu 16000 U/min, ca. 267Hz, d.h. ca. 3,75ms.
Ich dachte da an die input capture Funktion, die soll ja für solche 
Fälle sein.
Der Reedkontakt muss ja entprellt werden. Bis jetzt habe ich die Routine 
aus dem Tutorial von Peter Danegger genommen, wo die Taste über den 
Timer 4x geprüft wird.
Nur geschieht der overflow in dieser Routine (die ich leider nicht 
verstehe, sondern einfach übernommen habe) alle 10ms.
Wen ich jetzt bei voller Drehzahl aber alle 3,75ms ein Signal bekomme, 
dann wäre doch das "Abtasten" der Tasten alle 10ms zu spät.
Kann man das Problem mit EINEM Timer lösen? Denn ich möchte ja auch die 
Drehzahl über die Zeit berechnen.

Danke!
Dominik

von Peter D. (peda)


Lesenswert?

Dominik Steg schrieb:
> Der Prüfstand dreht bis zu 16000 U/min, ca. 267Hz, d.h. ca. 3,75ms.

Da dürfte ein mechanischer Kontakt mit 2ms Prellzeit überfordert sein. 
Gerade Reed-Kontakte sind besonders langsam.
Nimm nen Hall-IC.


Peter

von Dominik Steg (Gast)


Lesenswert?

Hallo Peter,

mit welcher Prellzeit rechnet man bei mechanischen Kontakten?

Gruß
Dominik

von Dominik Steg (Gast)


Lesenswert?

Hallo nochmal,

bleibt jedoch dann trotzdem die Frage noch weiter bestehen, wie ich das 
mit einem Timer managen kann, da ja der Kontakt alle 3,75ms geschlossen 
wird. Oder ist hier zwingend ein weiterer Timer erforderlich, dann 
müsste ich einen anderen µC mit 2-Timern wohl verwenden...

von Ulrich (Gast)


Lesenswert?

Man braucht keinen 2 ten Timer. Das Entprellen kann man so lösen, dass 
einer Flanke ersteinmal für die Prellzeit oder etwas länger (z.B. 2-3 
ms)  keine weiteren Signale angennommen werden. Die Verzögerung und die 
Messung der Zeit kann man mit einem Timer lösen. Die Wartezeit muß ja 
auch nicht so exakt sein, Hauptsache länger als die Prellzeit.

Wenn die Prellzeit allerdings zu lang ist geht es einfach nicht mit dem 
Kontakt.

von Florian S. (der_picknicker)


Lesenswert?

Auch solltest du bedenken, dass die Abtastrate (also das Abfragen des 
Pins) doppelt so hoch sein sollte, wie die max. Eingangsfrequenz um 
Informationsverlust (also falsche Berechnungen) zu vermeiden. Mehr dazu 
hier:
http://de.wikipedia.org/wiki/Abtastrate
http://de.wikipedia.org/wiki/Nyquist-Shannon-Abtasttheorem

von Reed-Schalter (Gast)


Lesenswert?

Hallo Dominik,

ich rate Dir dringend zu einem Hall-IC.
Von einem ähnlichen Problem stand ich auch schon mal, schon viele Jahre 
her. Ich habe den Gedanken Reed-Kontakt, so verlockend das auch sein mag
sehr schnell aufgegeben. Grund war die Lebensdauer des Reed-Kontaktes.
Rechne Dir mal aus, wie lange das Teil hält, Anzahl der Schaltungen (aus
Datenblatt) und dann aus der Einschaltdauer bzw. Laufzeit des 
Prüfstandes
die Lebensdauer errechnen..............

Dann kommst Du vermutlich schnell vom Reed-Kontakt ab. Ich habe die 
Entscheidung kein Reed-Kontakt nicht bereut..........

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.