Forum: Analoge Elektronik und Schaltungstechnik Klingelsignal zwecks zuverlässiger Erkennung am Optokoppler-Ausgang glätten?


von Erwin (erwinh)


Lesenswert?

Ich hatte mir mit relativ rudimentären Vorkenntnissen (bis auf 
Softwareentwicklung) vorgenommen, meine Gegensprechanlage über HomeKit 
zu steuern. Nicht zuletzt durch eure Hilfe und viel Recherche habe ich 
nun im Prinzip alles, was ich mir vorgenommen habe, realisiert: Ich kann 
die Klingel im Ober- oder Untergeschoss einzeln ein- und ausschalten, 
kann zwischen dem Hausruf und Türruf unterscheiden und den Türsummer 
auslösen.

In Aktion seht ihr die Platine hier: 
https://www.youtube.com/watch?v=StvCbN_u4jc

Fritzing habe ich bald nicht mehr benutzt, sondern mit KiCad neu 
begonnen. Das ist schon ein gewaltiger Unterschied und hat auch das 
Verständnis einer solchen Platine deutlich erleichtert.

Ich habe während der Entwicklung nur festgestellt, dass ich bei 
Detektion des DC-Klingelsignals aus dem Optokoppler (LTV-814) kein [1, 
1, 1, 1, 1] bekomme sondern eher ein [0, 1, 0, 0, 1] - es wechselt also 
während dem Drücken umher. Das softwaretechnisch zu erkennen, war kein 
Problem, weil es hier ohnehin einen Timeout gegen wildes Drücken gibt, 
ich frage mich aber, was die beste hardwareseitige Lösung wäre, die für 
DC als auch AC funktionierte, weil ich das System auch für eine Klingel 
mit AC-Ausgang bauen möchte und mir ein hardwareseitig glätteres Signal 
schon lieber wäre.

Liegt das Signal am Optokoppler an, werden 3,3 V auf den entsprechenden 
GPIO am ESP32 angelegt, soweit klar. Aber wäre es möglich, das Signal am 
Ausgang statt am Eingang zu glätten? Der LTV-814 müsste (anders als der 
PC817) sowohl mit AC als auch DC zurechtkommen. Der Vorteil wäre, dass 
man dann das Signal selbst völlig unangetastet ließe (bis auf die paar 
mA, die der Optokoppler benötigt) und eine Lösung sowohl für DC als auch 
AC hätte. Man würde eben die internen logischen 3,3 V hardwareseitig 
"glätten", die durchgeschaltet werden, sobald das Klingelsignal anliegt.

Liegen keine 3,3 V am GPIO an, wird das Signal mit 4,7K Ohm auf GND 
gezogen. Ich dachte also an einen kleinen Kondensator (MLCC) so nah wie 
möglich am GPIO, aber welche Größe wäre hier sinnvoll, 100 nF oder gar 
viel weniger?

: Bearbeitet durch User
von H. H. (hhinz)


Lesenswert?

Kondensator parallel zum Ausgang des Optokopplers.

von Erwin (erwinh)


Lesenswert?

H. H. schrieb:
> Kondensator parallel zum Ausgang des Optokopplers.

Interessant, also nicht direkt am GPIO, sondern direkt am Ausgang. 
Welche Größe würdest Du ansetzen? 100 nF?

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Entweder so, gewissermaßen "Entprellung" des Optokopplers oder eben 
Programmierübung. Beim ESP32 weiß ich es nicht genau - das ist ein 
Schaltkreis, mit dem ich mich immer beschäftigen wollte, aber nie dazu 
gekommen bin - aber viele µCs können auf Flanken triggern und etwa einen 
Interrupt auslösen wenn der Zustand an einem Eingangs-Pin von high auf 
low wechselt oder anders herum.

von H. H. (hhinz)


Lesenswert?

Erwin schrieb:
> H. H. schrieb:
>> Kondensator parallel zum Ausgang des Optokopplers.
>
> Interessant, also nicht direkt am GPIO, sondern direkt am Ausgang.
> Welche Größe würdest Du ansetzen? 100 nF?

Szizziere mal deine bisherige Beschaltung des Kopplers.

von Erwin (erwinh)


Angehängte Dateien:

Lesenswert?

H. H. schrieb:
> Erwin schrieb:
>> H. H. schrieb:
>>> Kondensator parallel zum Ausgang des Optokopplers.
>>
>> Interessant, also nicht direkt am GPIO, sondern direkt am Ausgang.
>> Welche Größe würdest Du ansetzen? 100 nF?
>
> Szizziere mal deine bisherige Beschaltung des Kopplers.

von H. H. (hhinz)


Lesenswert?

Ich würde 1µF nehmen.

von Enrico E. (pussy_brauser)


Angehängte Dateien:

Lesenswert?

Ich würde 1uF bis max. 4,7uF nehmen.

Nicht kleiner als 1uF (34Hz) weil dann die Grenzfrequenz zu hoch wird!

Aber auch nicht größer als 4,7uF (7,2Hz), weil dann die Morsefähigkeit 
mit über 140ms Wartezeit zu lang wird.

von Erwin (erwinh)


Lesenswert?

Dankeschön. Kurze Frage zum MLCC: Sind 50 oder gar 100 V Nennspannung 
schon zu viel oder ist das irrelevant?

: Bearbeitet durch User
von Monk (roehrmond)


Lesenswert?

Du hast 3,3V. Also irrelevant.

von Joachim B. (jar)


Lesenswert?

Erwin schrieb:
> dass ich bei
> Detektion des DC-Klingelsignals aus dem Optokoppler (LTV-814) kein [1,
> 1, 1, 1, 1] bekomme sondern eher ein [0, 1, 0, 0, 1] - es wechselt also
> während dem Drücken umher.

Dann wäre doch eine software Entprellung möglich.

Erwin schrieb:
> kann zwischen dem Hausruf und Türruf unterscheiden

wie denn?
kommmen da unterschiedliche 1 0 Teile?

von Erwin (erwinh)


Lesenswert?

Joachim B. schrieb:
> Erwin schrieb:
>> dass ich bei
>> Detektion des DC-Klingelsignals aus dem Optokoppler (LTV-814) kein [1,
>> 1, 1, 1, 1] bekomme sondern eher ein [0, 1, 0, 0, 1] - es wechselt also
>> während dem Drücken umher.
>
> Dann wäre doch eine software Entprellung möglich.

Entprellung per Software ist möglich und funktioniert auch, weil es 
allerdings überhaupt erst mein erstes reales Projekt ist, möchte ich es 
(in einer neuen Version der PCB) auch hardwareweise machen.

Joachim B. schrieb:
> Erwin schrieb:
>> kann zwischen dem Hausruf und Türruf unterscheiden
>
> wie denn?
> kommmen da unterschiedliche 1 0 Teile?

Haus- und Türruf (= an der Wohnungseingangstüre) haben unterschiedliche 
Zuleitungen, also 2 x LTV-814 bzw. ein LTV-824.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Erwin schrieb:
> Entprellung per Software ist möglich und funktioniert auch, weil es
> allerdings überhaupt erst mein erstes reales Projekt ist, möchte ich es
> (in einer neuen Version der PCB) auch hardwareweise machen.

das Stichwort heißt retriggerbares monoflop, wenn es dein Wunsch ist den 
ich aber nicht verstehe.

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
Noch kein Account? Hier anmelden.