ich bastele mal wieder an einem kleinen SPS-Projekt.
Da bei den verwendeten Systemen kaum was angeschlossen ist, keine größeren Antriebe o.Ä., wird die 24V Seite relativ "sauber" sein. Generell wird die SPS nur genutzt für ein paar Sicherheitskreise und max. 1-2 kleine Magnetventile (kleine Türe pneum. öffnen/schließen).
Nun hatte ich mir überlegt, ob ich nicht anstelle von Optokopplern einen UDN2981 nutze, sowohl für SPS-> Arduino, als auch Arduino-> SPS, jeweils 8 Bit.
Was meint Ihr, funktioniert das so?
Es kann sein, dass im Layout noch kleinere Fehler sind, z.B. Werte der Widerstände, aber im Moment geht es mir um eine generelle Beurteilung der Machbarkeit.
Besser wäre es, du würdest uns ein Schaltbild posten, da kann man besser erkennen, wie du die Schaltung verdrahtet hast. Ich sehe aber kein Problem bei der Funktion, die UDN auf beiden Seiten zu verwenden. Den 24Volt Eingang evtl. mit einem Spannungsteiler versehen.
Noch ist nicht alles verloren.
Alternativ können die freien digitalen Pins statt der A6 und A7 verwendet werden.
Oder der Nano wird gedreht und A6 und A7 als analoger Eingang genommen und entsprechend die Auswertung angepasst.
Das Layout ist noch nicht endgültig, ich habe es von einer anderen Schaltung aus umgemodelt.
Was die analogen Pins angeht, so habe ich in einem anderen Thread folgendes gelesen:
Die Analogpins sind im Grunde genommen Digital I/O mit der Zusatzmöglichkeit, den AD-Wandler anzukoppeln. Mit pinMode(Ax,OUTPUT) kannst du die Pins als ganz normal als Ausgang (digitalWrite() ) benutzen, die Spezifikationen sind dieselben wie bei jedem anderen Digital I/O auch.
Was die Stabilität und Zuverlässigkeit generell angeht:
Das Ganze ist mehr für den internen Gebrauch gedacht, um Systeme zum Beispiel 24 Stunden zu testen und Ähnliches.
Ich hatte auch erst überlegt Optokoppler zu nehmen ( PC 847X), aber dann habe ich nicht nur die Widerstände für die LEDs sondern auch noch zusätzlich für die Ein- und Ausgänge vom PC 847, dazu kommt,, dass der, bei gleicher Anzahl Beinchen, nur vier Kanäle hat, ich also davon 4, und damit deutlich mehr Platz benötige.
Es geht mir also generell erst mal um die Machbarkeit, ob ich diesen Baustein wirklich zweimal verwenden kann, einmal 24 V Richtung 5 V und einmal 5 V Richtung 24 V.
Für das endgültige Layout tausche ich eventuell noch die Widerstände gegen Arrays aus, denn es kommen wahrscheinlich noch 16 weitere R dazu.
Ich überlege Pulldown R‘s einzubauen, damit ich immer sauber definierte Schallzustände habe.
Natürlich könnte ich auch die internen Puul-up verwenden, arbeite aber lieber mit positiver Logik, denn sonst könnte ich ja direkt auf die high side treiber verzichten.
Das ist nur eine Einstellung in Deinem Kopf. Dem Controller ist das egal. ob du nun
if (digitalread(pin) == HIGH) schreibst
oder
if (digitalread(pin) == LOW) schreibst ist keine Hexerei.
Dan bist du auf dem Holzweg der UDN 2981 ist ein Treiber IC = Funktioniert nur in einer Richtung von Eingang zu Ausgang umgekehrt geht nicht, es ist nicht möglich den Eingang auszulesen
5 --> 24 ja 24 -->5 nein