Tastenprellen / Relaisprellen abgeschafft

Begonnen von picass, 29.04.2023, 18:42:03 CEST

Vorheriges Thema - Nächstes Thema

picass

Bislang hatte ich nur wenig Präzises über die Prellzeiten von Kontakten – sei es bei Tastern oder bei Relais – gelesen, irgendwas im einstelligen Millisekundenbereich etwa. Nun wollte ich es mal selber wissen. Nachfolgendes zeigt eine Einarbeitung. Viele Wege führen nach Rom, ebenso wohl auch zum Kontakt-Entprellen. Grundsätzlich kann man Kontaktprellen mit Software begegnen, das wird der von den Meisten begangene Weg sein. Selbst bevorzuge ich Hardware-Lösungen – ist nun mal so.
Da scheint von der Theorie her sich ein nachtriggerbarer Baustein anzubieten. So was gab es schon dunnemals und zwar im TTL-IC 74123. Das wurde nun für Test's genutzt, aber vorher noch untersucht, wie so'ne ,,Prellung" bei verschiedenen Schaltern überhaupt aussieht.
Ad 1: ein preiswerter Drucktaster
Ad 2: ein Drucktaster mit Springkontakt
Ad 3: die Spule eines kleinen Reed-Relais
Es wurde jeweils das Prellen beim Einschalten (ansteigende Flanke) wie auch beim Ausschalten (abfallende Flanke) aufgenommen.
Für mich überraschend lagen die Prellzeiten nicht im Milli-Sek-Bereich, sondern eine Dimension drunter im Micro-Sek-Bereich.

Als Kandidat zum Abfangen eines Prellvorgangs wurde nun ein 74HC123 im SO-Gehäuse getestet, mit je einem Kondensator von 1 µF und zunächst 9,1 kO und dann 18 kO wurden die Dauer des Impulses nach dem Triggern gemessen: 6,2 mS und 10,2 mS.

Meine Vorstellung ist nun diese:  Kontakte erhalten nicht mehr wie bislang einen Kondensator beigefügt zum ersten Entprellen, auch kein R-C-Werk mehr, sondern zunächst schlicht nichts. Der Schaltkontakt wird direkt auf das Entprell-IC (EIC) geführt. Das hat am Eingang einen Schmitt-Trigger, der für bessere Verhältnisse sorgt. Die bislang kurzen Zeiten im µS-Bereich triggern dann einmal. Das EIC generiert eine grundsätzliche Monoflop-Zeit, die wesentlich länger als nötig ist und damit alles abfängt. Die definierte Zeit von z.B. 10 mS mag im µC-Bereich häufig eine Ewigkeit sein, aber in dem mich im Moment interessierenden Fall einer Steuerung eines Garagentores ist das derart kurz, dass es überhaupt keine Rolle spielt, das dürfte auch erklecklich länger dauern.

Effekt schon bis hierhin: Kein Prellen mehr bis zum PIC, keine einzige Routine mehr im Prog, um so was zu berücksichtigen.

Ein zusätzlicher und besonders neckischer Effekt ist das Nachtriggerbare. Aus dem Datenblatt des EIC geht hervor, dass Triggerimpulse, welche sehr kurz hinter dem ersten folgen, nicht zum Nachtriggern führen. Das wäre aber in diesem Fall völlig wurscht, denn diese kürzest Nachfolge-Impulse werden ja eh' durch die Monoflop-Dauer (MD) abgefangen. Diese Kürzestzeit beträgt generell über den Daumen nur 1/5 oder weniger der MD. Sollte aber später als 1/5 MD noch ein Preller auftauchen, dann führt der zum Nachtriggern und die MD wird erneut gestartet! Usw., usw..! Es wird kein einziger Preller mehr durch gelassen. Kennt man also in etwa die Prellzeit des interessierenden Schalt-Elementes und bemisst die MD großzügig, ist das Prellen Geschichte!

Der verwendete EIC schluckt im StandBy ca. 4 µA, also nichts. Dieses IC werde ich zukünftig in meinen Schaltungen bei prell-kritischen Vorgängen verwenden.
Grüße, picass

Ottmar

Hallo,
das ist ja ein richtige Erfolgsgeschichte, auch wenn zusätzlich zum Schaltkontakt noch weitere Bauelemente erforderlich sind.
In der Tat ist das Entprellen von Kontakten ein interessantes Gebiet. Dazu möchte ich einige Hinweise zu einigen aufschlussreichen Informationen zu diesem Thema geben.

http://www.ganssle.com/debouncing.htm
http://www.ganssle.com/debouncing-pt2.htm
www.avr-asm-tutorial.net/avr_de/apps/prellen/prellen.html

