Forum: Mikrocontroller und Digitale Elektronik Mit Hardware entprellen


von Mike1996 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

war heute in dem Thred "Taster entprellen" schon aktiv und will den User 
dort jetzt nicht das Thema stehlen.

Wie dimensioniere ich am besten eine Hardare entprellung wie sie oben im 
Anhang zu sehen ist ?

Ich programmiere einen Arduino UNO mit 16MHz.
Eingangspin auf internen Pull Up geschaltet.

Schaut man da auf das T("Tau") ?

lg

von Ralf B. (Firma: Scorptech) (mad_scorp)


Lesenswert?

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

Mit Berechnung und Beschreibung.

von Forist (Gast)


Lesenswert?

Mike1996 schrieb:
> war heute in dem Thred "Taster entprellen" schon aktiv und will den User
> dort jetzt nicht das Thema stehlen.

Das ist sehr löblich. Meinst du in einem zweiten Thread kommt etwas 
anderes raus, abgesehen davon, dass das Thema nur wirklich uralt ist.

Erstmal musst du die maximale Prellzeit deines Tasters und die 
Schaltschwellen (Schmitt-Trigger Eingang!) kennen. Dann kannst du 
anfangen zu rechnen.
τ hilft dir dabei nicht direkt weiter, weil die Lage der Schaltschwellen 
nichts mit 1/e*U0 zu tun hat.

von P. Loetmichel (Gast)


Lesenswert?

Mit BASCOM musst du blos den DEBOUNCE Befehl aufrufen.

von Stefan F. (Gast)


Lesenswert?

Pi mal Daumen ist die Zeit Pull-Up * C.

Wobei der Pull-Up bei AVR und STM32 typischerweise etwa 50k Ohm hat. Der 
Wert des Begrenzungswiderstandes sollte 1/10 vom Pull-Up sein oder 
kleiner. Alles zwischen 100 Ohm und 4,7k Ohm ist geeignet.

Wenn ich zum Taster keine konkreten Angabe habe, rechne ich mit 20ms bei 
Tastern mit Klick-Effekt oder 50ms bei Tastern ohne spürbare Rastung.

von Mike1996 (Gast)


Lesenswert?

Wieso kann ich nicht einfach euer Wissen haben, kaum löse ich was oder 
erlerne etwas neues stehe ich schon wieder vor einer neuen 
herausforderung. Bin zwar ein ex HTLer jedoch war ich im 
Maschinenbau-Zweig :) kann mir wer etwas empfehlen, ein Buch oder eine 
Seite wo ich von Grund auf alles lerne aber auch bezogen auf uC? Ich 
weiß Theoretisch einiges und kann auch Theoretisch überall mittratschen, 
wenns jedoch um details geht oder um die Praxis ist ein RC Tiefpass, ein 
Optokoppler,Mosfet schon wieder schwerer als gedacht.

zB Frage ich mich wie könnte ich eine Wechselspannung schalten mit einem 
uC, ein Magnetventil das AC 24V braucht. Optokoppler oder ein Transistor 
das eine Spule vom Relais schaltet und dieser dann die 24V. Ist einer 
Relaisspule egal ob ich sie jetzt mit ac oder mit dc ansteuere und und 
und. Eigentlich Grundlagen die mir zu schaffen machen.

von Einer K. (Gast)


Lesenswert?

Mike1996 schrieb:
> Wieso kann ich nicht einfach euer Wissen haben,
So stehst hier vor hunderten Mannjahren Lernarbeit.
Fein granuliert.

Bedenke:
Programmierer ist ein Ausbildungsberuf.
3 bis 4 Jahre
Hardware Entwickler ist ein Ausbildungsberuf
3 bis 4 Jahre
Da zu noch ein paar Jahre um Erfahrungen zu machen und für jedes 
Spezialgebiet nochmal 1/2 Jahr.

So kommt man fix auf 10 Jahre intensive Arbeit und weiß noch lange nicht 
alles.

von Stefan F. (Gast)


Lesenswert?

> kann mir wer etwas empfehlen, ein Buch oder eine
> Seite wo ich von Grund auf alles lerne aber auch bezogen auf uC

Dazu genügt nicht ein Buch oder eine Seite. Dazu geht man 
überlicherweise in die Bibliothek und mach ggf. eine Ausbildung.

von Joachim B. (jar)


Lesenswert?

Mike1996 schrieb:
> Frage ich mich wie könnte ich eine Wechselspannung schalten mit einem
> uC, ein Magnetventil das AC 24V braucht

PhotoMOS AQV252g
https://www.conrad.de/de/photomos-relais-1-st-panasonic-aqv252g-1-schliesser-60-vdc-60-vac-25-a-polzahl-6-504861.html

von Ralf B. (Firma: Scorptech) (mad_scorp)


Lesenswert?

Mike1996 schrieb:
> Wieso kann ich nicht einfach euer Wissen haben, kaum löse ich was oder
> erlerne etwas neues stehe ich schon wieder vor einer neuen
> herausforderung. Bin zwar ein ex HTLer jedoch war ich im
> Maschinenbau-Zweig :) kann mir wer etwas empfehlen, ein Buch oder eine
> Seite wo ich von Grund auf alles lerne aber auch bezogen auf uC? Ich
> weiß Theoretisch einiges und kann auch Theoretisch überall mittratschen,
> wenns jedoch um details geht oder um die Praxis ist ein RC Tiefpass, ein
> Optokoppler,Mosfet schon wieder schwerer als gedacht.
>
> zB Frage ich mich wie könnte ich eine Wechselspannung schalten mit einem
> uC, ein Magnetventil das AC 24V braucht. Optokoppler oder ein Transistor
> das eine Spule vom Relais schaltet und dieser dann die 24V. Ist einer
> Relaisspule egal ob ich sie jetzt mit ac oder mit dc ansteuere und und
> und. Eigentlich Grundlagen die mir zu schaffen machen.

