Verwendung Optokoppler an GPIO

  • Hallo Zusammen,


    ich möchte für eine Heizung eine Überwachung realisieren.

    Ausgangssituation ist folgende: die Heizung schaltet eine LED über eine Gleichstromleitung ein falls ein Fehler vorhanden ist.

    Nun ist die Idee folgende: Überwachung der Gleichstromleitung per GPIO (Python -->Meldung über Telegrambot).


    Nachdem ich nun noch etwas neu in dem Thema bin, hab ich im Internet recherchiert und bin zum Schluss gekommen, eine Lösung mit Optokoppler ist am sinnvollsten :).


    Ich habe mich an folgenden Beispiel orientiert, da dass meinem Fall am nächsten kommt:



    Verwendeter Optokoppler ist der 4N45.


    Nun treten aber 2 Fehler auf:

    1. Sobald ich die Schaltung auf RasPI Seite wie im Bild beschrieben verbinde ist der GPIO auf HIGH Pegel.

    Tausche ich die PINS GPIO 3,3V <-->GPIO Input, ist das richtige Verhalten vorhanden. Das ist in meinen Augen auch sinnvoller oder?


    2. Schaltung wie beschrieben aufgebaut, zum Testen als "Terminal Spannung" 3,3V vom RasPI genommen -->Funktioniert wie erwartet. Spannung vorhanden, Optokoppler lässt durch.

    Sobald ich nur eine Ader(egal ob + oder -) vom Terminal verbinde, toggelt der Pegel am GPIO hin und her (kein genaues Muster erkennbar)

    An externen PINS von der Heizung liegt aber definitiv keine mit dem Multimeter messbare Spannung an. Ich bin hier gerade etwas ratlos, warum schaltet der Optokoppler immer wieder obwohl keine Spannung anliegt bzw. nur eine Ader verbunden ist?


    Ich sag schon mal danke im Voraus für Antworten.:)


    Gruß,

    Christian


    PS.: Original Thread zur Schaltung: https://www.raspberrypi.org/forums/viewtopic.php?t=202764

  • Wenn sich alles nah beieinander befindet, ist das Verhalten kaum denkbar.
    Wenn der Optokoppler nah bei der Heizung ist und du ein langes Kabel zum Pi-GPIO hast, dann sind es womöglich Störungen auf der Leitung.

    Zu1. Input und 3,3V vertauschen ist Unsinn.
    Der Pegel kann eigentlich nicht high sein. Vielleicht hast du noch einen internen Pullup programmiert?


    2. versteh ich nicht. Wenn du die Terminal-Spannung 33 V nimmst, geht es aber wenn du es mit Terminal verbindest, geht es nicht.

    Kannst du dich etwas genauer ausdrücken? Welche Ader von was wird mit was verbunden?

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Keine besonders gute Idee...
    Wenn bei dieser Schaltung der GPIO auf output gestellt ist und der Optokoppler durchschaltet hast du einen schönen Kurzschluss.


    Vor den GPIO gehört immer (sofern nicht andere Gründe dagegen sprechen) ein 1000 Ohm-Widerstand.
    Da wo in der Zeichnung 1K-3,3K steht, gehört ein Pullup hin, der etwas größer sein darf. 10 K ist ok. Ich nehme allerdings stattdessen auch gerne die internen Pullups.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Moin Heiglberger,


    erstmal: Herzlich Willkommen im Forum!


    Nachdem ich nun noch etwas neu in dem Thema bin, hab ich im Internet recherchiert und bin zum Schluss gekommen, eine Lösung mit Optokoppler ist am sinnvollsten :) .

    Bist du nicht nur neu im Thema Raspberry oder auch neu im Thema Elektronik?

    Du kennst die Funktionsweise eines Optokopplers?

    Nun treten aber 2 Fehler auf:

    1. Sobald ich die Schaltung auf RasPI Seite wie im Bild beschrieben verbinde ist der GPIO auf HIGH Pegel.

    Tausche ich die PINS GPIO 3,3V <-->GPIO Input, ist das richtige Verhalten vorhanden. Das ist in meinen Augen auch sinnvoller oder?

    Das bedeutet das die Leuchtdiode im Optokoppler leuchtet und damit den Transistor durchschaltet. Schalte den Eingang (Alarm terminal +/ Alarm terminal - ) kurz oder Lege den Widerstand R180 gegen Masse Raspberry.

    2. Schaltung wie beschrieben aufgebaut, zum Testen als "Terminal Spannung" 3,3V vom RasPI genommen -->Funktioniert wie erwartet. Spannung vorhanden, Optokoppler lässt durch.

    Welche Schaltung hast du aufgebaut? Die nach der Schaltung oder die nach deiner Meinung?

    Da bin ich nun mal der jar: Ein Bild von deinem Aufbau ist da hilfreich.


    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.

  • Aktuell hängt kein Pin mehr "in der Luft".

    Beim Booten wird an jedem Pin der interne Pullup, oder Pulldown aktiviert, wie dies im Datenblatt des jeweiligen SoC unter GPIO in der Tabelle der alternativen Funktionen ersichtlich ist.

    Z.B. BCM 2711 (Pi4) 0-22:

  • Welche Spannung hast du denn im Alarmzustand auf den Terminalklemmen? Kannst du das mal messen?

    Von Störimpulsen dürfte sich eine LED nicht länger einschalten. Wie lang sind denn diese Toggel-Impulse? Und wie lang sind die Leitungen vom Terminal zum Optokoppler bzw. vom Optokoppler zum Pi?

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Erstmal Danke für die nette Aufnahme im Forum!


    Bernd666: Neu würde ich jetzt nicht sagen, aber mir fehlt die Praxis.


    Zu meinem ersten Problem, ja ich hatte tatsächlich noch einen internen Pull_down_Widerstand programmiert. Ein Überbleibsel aus dem ersten Programmierversuch. Ich hab den entfernt und die Schaltung wie in meinem ersten Bild verkabelt. Funktioniert nun. Soweit schon mal vielen Dank ;)


    Problem Nr. 2:

    Hätte ich es jemanden gezeigt, würde man sagen Vorführeffekt. Das Problem ist einfach nicht mehr vorhanden. Müsste aber wohl irgend ein Störeinfluss von dem Terminal -->Optokoppler gewesen sein. Den die Kabel von der Heizung sind relativ lange ( ca. 100m) und die vom Optokoppler zum PI nur 10cm.


    Gnom: Falls es dich interessiert: Spannung an den Terminal klemmen sind genau 3V (mit Multimeter gemessen). Die Toggle Impulste sind schwanken immer zwischen 1-5s. Ich habe auch deshalb die Software "robuster" gemacht. Die Benachrichtigung wird nur rausgeschickt, wenn der GPIO Pegel min. 10s lang auf high ist.



    Aber da nun alles funzt, will ich euch nicht länger mit meinen nicht vorhandenen Problem nerven.^^

    Euch allen vielen Dank für die schnelle und gute Hilfe.


    Gruß,

    Christian

  • Moin Heiglberger,


    danke für die Rückmeldung!

    Dann noch dein Thema als erledigt markieren. Das geht oben bei "Thema bearbeiten" Danke!


    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.