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
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.
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.
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.
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.
> 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.
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.
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 :)
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.
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!
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.ä."
> 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.
> 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.
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.
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.
> 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.
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?
@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.
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.
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.
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.
> 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.
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:
> 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.
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
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.
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
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.
Hmm schrieb:> Nur bei Encodern sind entprellte Eingänge schon gut.
Falls Du Inkrementalgeber meinst, da ist bei richtiger Abfrage
eine Entprellung unnötig.
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.
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.
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?
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.
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 ;-)
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.
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.
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.
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.
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.
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.
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)
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.
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.1Stefanus 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.
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!
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.
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).
> 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.
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.