Das ist wirklich so gut wie alles hier auf der Seite zu finden. Zwar 
speziell für die Atmels, aber das geht verallgemeinert auch für alles 
mit 5V Pegel.

Zu der Relais Frage:
Wie bei Radio Erewan: Im Prinzip ja, aber...

Hab hier zB. in der Bastelkiste eine Kleinrelais das kann entweder 24V 
DC oder 230V AC Spulenspannung ab. Liegt am Blindwiderstand der Spule 
bei 230V AC. Gibt aber auch Relais die haben schon eine eingebaute 
Freilaufdiode drin (selten aber existieren), die sollte man besser nicht 
an 230V AC hängen.

von Mike1996 (Gast)


Lesenswert?

Problem ist nur wenn ich was mache will ichs bis ins detail durchdenken, 
einen  Motor ansteuern mit l293d zB aus der Arduino Kiste oder Leds 
blinken lassen und kleine Sketches schreiben geht ja, nur ist das sicher 
alles oberflächlich und nicht perfekt. Da ich ein Perfektionist bin will 
ich wenn ich was mache das ich es auch sehr ordentlich mache :)

von Einer K. (Gast)


Lesenswert?

Mike1996 schrieb:
> Problem ist nur wenn ich was mache will ichs bis ins detail
> durchdenken,
> einen  Motor ansteuern mit l293d zB aus der Arduino Kiste oder Leds
> blinken lassen und kleine Sketches schreiben geht ja, nur ist das sicher
> alles oberflächlich und nicht perfekt. Da ich ein Perfektionist bin will
> ich wenn ich was mache das ich es auch sehr ordentlich mache :)


Leitsatz:
> Wir lernen, in dem wir es tun!

Es gibt verschiedenen "Sorten" von Kompetenz.

Schaue dir hier die 4 Stufen an:
https://de.wikipedia.org/wiki/Kompetenzstufenentwicklung
Da ist der Prozess recht gut beschrieben.

von Karl M. (Gast)


Lesenswert?

Hallo,

Mike1996 schrieb:
> Da ich ein Perfektionist bin will
> ich wenn ich was mache das ich es auch sehr ordentlich mache :)

Jetzt könnte man meinen, die Kommata sind für Dich auch noch ein 
"Fremdwort". In dem oben zitierten Satz fehlen sie leider komplett!

von m.n. (Gast)


Lesenswert?

Mike1996 schrieb:
> Ich programmiere einen Arduino UNO mit 16MHz.

Dafür ist die einfache RC-Schaltung durchaus nicht perfekt. Die 
Hysterese am Eingang eines ATmega liegt bei grob 1/10 VCC. Je nach 
Qualität des Tasters kann das Eingangssignal beim Betätigen des Tasters 
mehrfach um den Schaltpunkt wackeln und entsprechend mehrere 
Tastendrücke vorgaukeln. Besser ist es, mit einer recht großen Hysterese 
zu arbeiten und noch eine Totzeit zu verwenden.

Große Hysterese und Totzeit bietet folgende Schaltung: 
Beitrag "Taster per Hardware entprellen – alternative Schaltung"
Die gleiche Funktion kann auch per Software nachgebildet werden: 
Beitrag "EIN-AUS mit Taster per Interrupt, ATtiny25 o.ä."

von Stefan F. (Gast)


Lesenswert?

> Die Hysterese am Eingang eines ATmega liegt bei grob 1/10 VCC

Das ist nicht richtig, nur der Reset Eingang hat eine so ungewöhnliche 
Schaltschwelle. Alle normalen I/O Pins haben eine Schaltschwelle um die 
Mitte herum (mit Schmitt-Trigger), wie bei CMOS üblich.

von m.n. (Gast)


Lesenswert?

Du weißt, was eine Hysterese ist?

von Stefan F. (Gast)


Lesenswert?

> Du weißt, was eine Hysterese ist?

Ja weiß ich. Und ich weiß auch, dass man jede beliebige bewährte 
Schaltung durch Betrachtung unwesentlicher Details schlecht reden kann.

Im Ruhezustand liegt der Eingang je nach Schaltung eindeutig auf High 
oder Low, weit von der Schaltschwelle entfernt. Die kleine Hystere ist 
in der gar kein Hindernis. Diese Art der Entprellung funktioniert un 
99,9% der Fälle sogar ganz ohne Hysterese/Schmitt-trigger 
zufriedenstellend.

Du darfst es gerne ausprobieren, oder weiter platt diskutieren, da mache 
ich dann aber nicht mit.

von Achtung Achtung Achtung (Gast)


Lesenswert?

Mike1996 schrieb:
> Hallo,
>
> war heute in dem Thred "Taster entprellen" schon aktiv und will den User
> dort jetzt nicht das Thema stehlen.
>
> Wie dimensioniere ich am besten eine Hardare entprellung wie sie oben im
> Anhang zu sehen ist ?
>
> Ich programmiere einen Arduino UNO mit 16MHz.
> Eingangspin auf internen Pull Up geschaltet.
>
> Schaut man da auf das T("Tau") ?
>
> lg

