Forum: Mikrocontroller und Digitale Elektronik Entprellung (Hardware)


von Kolja W. (mrcoffee)


Lesenswert?

Hallo,

ich möchte einen Taster entprellen und dann auf den CLK Eingang von 
einem D-FF gehen.
Ich habe gelesen das ich das mit einem Tiefpass und einem Schmitt 
Trigger machen kann. Wie der Schmitt Trigger funktioniert weiß ich.
Allerdings kann ich mir die funktion des Tiefpass (RC Glied) nicht 
herleiten. Kann mir einer das erklären?

PS. Bin gerade im 2. Lehrjahr habe also ein wenig Ahnung (zumindest von 
den Grundlagen und Bauteilen)

Danke für die Hilfe.

von yalu (Gast)


Lesenswert?

Der Tiefpass vermindert die Amplitude des Eingangssignals (vom Taster)
bei höheren Frequenzen (beim Prellen) so weit, dass sie innerhalb des
Hysteresefensters des Schmitttriggers liegt. So kann der
Schmitttriggerausgang nicht mit der Prellfrequenz mitzappeln.

Oder anders ausgerdrückt: Das RC-Glied vergrößert die Anstiegs-
und/oder die Abfallzeit des Tastersignals. Deswegen muss der Kontakt
für eine gewisse Mindestdauer geschlossen bzw. offen sein, bevor der
Schmitttrigger umschaltet. Das RC-Glied wird so gewählt, dass diese
Mindestdauer größer als die maximale Prellzeit des Tasters ist.

von Kolja W. (mrcoffee)


Lesenswert?

Ok das habe ich verstanden, aber was ist wenn ich die Prellzeit des 
Tasters nicht kenne und sie auch nicht ermitteln kann da ich kein 
Oszilloskop zu hause habe? Bzw was ist wenn die Prellspitzen über dem 
Hysteresenfenster sind? Dann schaltet der Schmitt Trigger ja trotzdem 
und das will ich ja nicht. Also wie wähle ich mein RC Glied aus nach 
welchen Kriterien?

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?


von Kolja W. (mrcoffee)


Lesenswert?

Michael G. wrote:
> http://www.mikrocontroller.net/articles/Entprellung


Hab ich mir schon durchgelesen. Aber zur Hardware Entprellung steht da 
nicht viel bzw nicht wie ich mein RC Glied auswähle. Und ich habe keinen 
Umschalter also kann ich kein RS FF nehmen.

von Michael H* (Gast)


Lesenswert?

typische prellzeiten sind einige wenige - normalerweise sogar unter 10 - 
millisekunden. wenn du einen tiefpass mit einer zeitkonstanten von 1 
oder 2 ms nimmst, ist das in den meisten fällen sicherlich ausreichend.
ich nehme eigentlich immer nur 10k und 100n und hatte bisher noch nie 
größere probleme. mag damit zusammenhängen, dass das "tastverhältnis" 
vom prellen, so wie ich es bisher am oszi gesehen habe, eher gering ist.

von yalu (Gast)


Lesenswert?

Eine Zeitkonstante von ein paar ms hat sich bei mir auch immer
bewährt. Man darf dem Benutzer auch zumuten, dass er die Taste immer
für mindestens 0,1 s gedrückt hält und los lässt, so dass man bei der
Wahl der Zeitkonstante ziemlich viel Luft hat.

Du kannst ja mal ein wenig rumexperimentieren, um ein Gefühl dafür zu
bekommen: Kombiniere einfach verschiedene Taster mit unterschiedlichen
RC-Gliedern und unterschiedlichen "Drückcharakteristiken" des
Benutzers (lang, kurz, zaghaft, entschlossen). Dann merkst du ziemlich
schnell, in welchem Bereich die optimalen Werte liegen.

Wenn du's wirklich perfekt möchtest, musst du Taster mit Umschalt-
kontakt verwenden und wie in dem o.g. Artikel

  http://www.mikrocontroller.net/articles/Entprellung

