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: > 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
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?
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.
Achtung Achtung Achtung schrieb: > Was ist dabei Praxisfremd? Dass die genauso häufig anzutreffen sind wie rosa Einhörner :-)
@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.
> Dann betrachte ich Deine Beiträge mal als Bastlergeschichten.
Ist Ok, ich bin Bastler (mit Ausbildung, aber egal).
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:
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
> 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.
:
Bearbeitet durch User
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.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
> 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
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).
:
Bearbeitet durch User
> 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.
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.