Entprellen bei 50 Hz Signal

Gast #205878
An einem 89C2051 habe ich vier Eingänge die über einen Optokoppler
angesteuert werden. Der Optokoppler hat auf der Transistorseite einen
4,7 kOhm Pull Up Widerstand. Vom Kollektor des Optokoppler geht es zum
Controller Eingang. Die LED des Optokoppler wird über einen 1 k Ohm
Widertand und eine Diode  entweder mit Gleichspannung 5 ... 24 V oder
mit Wechselspannung 5V ... 24 V/50 Hz angesteuert. Da diese Spannung
auch über einen mech. Schalter geschaltet werden kann prellt das Signal
natürlich. Das DC Signal per Software zu entprellen ist kein Problem,
mit der Entprellung des AC-Signals stehe ich aber im Moment so richtig
auf dem Schlauch.

Habe mich im Moment um die AC Entprellung in der Form gedrückt, dass
ich vom Kollektor des Optokopplertransistors einen 4,7 µF Kondensator
nach GND gesetzt habe. Damit sehe ich die 50 Hz am Eingang des
Mikrocontrollers nicht mehr, habe dafür aber natürlich einen sehr
langsamen 0 – 1 Wechsel von ca. 40 ms. Für meine Anwendung kann ich
damit gut leben, nur mag das der Controllereingang auf Dauer, wenn sich
das Signal so langsam ändert? Die Eingänge sind ja keine Schmitt-Trigger
Eingänge.

Was meint Ihr, kann ich die Hardwarelösung anwenden?
Kann mir jemand mit einem Tipp für eine Softwarelösung auf die Sprünge
helfen?

Schon mal herzlichen Dank

Transi
Gast
Signal gilt als "ein", wenn Du mindestens x ms eine 1 empfängst und es
gilt aus "aus", wenn das Signal mindestens y ms 0 ist. Du bekommst
dadurch natürlich eine gewisse Ein- und Ausschaltverzögerung, aber das
kann man nicht vermeiden.
Gast
@ Markus
So leicht dürfte es nicht sein. Bei 50 Hz (ohne prellen) bekomme ich
nach meinem Optokoppler 10 ms „1“ und 10 ms „0“ und das solange wie das
Signal anliegt.
Eingeschaltet ist, wenn die „Schwingerei“ in diesem 10ms Takt da ist,
Ausgeschaltet ist, wenn sie weg ist. Nur in Wirklichkeit zappelt es
davor und danach wegen des prellens ganz böse. Ich müsste, so denke
ich, diese 10ms Impulse irgend wie schlau auswerten.

Gruss

Transi
Gast
Dann nimmst Du halt 5ms ein für "1" und 10ms aus "0". Die Werte
müssen ja nur eindeutig an oder aus sein. Die Verzögerung die durch das
Prellen entsteht dürfte doch vernachlässigbar sein.

Markus

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.