DigitalRead mit Optokoppler zum Auslesen von 24V Spannung

Hallo zusammen,

ich bin neu in der Arduino Welt und komme aus der Softwareentwicklung, habe aber leider mit Elektrotechnik nicht so viel am Hut. Ich habe aber ein konkretes Projekt, was ich umsetzen möchte und komme gerade nicht weiter und würde mich über Hilfe freuen.

Ich möchte mein Garagentor per Webanwendung steuern und den Status auslesen. Dafür habe ich jeweils 2 Steuerleitungen mit 24V. Leitung 1 startet den Torlauf bei Kontakt und diese kann ich einfach per Relay steuern (bis hierhin kein Problem). Auf Leitung 2 liegen 24V an, wenn das Garagentor offen steht und hier möchte ich den Status auslesen.

Um dies zu lösen, habe ich mir folgendes Optokoppler-Relay gekauft:
2-Kanal Channel Relais Modul 5V/230V Optokoppler Arduino Raspberry CP0402A G11

Nun dachte ich mir, ich kann auf einem Kanal die Torfahrt steuern was auch funktioniert und auf dem 2. Kanal mittels digitalRead ermitteln, ob 24V anliegen und somit das Tor offen ist.

Ich habe aber gerade Zweifel daran, dass das überhaupt mit diesem Bauteil funktioniert und vorallem weiß ich nicht, wie ich es anschließen muss.

Ich wäre über Tipps sehr dankbar oder wenigstens um die Info ob es überhaupt mit dem Bauteil machbar ist.

Ich würde die Stromkreise übrigens gerne getrennt lassen wenn möglich (also nicht die Spannung mit Widerständen auf 5V reduzieren).

Vielen Dank!

Ein Relais ist einfach ein Schalter. Damit kannst du also nicht feststellen ob da 24V anliegen.

Wenn du messen willst ob das Tor offen oder zu ist, kannst du an der entsprechenden Stelle einen Endschalter einbauen.

OK, danke aber muss ich noch einen Endschalter einbauen? Das Tor liefert bereits das Signal zurück was bereits eine 24V Birne zum Leuchten bringt, wenn das Tor offen ist. Ich müsste eigentlich nur das bereits vorhandene 24V Signal "lesen" können.

Du kannst auch einen eigenständigen Optokoppler nehmen (zusätzlich zu der Relais-Platine). Die LED auf 24V dimensionieren und einen Pullup gegen 5V am Ausgangstransistor.

So:

Wobei der Vorwiderstand der LED dann mindestens ca. (24V - 1,6V) / 10mA = 2,2k betragen sollte. Mehr geht auch. Siehe auch hier:

Vielen Dank. Leider verstehe ich bei der Zeichnung nur BAHNHOF.

Also wenn ich es richtig verstehe aus dem Text besorge ich mir einen Optokoppler, der anstatt des aktuellen Kopplers mit 24V DC (das Signal vom Tor) anstatt 5V arbeitet und schalte dann am anderen Ende die 5V vom Arduino-Bord zusammen mit einem digitalen PIN (z. B. 4). Richtig?

Würde der hier passen?
http://www.ebay.de/itm/Signalrelais-monostabil-2-Wechsler-110V-DC125VAC-1A-30W-62-5-VA-24V-200mW-/261510462633?pt=Bauteile&hash=item3ce33cfca9

oder der?
http://www.ebay.de/itm/1Stk-SLA-24VDC-SL-C-Mini-24V-DC-SONGLE-Power-Relais-PCB-Type-/121504832238?pt=Elektromechanische_Bauelemente&hash=item1c4a409aee

Vielen Dank.

Das sind Relais! Keine Optokoppler. Die würden zwar auch gehen, aber sind hier völlig überdimensioniert.

Das hier z.B.:
http://www.ebay.de/itm/Optokoppler-Vishay-CNY-17-3-DIP-6-Ausfuhrung-Phototransistor-Single-/151270769913?pt=Bauteile&hash=item233870c4f9