Erst einmal nimmt man prellfreie Schalter/Taster.

von m.n. (Gast)


Lesenswert?

Stefan U. schrieb:
> Im Ruhezustand liegt der Eingang je nach Schaltung eindeutig auf High
> oder Low, weit von der Schaltschwelle entfernt.

Der Ruhezustand ist doch garnicht das Problem. Es ist auch kein Problem 
eine RC Zeitkonstante von 1 s zu nehmen. Nur bedienen möchte ich so ein 
lahmes Gerät nicht.

> Diese Art der Entprellung funktioniert un
> 99,9% der Fälle sogar ganz ohne Hysterese/Schmitt-trigger
> zufriedenstellend.

Da weiß ich nicht, was Du meinst.

von Stefan F. (Gast)


Lesenswert?

> Erst einmal nimmt man prellfreie Schalter/Taster.

Die Vorschläge werden immer Praxis-fremder.

> Es ist auch kein Problem eine RC Zeitkonstante von 1 s zu nehmen.

Das hast du gerade frei erfunden, niemand hat derart unsinnige Zeiten 
empfohlen.

> Da weiß ich nicht, was Du meinst.

Wundert mich nicht.

von Achtung Achtung Achtung (Gast)


Lesenswert?

Stefan U. schrieb:
>> Erst einmal nimmt man prellfreie Schalter/Taster.
>
> Die Vorschläge werden immer Praxis-fremder.

Was ist dabei Praxisfremd?

Es spricht nichts dagegen, oder nimmst du extra heftig prellende um die 
danach mehr oder weniger trickreich zu entprellen?

von Stefan F. (Gast)


Lesenswert?

Das Entprellen von Tastern ist keine Raketenwissenschaft.

Aber schau mal nach, wie teuer echte prellfreie Taster (mit Elektronik) 
sind!

Dash hier:
https://www.conrad.de/de/drucktaster-50-v-dcac-0025-a-1-x-ausein-pbs-18b-tastend-1-st-701865.html

ist kein prellfreier Taster. Der heißt nur so, prellt aber trotzdem.

von sumo (Gast)


Lesenswert?

Achtung Achtung Achtung schrieb:
> Was ist dabei Praxisfremd?

Dass die genauso häufig anzutreffen sind wie rosa Einhörner :-)

von m.n. (Gast)


Lesenswert?

@Stefan Us
Na gut. Dann betrachte ich Deine Beiträge mal als Bastlergeschichten. 
Für mehr reicht's nicht.

Achtung Achtung Achtung schrieb:
> Erst einmal nimmt man prellfreie Schalter/Taster.

Wenn möglich, ja, aber nicht immer hat man freie Auswahl. Beispielsweise 
Türklingel/Sprechanlage im Außenbereich. Hallsensoren oder Reedrelais' 
wären natürlich besser.

von MaWin (Gast)


Lesenswert?

Joachim B. schrieb:
> PhotoMOS AQV252g

Untauglich, schliesslich schaltet er eine Induktivität an 
Wechselspannung und das PhotoMOS erlaubt ein Abschalten auch während der 
Strom fliesst, was zu massivem Spannungsanstieg führt. Eine 
Freilaufdiode geht wegen Wechselspannung nicht, ein VDR leidet bei jedem 
Abschalten und ein Snubber belastet auch eingeschaltet.

Besser ein TRIAC mit Optokoppler, der schaltet ab wenn der Strom 0 ist.

von Stefan F. (Gast)


Lesenswert?

> Dann betrachte ich Deine Beiträge mal als Bastlergeschichten.

Ist Ok, ich bin Bastler (mit Ausbildung, aber egal).

von M.A. S. (mse2)


Lesenswert?

Stefan U. schrieb:
> Pi mal Daumen ist die Zeit Pull-Up * C.

Ich würde meinen, ein Taster prellt (hautpsächlich?/nur?/auch? egal....) 
beim Einschalten. Das heißt, die Zeitkonstante aus Rbegrenz und C wäre 
die relevante, nicht die mit dem Pullup.

von M.A. S. (mse2)


Lesenswert?

Früher, an der Uni, stellte man uns eine Entprellschaltung mit einem 
Tast-Umschalter sowie einem RS-Flipflop dahinter vor.

Funktioniert wunderbar, macht aber keiner, da es viel zu aufwendig ist 
und heute vermutlich in der Mehrzahl aller Fälle ohnehin rein 
softwaremäßig entprellt wird.

von Stefan F. (Gast)


Lesenswert?

> Das heißt, die Zeitkonstante aus Rbegrenz und C wäre
> die relevante, nicht die mit dem Pullup.

Nicht ganz richtig. Bei der ersten Kontaktgabe wir der Kondensator auf 
annähernd null entladen. Danach öffnen die Kontakte wegen dem prellen 
noch ein paar mal. Aber so schnell lädt sich der Kondensator wegen dem 
hochohmigen Pull-Up Widerstand nicht auf.

von Michael B. (laberkopp)


Lesenswert?

Mike1996 schrieb:
> Wie dimensioniere ich am besten eine Hardare entprellung wie sie oben im
> Anhang zu sehen ist ?

Gar nicht, Murks, durch den internen pull up fliesst nicht genug Strom 
um den Kontakt des Tasters zu putzen.

