Optokoppler

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo ich habe eine Wechselspannung von 14V, die würde ich jetzt gerne über einen

    Optokoppler (LTV 814) erfassen und auf einem Raspberry das Signal weiterverarbeiten.

    Leider komme ich mit der Berechnung der Widerstände nicht klar.

    Auf der Dioden Seite liegen die 14V Wechselspannung an.

    1.2V – 14V / 0.05A = 256 Ohm

    Aber was mach ich auf der anderen Seite machen? Da liegen ja nur 3.3V vom Raspberry an.


    Gruss Sascha

  • An die LED-Seite schließt du wie berechnet ca. 270 Ohm (Standardwiderstand) an (220 oder 330 tuns auch).
    Die andere Seite ist ein Transistor als open Collector. Den Emitter schließt du an GND, den Collector an den GPIO (zur Sicherheit noch mit einem 1000 Ohm Widerstand vor dem GPIO). Den Eingang programmierst du mit internem Pullup. Wenn der Transistor schaltet, wird der GPIO auf GND gezogen (LOW), sonst ist er auf 3,3 V (HIGH, wegen des Pullups).

    Der Optokoppler wird wegen der Wechselspannung ständig Ein/Aus-Signale liefern. Du solltest daher den Ausgang noch mit einem Kondensator glätten. Ein paar Hundert nF sollten genügen.

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

    Einmal editiert, zuletzt von Gnom (29. Mai 2020 um 12:37)

  • Die eine Halbwelle der Spannung läuft durch die eine LED, die andere durch die zweite. Die Wechselspannung läuft aber dazwischen immer durch den Nullpunkt - an der Stelle fließt kein Strom und somit ist der Transistor gesperrt.

    Das ist zwar nur ein kurzer Moment, aber wenn du genau da den GPIO liest, verpasst du das Signal. Wenn du mit einem Interrupt arbeitest, löst der mit der doppelten Frequenz des Wechselstromes aus (also 100 Hz, wenn es ein normaler Trafo ist).

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

    Einmal editiert, zuletzt von Gnom (29. Mai 2020 um 13:10)

  • Ok, Jetzt habe ich noch ein Problem, ich benutze den ioBroker, aber wie stelle ich den GPIO dort auf pullup? das müsste ja heißen, wenn ich an den GPIO gegen Masse messe, müssten da 3.3V anliegen oder?

    Muss sich den GPIO nicht mit der 3.3V Spannung vom Board füttern? Sonst wäre der GPIO Pin ja ein Output ??

    Angeschlossen habe ich das jetzt mal so, GPIO26 auf Input an einen Pin vom Taster.

    An den anderen Pin vom Taster einen 10K widerstand und dann an 3.3V vom Raspberry Board.

    Ist das so nicht richtig?

    2 Mal editiert, zuletzt von sascha321 (29. Mai 2020 um 14:36)

  • 10 K ist etwas viel - 1k sollte genügen. Der Widerstand sollte nah am GPIO sein, denn den soll er schützen. Also besser vom GPIO zum Widerstand und von dort zum Taster und weiter zu 3,3 V.

    Die Schaltung klappt nur mit einem Pulldown, also wenn der interne Pulldown eingeschaltet ist oder ein externer Pulldown angeschlossen ist.

    Ich kenne den ioBroker nicht - keine Ahnung, ob man dort einen internen Pulldown programmieren kann.

    Alternativ kannst du auch den zweiten Pin des Tasters mit 1000 Ohm an GND anschließen. Dann brauchst du aber einen Pullup (intern oder extern).

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

  • Um ehrlich zu sein weiss ich nicht was Du mit dem Pullup und Pulldown meinst, habe versucht das zu erlesen, aber ich verstehe das nicht.

    So funktioniert es auf jedenfall.

    Der Widerstand sollte nah am GPIO sein, denn den soll er schützen. Also besser vom GPIO zum Widerstand und von dort zum Taster und weiter zu 3,3 V.

  • Um ehrlich zu sein weiss ich nicht was Du mit dem Pullup und Pulldown meinst, habe versucht das zu erlesen, aber ich verstehe das nicht.

    echt jetzt?

    kann man auch mal im Englischbuch nachlesen oder sogar google befragen

    pull ziehen up hoch

    pull ziehen down runter

    also

    ein pullup zieht hoch

    ein pulldown zieht runter

    nur was denn?

    worum gehts hier?

    Ein GPIO als Input will ein Signal sehen, aber was wenn keines da ist weil der Taster oder der Optokopplertransistor offen ist?

    Lösung man klemmt den GPIO über einen Widerstand an ein Potenzial, eine definierte Spannung, diese kann entweder high sein -> hohes Potenzial z.B. 3,3V am PI oder low sein -> niedriges Potenzial z.B. GND am PI.

    Warum macht man das?

    Weil sonst am GPIO nur ein Draht hängt der nirgends endet mit offenen Taster und was kennen die meisten noch was als offener Draht oder Metallstück im "nichts" endet?

    Richtig eine Radioantenne und wie ein Radio da Funkwellen empfängt so "empfängt" ein GPIO alles was so in der Luft rumschwrirrt und wer will das mal high mal low sehen auf dem GPIO?

    Der Taster oder der Optokopplertransistor legt nun wenn er geschaltet wird genau das Gegenteil an, Folge es wird dann das Gegenteil erkannt von vor dem schalten.

    Wenn ein pulldown also runterzieht muss der Taster oder anderer Schalter hochziehen also nach +3,3V geschaltet werden!

    Wenn ein pullup also hochzieht muss der Taster oder anderer Schalter runterziehen also nach GND geschaltet werden!

    Pullup und pulldown sind die einfachsten logischen Fachbegriffe die man auch ohne Studium verstehen könnte!

    https://www.elektronik-kompendium.de/public/schaerer/pullr.htm

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Danke für die Lehrstunde.

    gerne, vielleicht hilft es anderen;)

    Versteh den Sinn dahinter trotzdem nicht.

    ist eine vernünftige Kommunikation mit dir unmöglich?

    Was verstehst du denn nicht, eventuell könnte man es dir erklären und wenn nicht, dann frage nicht sondern mache es einfach, pullup an 3,3V mit 3,3k Ohm, Taster nach GPIO und GND und frage den GPIO auf 0 ab!

    Nun verstehe ich auch warum man das machen soll.

    also verstehst du doch?

    Manno was ist deine Muttersprache:conf::conf::conf:

    niemand sonst hat dir geantwortet und der Einzige der antwortet ist dir unangenehm, OK kann ich mit leben (wieder einer auf der Merkliste: antworten sinnlos)

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Moin!

    Eventuell helfen die folgenden zwei Seiten, für das Verständnis, weiter?

    https://www.elektronik-kompendium.de/sites/bau/0411091.htm

    https://www.mikrocontroller.net/articles/Optokoppler

    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.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Laut Datenblatt sind 50mA das absolute Maximum des Stromes für die LED des

    Optokopplers. Normal wären 20mA. Also den Vorwiderstand für die LED

    mindestens verdoppeln.

    mfg

    Frank

    Da ist ihm wohl eine Kommastelle verrutscht...

    1.2V – 14V / 0.005A = 2560 Ohm

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

  • Hallo Zusammen

    Nun sind endlich alle Teile da und ich kann mir die Platine Löten.

    Ich habe noch eine Frage zum #2, dort steht,

    Zitat

    Der Optokoppler wird wegen der Wechselspannung ständig Ein/Aus-Signale liefern. Du solltest daher den Ausgang noch mit einem Kondensator glätten. Ein paar Hundert nF sollten genügen.

    Das heisst der Kondensator kommt mit an den GPIO Pin? Habe ich das richtig verstanden?

    Gruss Sascha

  • Ja. zwischen GPIO und GND.
    An der Wechselspannungsseite würde er ja nicht die gewünschte Wirkung erzielen. Er soll am GPIO die Spannung in den kurzen Momenten des Schaltwechsels des Optokopplers hoch (oder niedrig - je nach Schaltung) halten.

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

  • Nun muss ich noch mal fragen, der Kondensator speichert ja jetzt die Spannung und gibt sie wieder ab.

    Dadurch liegt das Signal länger an als nur ein paar Millisekunden, muss ich das Software mäßig abfangen,

    oder kann man das auch Hardware mäßig lösen?

  • Das kommt ganz drauf an, wie dein Code aufgebaut ist und was du erreichen willst.

    Es geht auch ohne Kondensator, wenn du das wechselnde Signal softwareseitig abfängst.

    Du hast leider nicht gesagt, was das für ein Signal ist und wie du es auswerten willst.

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

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!