Oder wenn du gleich 10 Stück willst:

Ebay hat da endlos Auswahl. Nur die Finger von den MOC Typen lassen. Die meisten anderen sollten ok sein.

Danke! Den ersten Link habe ich bestimmt. Bin mal gespannt ob ich es ans Laufen bekomme.

So, den optokoppler aus der Auktion habe ich da. bevor ich den heute Abend durchbrennen lasse: Widerstände brauche ich keine oder?

Werde aus dem Datenblatt nicht schlau.

Natürlich brauchst du Widerstände. LEDs brauchen immer Vorwiderstände und ausgangsseitig braucht man einen Widerstand gegen 5V.

Für den CNY17 per dem Bild im Datenblatt gleich oben links:

Eingang:
Pin 1: über 2,2-22 kOhm an die 24V Leitung
Pin 2: Masse der 24V Schaltung

Ausgang:
Pin 4: Arduino GND
Pin 5: an einen Digital-Pin und über 10 kOhm an die 5V des Arduino

Wenn dann die 24V High sind, geht die LED an, der Transistor schaltet durch und zieht Pin 5 auf Masse. Das heißt du hast High wenn am Eingang Masse anliegt und Low bei 24V.

Pin 5: an einen Digital-Pin und über 10 kOhm an die 5V des Arduino

Alternativ den Pin als INPUT_PULLUP definieren. Dann sparst du dir den 10k Widerstand.

Eingangsseitig brauchst du auf jeden Fall einen Vorwiderstand.
Eventuell ist auch ein Verpolungsschutz sinnvoll ?

0--- 10k ---+----+     +-----
 24V        |   1|     |5   INPUT_PULLUP
            _    v    / 
            ^    -    \
 0V         |   2|     |4   GND
0-----------+----+     +-----
         Diode    CNY17     Arduino 
als Verpolungs-Schutz

nachtrag:
Der Opto-Eingang verträgt nämlich keine 24V "falschrum".
Aber ob diese Gefahr realistisch ist, musst du selbst wissen.
Profis kennen ihre Kollegen, und bauen sowas immer ein :wink:

In meiner Testumgebung funzt es schonmal mit INPUT_PULLOUT!

Danke dafür!

Hallo, ich bin an dem gleichen dran und erstelle mir ein PCB.

Bei anderen Boards habe ich gesehen das die ein 100nF Kondensator zur Entstörung mit einbauen. In der Zeichnung von michael_x wäre also zwischen PIN 5 und GND noch ein Kondensator eingebaut.

Habt Ihr da Erfahrungswerte - macht das Sinn?

jedes Gerät brauch sein 100nF Abblockkondensator.
Frag mal Eisebaer, er singt dir ein Lied von :smiley:

skorpi08:
Abblockkondensator

Danke. Abblockkondensator liefert die gewünschten Informationen Abblockkondensator – RN-Wissen.de.

INPUT_PULLUP sollte eigentlich auf schon geglätteter Vcc basieren.
Aber je nach Eingangssignal könnte ein RC Glied ( hier im Bild mit dem 10k Widerstand ) sinnvoll sein.

michael_x:
Aber je nach Eingangssignal könnte ein RC Glied ( hier im Bild mit dem 10k Widerstand ) sinnvoll sein.

Das ganze nochmal mit RC Glied gezeichnet:

24V 0--- 10k ---+------+--------+     +----- PIN X (INPUT_PULLUP)
                |      |       1|     |5   
                _      _        v    / 
                -      ^        -    \
                |C1    | D1    2|     |4
 0V 0-----------+------+--------+     +-----0 GND

Ja.
Das ist natürlich kein Abblock-Kondensator (je größer desto besser, wenn er den gleichen Frequenzgang hat)

Sondern ein Tiefpass: R*C = 10k * 100n = 1 ms
Genauer, da du ja keine 24V am opto-Pin1 brauchst, sondern nur 1,2V : Stör-Pulse < 24V * 50µs werden unterdrückt.

Super, Danke für die Infos.