Die Schaltung wäre mindestens so:
1
 VCC
2
  |
3
 4k7
4
  |        74HC14/CD40106 
5
  +-100k-+--|>o-- high wenn Taster gedrückt
6
  |      |
7
Taster  100n
8
  |      |
9
 GND    GND

Einfach mal lesen wie man es richtig macht:

http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29.1

von Stefan F. (Gast)


Lesenswert?

> Gar nicht, Murks, durch den internen pull up fliesst nicht genug
> Strom um den Kontakt des Tasters zu putzen.

Wir diskutieren doch über den hand-gezeichneten Schaltplan ganz oben, 
richtig?

In Ruhelage ist der Kondensator auf 5V geladen. Wenn der 
Begrenzungswiderstand 1k Ohm hat, fließen beim Drücken des Tasters 
kurzzeitig 5mA. Das sollte für die üblichen kleinen Taster genügen.

Bei den allermeisten Tastern geben die Hersteller leider nicht an, wie 
hoch der Strom sein soll.

Bei Lichtschaltern für Wandmontage sollte man meiner Meinung nach mehr 
Strom fließen lassen. Eventuell auf den Begrenzungswiderstand ganz 
verzichten.

von Erich (Gast)


Lesenswert?

M.A. S. schrieb:
> Früher, an der Uni, stellte man uns eine Entprellschaltung mit einem
> Tast-Umschalter sowie einem RS-Flipflop dahinter vor.
>
> Funktioniert wunderbar, macht aber keiner, da es viel zu aufwendig ist
> und heute vermutlich in der Mehrzahl aller Fälle ohnehin rein
> softwaremäßig entprellt wird.

Dazu braucht es (leider) zwingend einen Taster mit Umschaltkontakt,
und der mir bekannte einzige der das bietet ist der "Digitast".
(z.B. bei Reichelt über Suche "Digitast", dann bei Ausführung einen 
Häkchen bei "Umschalter" machen).

Zugehörige RS-Flipflopschaltung hier
https://www.elektronik-kompendium.de/sites/dig/0210223.htm
also 2 NOR pro Taster (z.B. 74HC02),
oder 2 NAND (74HC00) wenn man die beiden Widerstände nach +Vcc legt und 
dafür den Mittelkontakt des Schalters an Gnd.
Bei diesen Cmos Bauteilen für die Widerstände was fast beleibiges 
10...100 kOhm verwenden.

Ausgang ist absolut prellfrei und kann z.B. auch verwendet werden um 
Hardware-Zähler-ICs anzusteuern.

Gruss

von M.A. S. (mse2)


Lesenswert?

Stefan U. schrieb:
> Nicht ganz richtig. Bei der ersten Kontaktgabe wir der Kondensator auf
> annähernd null entladen. Danach öffnen die Kontakte wegen dem prellen
> noch ein paar mal. Aber so schnell lädt sich der Kondensator wegen dem
> hochohmigen Pull-Up Widerstand nicht auf.

Ah ja, OK, ich habe falsch gedacht.

von Erich (Gast)


Lesenswert?

Erich schrieb:
> Taster mit Umschaltkontakt

In Ergänzung meines obigen Beitrags zum Thema
"sichere Entrpellung in Hardware" habe ich heute neben dem bereits 
erwähnten Tastern mit Umschaltfunktion
Digitast (Hersteller ITT Schadow, erhältlich bei Reichelt als 
Produktkürzel "DIT")

auch einen Drucktaster namens
"KS12" (Hersteller C&K) gibt.
Die Version mit Umschaltkontakt ist erhältlich bei Mouser, 
Ausführungsvariante "KS12R22CQD" (611-KS12R22CQD).

Sonstige "SPDT" (einpolige Umschalter) sind oftmals Einbaus-Taster, 
Positions-Endtaster etc., nicht für Leiterplatte geeignet.
Und sehr oft finden sich doch nur Schliesser- oder Öffner-Taster in der 
Suche (bei Mouser) obwohl die Auswahl "SPDT" (Umschalter) selektiert 
wurde! Alles unterhalb < 1 Euro sind keine Umschalter.

Gruss

von Harald W. (wilhelms)


Lesenswert?

m.n. schrieb:

> Du weißt, was eine Hysterese ist?

Ist das die grosse Schwester der Hysterie?

von Hmm (Gast)


Lesenswert?

Mike1996 schrieb:
> Ich programmiere einen Arduino UNO mit 16MHz.
> Eingangspin auf internen Pull Up geschaltet.

Hat so ein Atmel Schmitt-Trigger-Eingänge? Viele moderne Controller 
haben das. Dann klappt das ganz sicher so.
Wenn der Atmel das nicht hat, kann man zur Sicherheit einen 74HC1G14 
verbauen.

Das ist sauberer, weil wenn man ein RC hinschaltet, verletzt man meist 
die Ansprüche der GPIO an die Flankensteilheit. Es kann aber ohne 
klappen.

Ansonsten nehme ich als Daumenregel: Tau = Prellzeit der Taster.
Wenn die Prellzeit unbekannt ist, nehme ich 10-50ms.

Dann ist C = 10ms/Rpull

100k / 100n ist eine Standard-Kombination die meist tut.

Das ist keine genaue Wissenschaft, Pi*Daumen tut hier völlig.