beschalten. Dann brauchst du dich nicht mit Prellzeiten und Zeitkon-
stanten herumzuschlagen. Allerdings ist dafür der Bauteilaufwand
größer, und Taster, die gut aussehen, gibt es meist nicht als
Umschalter.

von die ??? (Gast)


Lesenswert?

Ich nehm' gerne den MAX6818 weil da ein praktischer Interruptausgang mit 
an Board ist und weil es eine saubere Sache ist.

  http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1896

Funktioniert tadellos.

von Peter D. (peda)


Lesenswert?

Michael H* wrote:
> ich nehme eigentlich immer nur 10k und 100n und hatte bisher noch nie
> größere probleme.

Also hattest Du kleinere Probleme?

Nimm besser 10k und 10µF, dann sollte die Zeitkonstante sicher 
ausreichen.

Ein typische menschliche Betätigung dauert mindestens 300ms.


Peter

von Gebert M. (gebert)


Lesenswert?

10k, (100n bis 10u) und den 74HC14 funktioniert super!

von yalu (Gast)


Lesenswert?

??? schrieb:
> Ich nehm' gerne den MAX6818 ...

Gar nicht so unpraktisch, das Teil. Aber der Preis =8-O
Gibt es das auch für deutlich weniger als 8 € + Mwst. (Farnell)?

> ... weil da ein praktischer Interruptausgang mit an Board ist

Wenn du den Interruptausgang brauchst, verwendest du sicher auch einen
Mikrocontroller. Dann kannst du die Entprellung gleich softwaremäßig
machen.

Peter Dannegger schrieb:
> Ein typische menschliche Betätigung dauert mindestens 300ms.

Da kennst du aber viele Mädels und ihre Sims-Fähigkeiten nicht ;-)

von Bernhard M. (boregard)


Lesenswert?

Ein Problem der Entrprellung kann sein, daß durch Alterung der 
Tasterkontakte die Prellzeit größer wird.
Ich hatte das mal bei Telefonen (ISDN) beim Gabelschalter, weil dann 
beim Abheben durch prellen gleich wieder aufgelegt wird...
Ältere Schalter konnten da durchaus mehrere 10ms nachprellen, so daß ein 
Entprellen von mind. 100ms notwendig war, allerdings musste aufgrund der 
max. Verzögerung nach 10ms reagiert werden.
Hardwareentprellung kommt bei Massenproduktion nicht in Frage (zu 
teuer), also musste in Software dynamisch entprellt werden:
1) nach einer Tastenänderung Tastenzustand merken und 10ms warten,
2) ist der Tastenzustand nach 10ms UNgleich dem gemerkten -> 
Tastenänderung ignorieren und auf nächste Änderung warten (dann weiter 
bei 1))
3) ist der Tastenzustand nach 10ms gleich dem gemerkten -> 
Tastenänderung dem System mitteilen und die nächsten 100ms (ich hatte 
dmals sogar 1sec.) NICHT mehr auf Tastenänderungen reagiren.
4) ist nach Ablauf dieser Zeit der Tastenzustand ungleich dem dem Zustan 
von 3) dann das ganze weiter bei 1)
5) ansonsten warten auf die naächste Tastenänderung.

Klingt jetzt komplizierter als es ist...ich habe das vor ~15 Jahren auf 
8051 und später auf 6811 implementiert...

von Michael H* (Gast)


Lesenswert?

Peter Dannegger wrote:
> Also hattest Du kleinere Probleme?

ja, tatsächlich ^^ bei irgendwelchen tastern, die ich aus der fundgrube 
ausgegraben hab, war das prellen länger als bei den kollegen. dauerte 
einige zeit, bis ich da draufgekommen bin...

von die ??? (Gast)


Lesenswert?

yalu wrote:
> ??? schrieb:
>>  Ich nehm' gerne den MAX6818 ...
>
> Gar nicht so unpraktisch, das Teil. Aber der Preis =8-O
> Gibt es das auch für deutlich weniger als 8 € + Mwst. (Farnell)?

