Arduino, 24V und UDN2981

Hallo zusammen,

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.

Gruß aus NRW
GummiQ

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.

die Befestigungslöcher rechts sind nicht in einer Flucht. Absicht?
Auf der linken Seite scheint mir der Abstand der Löcher zur Buchse sehr knapp

Wäre es nicht einfacher einen Controllino zu benutzen?
Grüße Uwe

Der aufbau kostet Max 10€, darauflöten no max 1Std
Controllino min 300€

Grüße
Bernhard

Der ist zertifiziert und kostet weniger als eine SPS.

Bei Nanao A6, A7 = reine Analog Eingänge, nicht verwendbar als Digital Pins
Also haut nicht hin.

1 Like

Dazu nochmal die Pinbelegung:
Arduino Nano Pinout
(Grazie Alberto)

Grüße Uwe

Noch ist nicht alles verloren. :wink:
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.

Guten Morgen zusammen

Erst mal vielen Dank für die vielen Antworten.

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 gilt nur für A0 bis A5, nicht für A6 und A7. A6 und A7 sind reine analoge Pins.

Und für weitere Fragen poste bitte ein Schaltbild, das ist besser zuverstehen.

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.

Grüße Uwe

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