Tipp:
Taster kann man pollen (zyklisch lesen), ich verwende dazu ein 
50ms-Raster. In dem Fall ist jegliche Entprellung überflüssig.
Die dadurch verbrauchte CPU-Last ist unmessbar klein, und der Code isr 
robuster gegen Störungen - schneller als im Raster kann der Taster nicht 
toggeln.
Nur bei Encodern sind entprellte Eingänge schon gut.

von Harald W. (wilhelms)


Lesenswert?

Hmm schrieb:

> Nur bei Encodern sind entprellte Eingänge schon gut.

Falls Du Inkrementalgeber meinst, da ist bei richtiger Abfrage
eine Entprellung unnötig.

von Hmm (Gast)


Lesenswert?

Harald W. schrieb:
> Hmm schrieb:
>
>> Nur bei Encodern sind entprellte Eingänge schon gut.
>
> Falls Du Inkrementalgeber meinst, da ist bei richtiger Abfrage
> eine Entprellung unnötig.

Du meinst vermutlich den Umstand, dass bei diesen AB-Encodern nicht alle 
Zustandswechsel erlaubt sind, oder?
Das ist simmt, da ist das Prellen theoretisch egal.

Praktisch verbringt man mehr Zeit in der ISR, falls man einen Interrupt 
verwendet. Das hat mich immer gestört.

Stimmt aber eigentlich, wenn man genauer drüber nachdenkt, muss der 
Encoder schon sehr schlimm prellen, um die CPU in die Knie zu zwingen. 
Das dürfte meistens ein eher theretisches Problem sein.

von Nico W. (nico_w)


Lesenswert?

Hmm schrieb:
> Stimmt aber eigentlich, wenn man genauer drüber nachdenkt, muss der
> Encoder schon sehr schlimm prellen, um die CPU in die Knie zu zwingen.
> Das dürfte meistens ein eher theretisches Problem sein.

Ich muss die Sensoren von einem BLDC leider per Hand auswerten, weil 
einer das Design vermurkst hat. Hatte dann beim Debuggen von anderen 
Sachen den Interrupt scharf geschaltet, aber keinen Motor angeschlossen. 
Floatende Pins haben den Controller dann schön voll laufen lassen und 
hat dann einen kleinen Moment gedauert bis ich drauf gekommen bin.

von Christopher J. (christopher_j23)


Lesenswert?

Hmm schrieb:
> Hat so ein Atmel Schmitt-Trigger-Eingänge? Viele moderne Controller
> haben das. Dann klappt das ganz sicher so.

Ja, selbst ein ATMega hat die und modernere Controller haben die 
natürlich auch. Ich frage mich von daher auch warum so viel Hokus-Pokus 
um die Entprellung in Software gemacht wird. Warum gönnt man seiner 
Schaltung nicht einfach ein RC-Glied und gut? Geht es darum die ~5 Cent 
zu sparen oder welchen Hintergrund hat diese (mMn krampfhafte) 
Vorgehensweise Taster grundsätzlich in Software zu entprellen?

von Harald W. (wilhelms)


Lesenswert?

Christopher J. schrieb:

> welchen Hintergrund hat diese (mMn krampfhafte)
> Vorgehensweise Taster grundsätzlich in Software zu entprellen?

Viele "Hardware-Entpreller" schalten den C gern parallel zum
Taster. Dadurch wird dieser unnötig mit hohen Strömen belastet,
was letztendlich kontraproduktiv ist.

von m.n. (Gast)


Lesenswert?

Christopher J. schrieb:
> Ich frage mich von daher auch warum so viel Hokus-Pokus
> um die Entprellung in Software gemacht wird. Warum gönnt man seiner
> Schaltung nicht einfach ein RC-Glied und gut?

m.n. schrieb:
> Dafür ist die einfache RC-Schaltung durchaus nicht perfekt. Die
> Hysterese am Eingang eines ATmega liegt bei grob 1/10 VCC. Je nach
> Qualität des Tasters kann das Eingangssignal beim Betätigen des Tasters
> mehrfach um den Schaltpunkt wackeln und entsprechend mehrere
> Tastendrücke vorgaukeln. Besser ist es, mit einer recht großen Hysterese
> zu arbeiten und noch eine Totzeit zu verwenden.

Entprellen per Hardware eignet sich für schnelle Signale, die auf 
µC-Seite nur dann einen Interrupt auslösen sollen, wenn sie auftreten.
Hat man viele Taster oder eine Tastermatrix und "viel" Zeit, dann ist es 
günstiger, diese per Software abzufragen.

Viele Soft-Entpreller kennen nichts anderes und reagieren mit Geschrei 
und Hysterie. Entscheide selber, was für Dich im Einzelfall die 
geschicktere Lösung ist.

Harald W. schrieb:
> Viele "Hardware-Entpreller" schalten den C gern parallel zum
> Taster. Dadurch wird dieser unnötig mit hohen Strömen belastet,
> was letztendlich kontraproduktiv ist.

Und das provoziert die nächsten Schreihälse, die die Tasterkontakte 
immer "freibrennen" müssen. Ein RC-Glied vermeidet Überlast an den 
Kontakten und hält ggf. Störungen von den µC-Eingängen fern, auch wenn 
diese Lösung "sündhaft" teuer ist ;-)

von Einer K. (Gast)


Lesenswert?

Entprellen ist offensichtlich eine Religion!

Mal abgesehen von irgendwelchen Ausnahmeanwendungen, gehöre ich der 
SoftwareEntprellFraktion an.