Ich mach das per Samples. Gabs aber auch mal bei Segor für weniger als 
8€, allerdings war die Nachfrage zu gering und Maxim liefert zu 
sporadisch als dass die den MAX6818 auf Lager legen (laut der Auskunft 
vom "Tresen-Mann"). Leider.


>>  ... weil da ein praktischer Interruptausgang mit an Board ist
>
> Wenn du den Interruptausgang brauchst, verwendest du sicher auch einen
> Mikrocontroller. Dann kannst du die Entprellung gleich softwaremäßig
> machen.

Sicher, aber ich halte nichts von Softwareentprellung. Ausserdem muss 
man den Interrupt ja nicht verwenden, es geht auch mit pollen. Im 
letzten Projekt habe ich mich aber über eben diesen gefreut, mit ihm war 
eine - für meine Begriffe - saubere Lösung realisierbar.

von Kolja W. (mrcoffee)


Lesenswert?

Danke für die Antworten aber ich möchte als Schmitt Trigger gerne den 
40106 verwenden. Funktioniert das (mit 10k und 100nF) ?

Aber so richtig habe ich den Tiefpass und das mit der Zeitkonstante noch 
noch verstanden. Könnte mir das einer erklären oder mir einen Link 
schicken. Wäre ich sehr dankbar. Sonst muss ich halt warten bis es in 
der Schule drankommt.

Danke

von Jadeclaw D. (jadeclaw)


Lesenswert?

Ausprobieren sage ich mal.
Bei den aus einer Videorecorderplatine ausgelöteten Tastern waren 
allerdings schon 50kOhm / 100nF notwendig, damit es Ruhe gab. Da kein 
Mensch so schnell drücken kann, nimm einfach 100kOhm und 100nF. Das gibt 
100mS und 10x pro Sekunde drücken schafft kein Mensch. Damit sollte 
alles außer dem allerübelsten Schrott ruhig zu bekommen sein. 
Alternative: Wenn die Taster noch nicht vorhanden sind, Umschalttaster 
(Schadow Digitast) verwenden und auf ein RS-FlipFlop geben. ein 7400 (4 
x 2 fach NAND) reicht für 2 Taster.
Siehe hier:
http://www.loetstelle.net/praxis/entprellen/entprellen.php

von Peter D. (peda)


Lesenswert?

Kolja W. wrote:
> Aber so richtig habe ich den Tiefpass und das mit der Zeitkonstante noch
> noch verstanden.

Also der Kondensator ist entladen.
Nun schaltest Du den Widerstand gegen VCC und der Kondensator lädt sich 
auf. Wenn er die Schwellspannung des Schmitt-Trigger erreicht, kippt 
dieser um. Dann ist die Entprellzeit vergangen.
Die Schwellspannung steht im Datenblatt, überschlagsmäßig kann man 
2/3*VCC annehmen.
Die Aufladekennlinie eines Kondensators ist die bekannte e-Funktion.


Peter

von Kolja W. (mrcoffee)


Lesenswert?

Peter Dannegger wrote:

> Also der Kondensator ist entladen.
> Nun schaltest Du den Widerstand gegen VCC und der Kondensator lädt sich
> auf. Wenn er die Schwellspannung des Schmitt-Trigger erreicht, kippt
> dieser um. Dann ist die Entprellzeit vergangen.
> Die Schwellspannung steht im Datenblatt, überschlagsmäßig kann man
> 2/3*VCC annehmen.
> Die Aufladekennlinie eines Kondensators ist die bekannte e-Funktion.
>
>
> Peter

Das ist doch bei einem Invertierenden Schmitt Trigger so odeR? Bei einem 
Nichtinvertierenden entläd sich der Kondensator dann ja über den 
wiederstand nach GND? OdeR? 
http://www.mikrocontroller.net/wikifiles/d/d0/Taster_entprellen.png

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.