www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Entprellung (Hardware)


Autor: Kolja W. (mrcoffee)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kolja W. (mrcoffee)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Kolja W. (mrcoffee)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: die ??? (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gebert M. (gebert)
Datum:

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

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Bernhard M. (boregard)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: die ??? (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kolja W. (mrcoffee)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kolja W. (mrcoffee)
Datum:

Bewertung
0 lesenswert
nicht 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/Tast...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.