Einmal geschrieben, tausendfach verwendet.
Nix umlöten, wenns mal nicht so passt.
Nur wenige Parameter im Code ändern, und gut ist.

von Stefan F. (Gast)


Lesenswert?

Spätestens, wenn man in Software eine Flankenerkennung einführt (um die 
Anzahl der Tastendrücke zu zählen) ist es zur zusätzlichen Entprellung 
nur noch ein kleiner Schritt.

von Peter D. (peda)


Lesenswert?

Christopher J. schrieb:
> welchen Hintergrund hat diese (mMn krampfhafte)
> Vorgehensweise Taster grundsätzlich in Software zu entprellen?

Es geht ja nicht nur ums Entprellen. Die Tastenroutinen werten die 
Flanke aus, d.h. geben für jeden Tastendruck ein Ereignis ans Main. Das 
Entprellen fällt nebenbei mit ab. Repeatfunktion oder 
Druckdauerunterscheidung läßt sich ebenfalls leicht einbinden.
Es läßt sich also damit wesentlich komfortabler arbeiten und man braucht 
nicht für jede Taste einen eigenen Interrupthandler.
Man muß dann nicht für jede Applikation das Fahrrad immer neu erfinden, 
sondern fügt einfach die Library ein.

von Christopher J. (christopher_j23)


Angehängte Dateien:

Lesenswert?

Harald W. schrieb:
> Viele "Hardware-Entpreller" schalten den C gern parallel zum
> Taster. Dadurch wird dieser unnötig mit hohen Strömen belastet,
> was letztendlich kontraproduktiv ist.

Ich meinte schon die Schaltung wie sie auch in 
https://www.mikrocontroller.net/articles/Entprellung gezeigt ist, siehe 
Anhang.

Peter D. schrieb:
> Es geht ja nicht nur ums Entprellen. Die Tastenroutinen werten die
> Flanke aus, d.h. geben für jeden Tastendruck ein Ereignis ans Main. Das
> Entprellen fällt nebenbei mit ab. Repeatfunktion oder
> Druckdauerunterscheidung läßt sich ebenfalls leicht einbinden.
> Es läßt sich also damit wesentlich komfortabler arbeiten und man braucht
> nicht für jede Taste einen eigenen Interrupthandler.
> Man muß dann nicht für jede Applikation das Fahrrad immer neu erfinden,
> sondern fügt einfach die Library ein.

Ja ok, das ergibt schon Sinn.

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

Christopher J. schrieb:
> Ja ok, das ergibt schon Sinn.

Erstmal: ersetze den R2 mal durch ein Stück Draht. Da steckt ein Sinn 
dahinter.

Also: Beim Drücken der Taste gibt es irgendwann einen Kontakt und der 
entlädt deinen C1 komplett (ohne R2 !). Damit wird die Schaltschwelle 
überquert und dein µC kann den Tastendruck damit am schnellsten als 
Ereignis akzeptieren und etwaige anfänglichen Kontaktschwierigkeiten 
werden besser unterdrückt als mit R2, denn der Spannungshub von Null bis 
zur oberen Schaltschwelle ist größer als die Hysterese. Oft genug kann 
man sogar auf die Hysterese verzichten oder die Zeitkonstante deutlich 
kleiner machen als mit R2, was bei Drehgebern essenziell ist.

Der Rest ist bei simplen Taste die eigentliche Entprellung, die NACH dem 
Tastenereignis kommt. Dein µC muß bloß drauf achten, daß er einen 
erneuten Tastendruck erst dann als solchen zur Kenntnis nimmt, wenn 
zwischendurch für eine Mindestzeit die Taste ununterbrochen high 
gewesen ist.

Normalerweise sollten dafür 20..50ms reichen. Alles, was länger dauert, 
wirkt beim Benutzen träge. Insbesondere jede anfängliche Verzögerung 
vom Drücken bis zur Reaktion wird als träge empfunden. Das ist ein 
Punkt, den Peter bislang nicht einsehen wollte.

W.S.

von Manfred (Gast)


Lesenswert?

m.n. schrieb:
> Und das provoziert die nächsten Schreihälse, die die Tasterkontakte immer 
"freibrennen" müssen.

Ich weiß nicht, wieviele hundert oder mehr Taster und Schalter ich in 
Prüfplätze verbaut habe, viele davon an TTL- und später CMOS-Logiken. 
Über das "Freibrennen" habe ich nie nachgedacht, elektrische Ausfälle 
kamen nicht vor - das ist in diesem Umfeld einfach Quatsch.

Anders scheint es bei Relais bestimmter Bauarten für große Ströme 
auszusehen, da hatte ich neulich den merkwürdigen Effekt, ein solches 
mit dem DVM nicht messen zu können.

Zu TTL-Zeiten habe ich Entprellung durchaus mit Umschalter und 
RS-FlipFlop gebaut, zuverlässiger und schneller geht nicht. Eine andere, 
etwas langsamere Variante, ist ein Taster an D-Latch, das D-Latch mit 
etwa 30Hz getaktet.

Eine Entprellung mit RC-Glied habe ich nie gebaut, weil ich diese als 
groben Unfug einstufe.

von René F. (Gast)


Lesenswert?

Die RC Variante ist meiner Meinung nach Pfusch, ich bevorzuge die RS FF 
Variante, Software und wenn davon nichts machbar ist spezielle ICs (habe 
gerade nur die von Maxim gefunden, es gab von anderen Herstellern aber 
ebenfalls welche deutlich günstiger)