Ich persönlich bevorzuge das Enprellen per Software in einer ISR, welche Scott Dattalo auf seiner Internetseite http://www.dattalo.com (nicht mehr existent)  im Jahr 2006 veröffentlicht hat.
Diese Seite hänge ich für Interessiert als PDF an, zumal dieRoutine auch in MPLAB-ASM mitgeteilt wird..

mfG Ottmar

pic18

#2
Ich muss gestehen, ich habe mir noch keine großen Gedanken gemacht. Ich frage die Eingänge ab, bis ich das nächste mal die Eingänge abfrage, dann sind die Eingangssignale schon entprellt. Der Zyklus der Abfrage beträgt je nach dem was ich abfrage zwischen 100ms und mehreren Sekunden. 

picass

#3
@Ottmar !
Von deinen Verlinkungen ,,faszinierte" mich derjenige im ,,AVR-Tutoiral", wenn auch auf ganz besondere Weise. Den Versuch des Autors, Prellvorgänge mithilfe seines Programms zu erfassen, würde ich als gescheitert ansehen, mindestens aber seine Darstellung. Es sind zu viele Fehler und Unglaubwürdiges enthalten.

Das beginnt schon bei dem Bild, in welchem der Autor einen Taster in freier Handhaltung zeigt, bei dem zwei Kontaktanschlüsse mit Krokodilklemmen angeschlossen sind, und die scheinen sich auch noch zu berühren (Kurzschluss). Was für eine  Art von Versuchsaufbau soll das sein?

Weiter gehts mit dem Zitat: "Das Bild zeigt den gesamten Signalverlauf über 6,4 Sekunden bei einem handelsüblichen Taster mit Zentralbefestigung."
Aha ! Ein Preller über nahezu 6,4  Sekunden !!! :))  Das klingt weniger nach einem weltrekord-verdächtigen Preller, als mehr nach dem – warum denn bloß ? - gescheiterten Versuch, das Perpetuum Mobile doch noch zu verwirklichen. Dazu passt dann auch, dass die vermeintliche X-Zeitachse laut Zahl den Zeitraum von tatsächlich 64 Sekunden umfasst.
In einem anderen Beispiel ist eine zweifache, wunderschöne Rechteckschwingung zu sehen, welche angeblich das Betätigen eines ,,sauberen" Schalters wiedergeben soll. Wer hat den denn wohl händisch so exakt getastet in 6,4 Sekunden? Und wie will man bei dieser Zeit-Darstellung Preller im Bereich von Mikro-Sekunden erkennen können? Das ist nicht mal als schlechter Scherz geeignet!

Nebenbei gesagt, ist mir im Moment nicht geläufig, warum für Untersuchungen im MicroSekunden-Bereich ein Timer Verwendung findet, welcher eine Überlaufzeit von 18 Minuten hat.

Da ist viel über die Gestaltung des Programms die Rede, nicht aber davon, dass Kontaktpreller in der ganz überwiegenden Anzahl überhaupt keine digitalen Ereignisse sind, sondern ein analoges Phänomen. In den Bildern meines Oszi's ist mehr als deutlich dargestellt, dass sich viele solcher Schwingungen ausschließlich im nicht erwünschten TTL-Graubereich abspielen. Der ist digital auch im Ansatz nicht eindeutig zu erfassen.
Nirgendwo ist dargestellt, wo und wie das denn nun berücksichtigt wurde. So sind die Erstellung von reinen Rechteck-Schwingungen in dem Programm komplette Interpretationen von nicht erklärten Bedingungen. Was ist z.B. mit jenem Fall im unguten TTL-Graubereich, wenn sich mal von ,,oben" (Plus) und mal von ,,unten" (GND) eine Schwingung auf genau die Hälfte der Amplitude schwingt oder meinetwegen auf 2,0 Volt , dann aber wieder zurück? Ist das von der Software dann jedes mal eine Rechteckschwingung oder beide Male nicht? Mindestens eine Interpretation ist falsch.

Aufgrund der Fehler, der Ungereimtheiten, des Bildes vom wackeligen Versuchsaufbau, anderer Zahlen mit wenig glaubhafter Höchstanzahl an Prellern – hat der Autor da das Prellen eines Kontaktes inmitten eines UKW-Senders untersucht ? - und der generellen Interpretation von analogen Vorgängen ist dieser Versuch einer Darstellung ungenügend.
Grüße, picass


Schnellantwort

Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Wenn Sie nicht absolut sicher sind, dass Sie hier antworten möchten, starten Sie ein neues Thema.

Name:
Tastenkürzel: Alt+S Beitrag schreiben oder Alt+P für Vorschau