J
Joerg
Guest
On 2020-04-15 01:54, Marc Haber wrote:
Der Kondensator setzt zusammen mit dem 2.2kohm Widerstand die
Zeitkonstante, kommt auf etwa 2msec. Wichtig ist, dass der Port einen
Schmitt-Trigger Eingang (mit Hystere hat). Berechnung:
https://en.wikipedia.org/wiki/RC_time_constant
Nimm aber einen keramischen oder Folienkondensator, besonders wenn das
in warmer Umgebung ist. Elektrolytkondensatoren koennen ueber die Jahre
austrocknen und dabei verlieren sie langsam Kapazitaet.
Kommt drauf an, wie kurz diese Ausloesezeit ist. Wenn es etliche zig
Millisekunden sind, geht das mit 2.2k und 10uF wie oben beschrieben.
Sonst den Kondensator verkleinern.
Das sollte den Effekt des Kontaktprellens zuverlaessig abwehren.
--
Gruesse, Joerg
http://www.analogconsultants.com/
Marcel Mueller <news.5.maazl@spamgourmet.org> wrote:
+5V -----------------2k2---------------------------------------
Schaltkontakt
Port ---*-----*-------10k---------------------------------------
| |
10Âľ 18k
| |
GND ---*-----+
Der Trick ist hier, dass die Ankopplung des Schalters relativ hochohmig
erfolgt, was einer Stromschleife zumindest nahe kommt. Die Bemessung der
Widerstände sorgt dafßr, dass der Port vom Pi nicht mehr als die
zulässigen 3,3V bekommt. Der 10¾F Elko dämpft jegliche kleinen Huster
weg und schĂźtzt zudem den Port.
Sind 10 ¾F nicht ein wenig viel? Ist das aus Erfahrung geschätzt oder
kann man das irgendwie berechnen?
Der Kondensator setzt zusammen mit dem 2.2kohm Widerstand die
Zeitkonstante, kommt auf etwa 2msec. Wichtig ist, dass der Port einen
Schmitt-Trigger Eingang (mit Hystere hat). Berechnung:
https://en.wikipedia.org/wiki/RC_time_constant
Nimm aber einen keramischen oder Folienkondensator, besonders wenn das
in warmer Umgebung ist. Elektrolytkondensatoren koennen ueber die Jahre
austrocknen und dabei verlieren sie langsam Kapazitaet.
Du musst nur wissen, dass sich der Logikpegel hier umkehrt. Wenn der
Schalter geschlossen ist, bekommst Du High, sonst Low.
Damit kann ich leben.
Falls man bei dem Port einen Schmitt-Trigger aktivieren kann, tue es.
Wenn nicht, musst Du das in Software implementieren. Während des
Ăbergangs zwischen Low und High kĂśnnte der Port sonst vorĂźbergehend
zufällige Werte liefern. Das bekommt man weg, indem man z.B. nur Signale
wertet, die mindestens eine Sekunde lang gleich waren. Also Man merkt
sich in Software den letzten Wert und die Uhrzeit, wann er das letzte
mal gewechselt hat. Nur wenn letztere >1s alt ist, verarbeitet man den
Wert weiter.
Das Reedrelais lĂśst nur einmal kurz aus, wenn die Wippe in der
Mittelstellung ist. Und es kĂśnnen bis zu vier Impulse pro Sekunde
kommen, bevor die Wippe an ihre mechanischen Grenzen stĂśĂt.
Kommt drauf an, wie kurz diese Ausloesezeit ist. Wenn es etliche zig
Millisekunden sind, geht das mit 2.2k und 10uF wie oben beschrieben.
Sonst den Kondensator verkleinern.
Aber ich kann in der schon fĂźr einen anderen Zweck geschriebenen
Software problemlos nach dem ersten Impuls 200 ms ignorieren.
Das sollte den Effekt des Kontaktprellens zuverlaessig abwehren.
--
Gruesse, Joerg
http://www.analogconsultants.com/