von m.n. (Gast)


Lesenswert?

Manfred schrieb:
> Über das "Freibrennen" habe ich nie nachgedacht, elektrische Ausfälle
> kamen nicht vor - das ist in diesem Umfeld einfach Quatsch.

Da stimme ich Dir zu, dennoch wird dieser Quatsch vehement propagiert, 
um es freundlich auszudrücken.

René F. schrieb:
> Die RC Variante ist meiner Meinung nach Pfusch,

Es kommt eben darauf an, was man braucht und wie man es umsetzt. Ein 
RC-Glied kann ja auch eine Schutzfunktion des µC-Eingangs haben.

> ich bevorzuge die RS FF
> Variante, Software und wenn davon nichts machbar ist spezielle ICs (habe
> gerade nur die von Maxim gefunden, es gab von anderen Herstellern aber
> ebenfalls welche deutlich günstiger)

RS-FF bedingt aber immer auch einen Umschalter. Ein einfacher 
Tastkontakt reicht nicht aus.
Bei speziellen ICs von dem genannten Hersteller wäre ich sehr 
vorsichtig. Muster gibt es geschenkt, Produktionsmengen sind u.U. nicht 
lieferbar.
Seinerzeit gab es den MC14490 für sechs Kanäle. Heute programmiert man 
sich einen kleinen µC dafür.

Ein Beispiel für zwei Taster, mit RC-Gliedern, sehr geringe 
Stromaufnahme, variables Schaltverhalten und Auswertung per Interrupt 
mit ATtiny25: 
Beitrag "Re: EIN-AUS mit Taster per Interrupt, ATtiny25 o.ä."
Für mehr Kanäle kann man einen größeren "Käfer" nehmen, z.B. den 
ATtiny2313.

von Michael B. (laberkopp)


Lesenswert?

W.S. schrieb:

> Erstmal: ersetze den R2 mal durch ein Stück Draht. Da steckt ein Sinn
> dahinter.

Blödsinn.

> Also: Beim Drücken der Taste gibt es irgendwann einen Kontakt und der
> entlädt deinen C1 komplett (ohne R2 !).

Nur komplette Laien die niemals den Vorgang eines schliessenden Kontakts 
gesehen haben können das glauiben.

Er schliesst nicht ein Mal (sonst gäbe es auch kein 
Kontaktprellproblem).

Sondern ein halbes Dutzend Mal schnell nacheinander. Und es wird 
keineswegs der C dabei sofort vollständig entladen, dafür sind die 
Kontaktgebezeiten zu kurz, nicht mal Mikrosekunden, und die 
Zuleitungsinduktiviät und ESL des Kondensatores wehrt sich gegen so 
schnelles sofortoges Entladen. Es sind feinste Oberflächenrauhigkeiten, 
die dabei wegverdampft werden oder einfach durch drüberrollen den 
Kontakts erst auf leitender dann nicht leitender Oberfläche nur kurz mal 
in den Strompfad kommen.

Geschlossen entlädt sich der Kondensator, wieder offen wird er über die 
4k7 wieder aufgeladen, so steigt die Spannng am C wieder, was, wenn er 
gerade eben bis an die Schaltschwelle entladen wurde, dann von der 
Elektronik als sich wieder schliessender Kontakt gewertet wird, es 
prellt.

R2 hat bei HWardware-Entprellung einen Sinn und muss da bleiben.

> Damit wird die Schaltschwelle
> überquert und dein µC kann den Tastendruck damit am schnellsten als
> Ereignis akzeptieren und etwaige anfänglichen Kontaktschwierigkeiten
> werden besser unterdrückt als mit R2

Wenn man einen Taster mit einem uC richtig auswertet (also nicht als 
Flankeninterrupt) dann braucht man auch keien Kondenstaor C, also ist 
auch diese Beschreibung Quatsch.

> Der Rest ist bei simplen Taste die eigentliche Entprellung, die NACH dem
> Tastenereignis kommt. Dein µC muß bloß drauf achten, daß er einen
> erneuten Tastendruck erst dann als solchen zur Kenntnis nimmt, wenn
> zwischendurch für eine Mindestzeit die Taste ununterbrochen high
> gewesen ist.

Unsinn, vernünftige Entprellroutinen brauchen das nicht.

> Normalerweise sollten dafür 20..50ms reichen.

So wie in meinem Auto, der dämliche Drehgeber den man bloss nicht zu 
schnell drehen kann weil ein Trottel die Auswerteroutine geschriben hat 
? Ach du meine Güte.

> Alles, was länger dauert,
> wirkt beim Benutzen träge. Insbesondere jede anfängliche Verzögerung
> vom Drücken bis zur Reaktion wird als träge empfunden. Das ist ein
> Punkt, den Peter bislang nicht einsehen wollte.

Schon 50ms sind träge. Normale Entprellroutinen brauchen 10ms weil 
normale Taster nicht mal 5ms prellen.

http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29.1

Stefanus F. schrieb:
> Bei der ersten Kontaktgabe wir der Kondensator auf
> annähernd null entladen. Danach öffnen die Kontakte wegen dem prellen
> noch ein paar mal. Aber so schnell lädt sich der Kondensator wegen dem
> hochohmigen Pull-Up Widerstand nicht auf.

