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.
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.
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?
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.
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.
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.
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.
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
??? 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 ;-)
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...
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...
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.
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.