24V Eingänge mit Arduino schalten (optokoppler, Transistor, MOSFET)

Arduino soll Eingaenge an Industriesteuerung schalten (Optokoppler?)
Hallo, ich möchte den Arduino als Multiplexer für eine SPS verwenden. Der Arduino soll also mit seinen Ausgängen die Eingänge der Steuerung schalten. Jedoch werden dort 0-24V DC erwartet, max. 1mA. Kann ich dafür einen Optokoppler einsetzen? Oder ist das mit einen Darlington Array im DIL Gehäuse zu lösen? Interessant wäre ein Lösungsvorschlag, der möglichst wenige externe Bauelemente enthält...
Vorab Vielen Dank

Wie sind die SPS -Eingänge? mit Pullup Widerständen?
Falls Du die Arduino-Masse und die Masse der SPS zusammenschalten kannst brauchst Du dazu nur einen NPN Transistor pro Ausgang oder ein Darlington-Array zB ULN2803.
Falls Du die beiden Massen nicht zusammenschalten kannst, brauchst Du Optokoppler.

Du weißt schon, daß Arduino bei weitem nicht an die Robustheit einer SPS herankommt und Du durch die Verwendung von Arduino die SPS viel weniger Ausfallsicher machst

Grüße Uwe

Vielen Dank fuer die Antwort. Das waere ja ne tolle Sache mit dem ULN 2803, aber mal ne Frage wie mache ich das, bekommt der ULN2803 24 VDC Spannung der Arduino gibt dann 5 V in den Eingang das wars, ohne Widerstaende oder so?

Massen koennen zusammengelegt werden. Es Muessten pulldown Widerstaende in der SPS Eingangsseite sein.

Zuverlaessigkeit, ganz klar, die wird dadurch nicht hoeher, und selbstgebastelte Multiplexer tun ihr uebriges. Hier stehen jetzt die Investition von 1200 Eur gegen 200 mit 2 Arduino Megas gegenueber und den entsprechenden DIs ... Da muss ich das einfach mal machen....
Selbst ein Holzhammer Watchdog, der alle 12h die Arduinos neu durchstartet waere denkbar.

Mich wuerde mal interessieren was die geringere Zuverlaessigkeit bedeutet, bzw. wo sie anfaengt.

Ist ein einfacher Arduino auch schon "unzuverlaessig"? Oder wird das durch das hinzufuegen von Komponenten zum Board (was in einem individualaufbau ja dann erstmal keiner getestet hat) dann entsprechend anfaelliger gegen Stoerungen. Der Atmega selber sollte doch aber mit einem ordentlich gebauten Programm fuer sich allein schon erstmal zuverlaessig arbeiten, oder macht man da auch schon Abstriche...

Vielen Dank erstmal fuer die Hinweise.

Wenn die SPS Pulldown Widerstände an den Eingängen hat, dann kannst Du den ULN2803 nicht verwenden. Dieser ist ein Array von 8 Darlington Transistoren mit offenen Kollektor die den Ausgang auf Masse ziehen. Der ULN2803 hat eigentlich keine Versorgungsspannung; das + pin ist Für die Schutzdioden notwendig wenn man Spulen ansteuert.

Der A2981 oder UDN2981 ist das was Du brauchst. Dieser zieht den Ausgang auf + Versogungsspannung. http://www.allegromicro.com/en/Products/Motor-Driver-And-Interface-ICs/High-and-Low-Side-Drivers/UDx2981-2.aspx

Für beide gilt: die notwendigen Widerstände sind integriert; Du kannst die Arduino-Ausgänge direkt an die Eingänge des UDN / ULN anschließen.

Eine komerzielle SPS ist vom Hersteller getestet und auch durch den vielfachen Einsatz sind noch die allerletzten Fehler aufgedeckt worden. Außerdem kontrolliert der Hersteller in der Planung/Vorproduktion auch alle erdenklichen Störeinflüsse bzw Umweltparameter. Das sind alles Dinge die Du nicht machen kannst. Weißt Du ob Deine Schaltung/Programmierung bei Hitze/Kälte Feuchtigkeit das macht was sie soll?

Dein Wissen von Elektronik-Programmierung ATmega-Architektur wird (leider) lückenhaft bis inexistent sein. So schleichen sich einfach Fehler aus unwissen ein. Glaub nicht, nur weil ich das schreibe, weiß ich soviel mehr.

Viele Grüße Uwe

uwefed:
Der A2981 oder UDN2981 ist das was Du brauchst. Dieser zieht den Ausgang auf + Versogungsspannung. http://www.allegromicro.com/en/Products/Motor-Driver-And-Interface-ICs/High-and-Low-Side-Drivers/UDx2981-2.aspx

Perfekt, das sieht exakt nachdem aus was ich suchte.
Noch einmal Vielen Dank.

Googel mal nach der Fa. Rinck, da kannst Du einen fertigen Multiplexer kaufen.
Bei dem Preis lohnt sich eine Eigentwicklung wirklich erst bei größeren Stückzahlen.
Ich habe das Teil schon mehrfach eingesetzt und bin rundum zufrieden.

Gruß
Sascha

Hallo Vielen Dank fuer die Antwort. ich habe Herrn Rinck aus Rotenburg uebrigens schon einige Male persoenlich getroffen. Ach ja und die USE32 Multiplexer sind aehm ja eher unzuverlaessig. Ich selbst habe bestimmt 10 davon in dreiwoechentlichen Abstand zur Garantie eingeschickt.... Also ehrlich, wenn ich koennte ich wuerde verzichten. Letztlich muss fuer den arduino multiplexer ein arduino prgramm geschrieben werden,was ich ja sowieso gern vertiefen moechte. Sollte der MP gut funktionieren habe ich eine tolle Vorlage fuer weitere Projekte. ein erhoehter Zeitaufwand beim ersten Mal ist dabei fuer mich kein Problem. Ich moechte hier 25 Temperaturen mit onewire erfassen und per arduino in 16 digitale EIngaenge rein-schiessen. Solch ein Multiplexer ist wahrscheinlich eher ungebaeuchlich, da muss man dann eeh selber bauen.
Trotzdem Vielen Dank

Komisch, ich setzte sowohl den Analogeingangs als auch den Analogausgangsmultiplexxer ein.
Teilweise schon seit mehreren Jahren im Dauerbetrieb ohne Probleme.

Schade, das das für Dich keine Lösung darstellt