Das ist ein Irrtum, es kommt durchaus vor, daß er nicht ganz entladen 
wird. Du hast offenbar die Realität noch nie gesehen.

m.n. schrieb:
>> Über das "Freibrennen" habe ich nie nachgedacht, elektrische Ausfälle
>> kamen nicht vor - das ist in diesem Umfeld einfach Quatsch.
>
> Da stimme ich Dir zu, dennoch wird dieser Quatsch vehement propagiert,
> um es freundlich auszudrücken.

Es geht nicht um hunderte Ampere aus einem kurzgeschlossenen 
Kondenstaor, der zerstört eher den Taster, aber die Einhaltung eines 
Mindeststromes.
Tastenhersteller geben in ihren Datenblattern einen Mindeststrom an. Es 
gibt keinen vernüftigen Grund, sich darüber hinwegzusetzen, weil man die 
Hintergründe nict versteht. Du ignorierst ja auch (hoffentlich, obwohl, 
bei so viel Blödheit kann man nie wissen) auch nicht die absoluet 
maximum ratings der Versorgungsspannung von ICs.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> Tastenhersteller geben in ihren Datenblattern einen Mindeststrom an.

Leider nicht alle, und da muss dann dann raten, wie hoch der sein soll 
und ob er überhaupt nötig ist. Das Fachwort dazu heisst "Wetting 
Current".

> dennoch wird dieser Quatsch vehement propagiert,

Ja, von den Herstellern der Produkte. Sie würden diesen "Nachteil" nicht 
in ihre Datenblätter schreiben, wenn er generell unwichtig wäre.

Zum Beispiel der folgende (nicht Quatsch-) Artikel erklärt das: 
https://www.allaboutcircuits.com/textbook/digital/chpt-4/switch-contact-design/

Schau mal hier: Einige Mikrochips erzeugen sogar einen konfigurierbaren 
Wetting Current extra für Schaltkontakte!: 
https://www.nxp.com/docs/en/data-sheet/CD1030.pdf
Der auch: http://www.ti.com/lit/ds/symlink/tic12400.pdf
Und der: https://datasheets.maximintegrated.com/en/ds/MAX13036.pdf

Und hier mal ein Artikel der Firma Omron, ganz gewiss ein führender 
Spezialist für langlebige Schaltkontakte: 
http://www.symmetron.ru/suppliers/omron/files/pdf/omron/Electromechanical-Relays.pdf
Absatz: Minimum Permissible Load

von m.n. (Gast)


Lesenswert?

Michael B. schrieb:
> Und es wird
> keineswegs der C dabei sofort vollständig entladen, dafür sind die
> Kontaktgebezeiten zu kurz, nicht mal Mikrosekunden,

Michael B. schrieb:
> Es geht nicht um hunderte Ampere aus einem kurzgeschlossenen
> Kondenstaor, der zerstört eher den Taster,

Du bist ja ein Mann der Superlative.
Vergiss bitte nicht, zwischendurch mal den Schaum vom Mund wegzuwischen.

Michael B. schrieb:
> http://www.dse-faq.elektronik-kompendium.de/dse-faq.htmyx

Bitte seriöse Quellen angeben!

von Michael B. (laberkopp)


Lesenswert?

m.n. schrieb:
> Du bist ja ein Mann der Superlative.
> Vergiss bitte nicht, zwischendurch mal den Schaum vom Mund wegzuwischen.
> Bitte seriöse Quellen angeben!

Armer Irrer.

von Maxim B. (max182)


Angehängte Dateien:

Lesenswert?

Mike1996 schrieb:
> Wie dimensioniere ich am besten eine Hardare entprellung

Richtige "Hardware Entprellung" braucht RS-Trigger und Umschalter. Nur 
so kann man Verzögerung eliminieren.
Alles mit nur einem schließenden Kontakt hat Verzögerung, egal Hardware 
oder Programm. D.h. Hardware bringt hier nichts außer Verbrauch von 
zusätzlichen Details und Strom.

Wenn aber unbedingt "Hardware" mit einem schließenden Kontakt, dann am 
besten so:
Schalter an GND, dazu Widerstand an VCC (oder auch umgekehrt, das ist 
egal), so etwa 10k. Zu dem Verbindungspunkt noch mal Widerstand, so 1M, 
zu einem Schmitt-Trigger, so wie 74HC32. Zwischen Eingang von Trigger 
und GND ein Kondensator, so etwa 5-10-15n (je nach Schalterqualität).

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> Richtige "Hardware Entprellung" braucht RS-Trigger und Umschalter.

Man sollte so flexibel sein, unterschiedliche Lösung zu akzeptieren. 
Deine Ideallösung erfordert entsprechende Taster, die jedoch nur selten 
anzutreffen sind. Andere Hersteller bevorzugen offensichtlich andere 
Lösungen, als du.

> so 1M zu einem Schmitt-Trigger

Alles klar, mach das mal in unmittelbarer Nähe zu einem Funkmodul.

von Maxim B. (max182)


Lesenswert?

Stefanus F. schrieb:
> mach das mal in unmittelbarer Nähe zu einem Funkmodul.

Und?
Wenn 1 MOhm und 10nF falsch zu sein scheinen, nimm dann 10 k und 1uF. 
Nur braucht man in diesem Fall noch Widerstand zwischen C und Eingang 
von HC132, um Entladungsstrom von Kondensator über Dioden von IC zu 
begrenzen.

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.