Forum: Mikrocontroller und Digitale Elektronik Mit RC-Tiefpass entprellen


von OP (Gast)


Lesenswert?

Hallo,

ich habe in einer Schaltung einen Taster mit Pull-up Widerstand, so dass 
am Prozessor Pin low anliegt, wenn der Taster gedrückt ist. Natürlich 
muss dieser entprellt werden, und das soll über ein RC-Tiefpass 
geschehen, da Software-Entprellung zu viel Speicher verbraucht.

Jetzt habe ich mit dem Oszi die min. Zeit gemessen. Das heißt, sollte 
das Signal länger als diese Mindestzeit low sein, ist der Taster auf 
jeden Fall gedrückt. Und die Frage ist jetzt:
Wie muss ich die Zeitkonstante vom RC-Tiefpass wählen, damit das Signal 
wirklich erst dann nach dieser Zeit low ist?

von Max H. (hartl192)


Lesenswert?

Ich würde einfach einen Kondensator parallel zum Taster schalten und die 
Zeitkonstante so berechnen, dass dich der Kondensator in der Prellzeit 
nicht über die Schwelle des Eingangs laden kann. Das Signal geht sofort 
auf low, während des Prellens aber nicht mehr auf high, da sich der 
Kondensator in dieser Zeit nicht bis auf die Schaltschwelle laden kann. 
Auf high geht der Eingang erst, wenn sich wer kondensator noch dem 
letztem Prellen beim Loslassen der Taste auf die Schaltschwelle geladen 
hat.
Das würde dann so aussehen: 
http://blog.cc-robotics.de/wp-content/uploads/2007/03/entprell.png


OP schrieb:
> da Software-Entprellung zu viel Speicher verbraucht.
Wie viel ist zu viel?
Ich realisiere die Soft-Entprellung immer mit Flankenerkennung in einem 
Timer Interrupt. Ich brauche 3 Byte RAM und brauche nur für die 
Flankenerkennung 7 ASM-Befehle für einen gesamten Port.

: Bearbeitet durch User
von Bastler (Gast)


Lesenswert?

>Ich würde einfach einen Kondensator parallel zum Taster schalten...

Nein! Damit wird der Kondensator direkt mit dem Taster kurzgeschlossen.
Auch bei kleinen Cs fließen große Spitzenströme und die Kontakte werden 
sich freuen.


> da Software-Entprellung zu viel Speicher verbraucht.
Naja, sooo viel ist es ja nicht.
Ich mache es momentan mit einer Abfrage und einer Zeitscheibe, die es 
schon gibt. (Ich weiß, ist nicht optimal)
Funktioniert mit drei Tastern problemlos.

von Reinhard Kern (Gast)


Lesenswert?

OP schrieb:
> da Software-Entprellung zu viel Speicher verbraucht.

Dazu braucht man einen Zähler, also 1 Byte.

Gruss Reinhard

von Max H. (hartl192)


Lesenswert?

Bastler schrieb:
> Auch bei kleinen Cs fließen große Spitzenströme und die Kontakte werden
> sich freuen.

Dann kommt noch ein Widerstand der in Serie zum Kondensator. Man muss 
bei der Berechnung von R und C den Spannungsabfall auf diesem Widerstand 
miteinberechnen.

Bei z.B. einem 100 Ohm Widerstand wir der Strom auf 50mA begrenzt. Bei 
einem PullUp von 10k dürfte der Abfall an Widerstand wenig bis einen 
vernachlässigbaren Einfluss haben.

: Bearbeitet durch User
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.