PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Taster entprellen - Kondensatorwert



Reissdorf
16.12.2012, 13:32
Hallo zusammen,

ich hab hier einen Schalter, der mit der angehängten Schaltung entprellt werden muss. Dabei stelle ich mir die Frage, wie groß muss der Kondensator hier sein. In der Schaltung steht 100n, aber ich habe auch schon 330n gesehen. Wie wird dieser denn berechnet. Und als zweites, würde auch ein 33n Kondensator gehen? (Die hab ich hier gerade rumliegen ;) )
24040

Liebe Grüße, Reissdorf

Bumbum
16.12.2012, 13:50
Hallo,

die Schaltung wird so wie gezeigt nie funktionieren, da der Pin der zum µC geht immer an VCC liegt. Ich glaube da hast du irgendwas falsch "abgemalt".

Wenn die Schaltung dann richtig ist würde ich es mit den 33n probieren. Kaputt machen kannst du nichts. Das schlimmste was passieren kann, dass nicht richtig entprellt wird.

Viele Grüße
Andreas

Besserwessi
16.12.2012, 14:40
Für das Entprellen ist die Zeitkonstante aus R*C entscheidend. Mit 33 nF und 33 K sind das etwa 1 ms. Das kann für einen schnell prellenden Taster reichen, von der Tendenz wäre mir das aber zu knapp.

Im Zweifelsfall kann man das Entprellen auch in Software erledigen.

PICture
16.12.2012, 15:50
Hallo!

Ich habe Entprellung bei diversen digitalen IC's verwendet (Flip-Flops, Monoflops, Zähler, usw.), müsste also bei µC's auch funktionieren: https://www.roboternetz.de/community/threads/50059-Einfacher-Z%C3%A4hler?p=484759&viewfull=1#post484759 . ;)

Reissdorf
16.12.2012, 18:06
Hallo,
stimmt, die Schaltung ist total falsch! Hier hab ich die (hoffentlich) richtige Schaltung angehängt. So wird dass auch mit der Zeitkonstanten besser ersichtlich. Wenn ich den Taster drücke, liegt das Signal, durch das RC-Glied, erstmal nicht direkt an den µC an, sondern erst nach der R*C Zeit. Bis dahin muss der Taster ausprellt haben.

24043

PICture
16.12.2012, 18:51
Du hast bisher nicht gesagt, welche Flanke aktiv seien sollte, aber für positive könnte es funktionieren. Sonst habe ich noch etwas zum Überlegen skizziert. ;)
VCC
+
| VCC
+---+ +
| | |
| o | .-.
T |=|> --- C | | R
| o --- | |
| | '-'
+---+-----> µC Pin |
| +---+-----> µC Pin
.-. (positive | |
| | R Flanke | o --- C (negative
| | aktiv) T |=|> --- Flanke
'-' | o | aktiv)
| | |
=== === ===
GND GND GND

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

Hubert.G
16.12.2012, 18:56
Diese Art von entprellen hat einen entscheidenden Nachteil. Beim drücken der Taste lädst du erst mal den Kondensator auf und da fließt einen kurzen Moment ordentlich Strom. Durch den dadurch möglichen Spannungseinbruch kann es zu Fehlfunktionen des µC kommen. Ein typisch schlechtes Beispiel dafür ist das Pollin-Board. Der Taster wird dabei auch kräftig belastet.

Michael
16.12.2012, 19:13
Ja, Hubert, die Schaltung ist ganz großer Mist, aber da kämpft man gegen Windmühlen ;)
Da hat der Pollin Lehrling, ähh, Schaltungsentwickler was angerichtet ;)

Gruß, Michael

Reissdorf
17.12.2012, 08:39
Dass beim Drücken des Tasters kurzfristig ein hoher Strom fließt habe ich bisher überhaupt nicht beachtet. Aber du hast natürlich recht. Da gefällt mir die Schaltung von PICture's erstem Posting besser. Kann es sein, dass bei PICtures zweiter Schaltung, beim Einschalten der Versorgungsspannung, kurzfristig ein High-Signal am Mikrocontroller anliegt ohne den Taster zu drücken?

Was mich grundsätzlich interessiert ist die Unterscheidung zwischen negativer und positiver Flanke. Wenn ich eine Entprellungsschaltung entwerfe, sollte ich wohl vorher wissen welche Flanken softwaremäßig verarbeitet werden sollen, oder? So nach dem Motto: "Wenn Pin a.b = Low, dann mache XYZ" für negative Flanken. Angenommen, es ist nicht bekannt in welcher "Richtung" das Signal verläuft, dann werde ich auch die Beschaltung nicht planen können, dann bleibt doch nur die Entprellung softwareseitig. Könnte ich damit beide Flanken entprellen und wie sieht so ein Code grundsätzlich aus? Vielleicht so:

- Wenn Pin a.b = High
- warte x ms (Zeit bis Taster ruhig liegt)
- Weiter im Programm...

LG, Reissdorf

Edit: Ich hab in anderen Foren mittlerweile häufig gelesen, dass eine softwareseitige Entprellung viel besser ist, als das hardwareseitig auszuführen. Stimmt ihr da zu?

PICture
17.12.2012, 10:12
Kann es sein, dass bei PICtures zweiter Schaltung, beim Einschalten der Versorgungsspannung, kurzfristig ein High-Signal am Mikrocontroller anliegt ohne den Taster zu drücken?

Nach dem Einschalten der Versorgungsspannung wird permanent ein "high" Pegel an µC Eingang angelegt. Ein "low" Pegel wird mit "sauberer" (früher als "aktive" genannt) negativer Flanke nur während Drücken des Tasters erzeugt.


Was mich grundsätzlich interessiert ist die Unterscheidung zwischen negativer und positiver Flanke. Wenn ich eine Entprellungsschaltung entwerfe, sollte ich wohl vorher wissen welche Flanken softwaremäßig verarbeitet werden sollen, oder?

Stimmt, deshalb habe ich zwei Möglichkeiten skizziert. :D

Reissdorf
17.12.2012, 10:34
Ach du meine Güte, da hatte ich Tomaten auf den Augen! Klar, in der linken Schaltung liegt der Pin über R an GND. Die Betätigung des Tasters zieht den Pin dann auf Vcc. Damit ist diese Variante für eine positive Flanke. Bei der rechten Schaltung ist es genau umgekehrt. Der Pin liegt über R an Vcc und wird durch den Tastendruck auf GND gezogen, was einer negativen Flanke entspricht. Danke für die Erklärung!!

Hubert.G
17.12.2012, 12:12
Edit: Ich hab in anderen Foren mittlerweile häufig gelesen, dass eine softwareseitige Entprellung viel besser ist, als das hardwareseitig auszuführen. Stimmt ihr da zu?

AVR und die meisten anderen µC haben einen internen zuschaltbaren PullUp, deshalb schaltet man Tasten nach GND und erspart sich den externen PullUp.
Softwareentprellung ist sicher die sauberere Lösung das Tastenprellen auszuschalten.