Klingelsignal zwecks zuverlässiger Erkennung am Optokoppler-Ausgang glätten?

#7719250
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?

(Firma: Funkenflug Industries) #7719258
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.

#7719391
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren