Forum: Mikrocontroller und Digitale Elektronik 24V to 5V Arduino


von Thomas (Gast)


Lesenswert?

Hallo,

ich habe mehrere 24V Steuerleitung, welche mir ein HIGH oder LOW (0 oder 
24V) Signal geben. Länge der Steuerleitung ist etwa 30m.

Die Steuerleitungen lese ich mit einem Arduino ein, dazu muss die 
Spannung der Steuerleitung auf 5V gesenkt werden, sowie vor störenden 
Einflüssen auf der Leitung geschützt werden.
Arduino und 24V Steuersignal besitzen die gleiche Masse.


Auf einer Testplatine ich habe eine Z-Diode 5.1V mit einem Vorwiderstand 
von 2k2 Ohm.
Funktioniert soweit.

Wie schütze ich das ganze am besten vor äussere Einflüssen, welche von 
der 24V Steuerleitung kommen könnten?
Danke!

von Curby23523 N. (Gast)


Lesenswert?

Nimm am besten einen Optokoppler, mehrere Probleme auf einmal gelöst.

von Thomas (Gast)


Lesenswert?

Einen Basiswiderstand vor dem Optokoppler, den Arduino gegen GND 
schalten und fertig?

von Curby23523 N. (Gast)


Lesenswert?

Ich werde dir jetzt kein Modell raussuchen. Den Vorwiderstand für die 
LED so wählen, dass der Betrieb bei 24V sichergestellt ist. Der 
Fototransistor/Diode/was auch immer mit Pullup gegen deine VCC vom 
Arduino, wenn es ein opencollector sein sollte.

Siehe hier: 
https://de.wikipedia.org/wiki/Optokoppler#/media/File:Optokoppler.gif

von Thomas S. (selli69)


Lesenswert?

Optokoppler oder Relais verwenden. Und das Entprellen per HW oder SW 
nicht vergessen.

von DanielF (Gast)


Lesenswert?

Hi,

falls die 24V aus dem Feld kommen, sollte man vielleicht 820pF/500V 
Kondensatoren gegen PE schalten. Gewisse Störungen werden dadurch 
herausgefiltert.

Hast du irgendwelche Normen an denen du dich orientieren musst?

Bei 24V würde ich immer so planen, dass länger anliegende 50V nichts 
kaputt machen. Falls du einen Optokoppler verwendest, wähle den 
Vorwiderstand so, dass du bei 50V den maximalen Strom nicht 
überschreitest. Er sollte aber bei 18V auch schon schalten.

Auf der 5V Arduino-Seite kannst du auch einen Tiefpass-Filter vorsehen, 
bspw. für 200kHz Knickfrequenz.

Gruß
Daniel

von Wolfgang (Gast)


Lesenswert?

Thomas schrieb:
> Einen Basiswiderstand vor dem Optokoppler, den Arduino gegen GND
> schalten und fertig?

Wo vermutest du bei einem Optokoppler eine Basis, an die du einen 
Widerstand hängen könntest.

Eingangsseitig besitzt so ein Optokoppler meist eine simple IR-LED mit 
Anode und Kathode.

von Stefan F. (Gast)


Lesenswert?


von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich empfehle Reed-Relais 24V - falls die Signale nicht über 1kHz 
steigen.

Benutze ich, um mittels Arduino parallel in 8 Kanälen Betriebsdaten aus 
der SPS einer Autowaschanlage auszulesen. Läuft seit 3 Jahren 24/7 ohne 
Probleme.

von Thomas (Gast)


Lesenswert?

Hallo,

danke für eure Tipps!

DanielF schrieb:
> Bei 24V würde ich immer so planen, dass länger anliegende 50V nichts
> kaputt machen. Falls du einen Optokoppler verwendest, wähle den
> Vorwiderstand so, dass du bei 50V den maximalen Strom nicht
> überschreitest. Er sollte aber bei 18V auch schon schalten.

Da käme wohl der PC123 in Frage oder?
Hab mir dazu folgendes Datenblatt rausgesucht:
https://media.digikey.com/pdf/Data%20Sheets/Sharp%20PDFs/PC123%20Series.pdf

Wie lese ich da heraus, mit welchem CTR Wert ich da rechnen muss, zur 
Berechnung des Arbeitswiderstands?

DanielF schrieb:
> falls die 24V aus dem Feld kommen, sollte man vielleicht 820pF/500V
> Kondensatoren gegen PE schalten. Gewisse Störungen werden dadurch
> herausgefiltert.

Was genau meinst du mit Feld? Die Leitungen verlaufen innerhalb eines 
Gebäudes, Unterputz in Elektro Installationsrohre verlegt.


Entprellt wird per Software

von Stefan F. (Gast)


Lesenswert?

Der CTR ist 50% bis 400%. Aber die Dinger altern, deswegen rechne mit 
dem geringsten Wert und plane etwas Reserve ein.

Zum Beispiel kannst du mit 1mA Strom durch die LED etwas weniger als 
0,5mA Laststrom schalten.

Je mehr Strom du fließen lässt, umso weniger Störanfällig wird es sein. 
Ich empfehle, die LED mit 1 bis 10mA zu bestromen.

von Philipp K. (philipp_k59)


Lesenswert?

ich benutze den LM334 als Konstantstrom Treiber im TO92 um einen 
optokoppler  zu steuern.

Vorteil.. Operates From 1V to 40V.

Für ein Lockeres An/Aus reicht das auch.

von Wolfgang (Gast)


Lesenswert?

Thomas schrieb:
> Auf einer Testplatine ich habe eine Z-Diode 5.1V mit einem Vorwiderstand
> von 2k2 Ohm.
> Funktioniert soweit.

Was spricht gegen einen Spannungsteiler und einen angemessenen 
Kondensator, je nach Störumgebung noch mit einer TVS verziert?

Eine Zenerdiode mit Vorwiderstand hat demgegenüber eine wesentlich 
geringere "Treiberleistung" für L-Pegel (0V).

Solange die Masse Leitung deines 24V-Signal sowieso mit deinem Arduino 
verbunden ist, hast du von der galvanischen Trennung eines Optokopplers 
nicht  übermäßig viel.

von svensson (Gast)


Lesenswert?

Ich frage mich auch, ob nicht ein einfacher Spannungsteiler reichen 
würde.

10k-2,2k dürfte passen. Den Eingang dann noch mit einer Zener 5V und 
einem 10k schützen sowie 100nF zum Abblocken.

von Stefan F. (Gast)


Lesenswert?

svensson schrieb:
> Ich frage mich auch, ob nicht ein einfacher Spannungsteiler
> reichen würde.
>
> 10k-2,2k dürfte passen. Den Eingang dann noch mit einer Zener 5V und
> einem 10k schützen sowie 100nF zum Abblocken.

Das reicht meistens. Bedenke aber, was passiert, wenn viele Eingänge auf 
24V liegen während der µC ausgeschaltet (ohne Stromversorgung) ist. Oft 
startet der µC dann ungewollt oder er startet später beim Einschalten 
der Stromversorgung nicht richtig.

Ein Optokoppler bietet darüber hinaus fast deppen-sicheren Schutz gegen 
Überspannung. Schlimmstenfalls geht nur der leicht austauschbare 
Optokoppler kaputt.

von Thomas S. (selli69)


Lesenswert?

Stefanus F. schrieb:
> Ein Optokoppler bietet darüber hinaus fast deppen-sicheren Schutz gegen
> Überspannung. Schlimmstenfalls geht nur der leicht austauschbare
> Optokoppler kaputt.

Deswegen: Optokoppler im DIL Gehäuse nehmen, diesen einen DIL-Sockel 
spendieren und ein Tütchen mit ein paar Ersatzkopplern mit ins Gehäuse 
packen. :) Im Falle das Falles kann man dann beim 
Monteur/Servicetechniker feuchte Äuglein vor Glück sehen.. ;)

: Bearbeitet durch User
von Jörg R. (solar77)


Lesenswert?

Curby23523 N. schrieb:
> Nimm am besten einen Optokoppler, mehrere Probleme auf einmal gelöst.

Würde ich auch so machen, vorausgesetzt das Steuersignal liefert genug 
Strom für den OK.

Für mehrere Steuerleitungen bieten sich OK an von denen mehrere in einem 
Gehäuse sind. Beispiel:

https://www.reichelt.de/optokoppler-ltv-847-p76176.html?&trstct=pos_0

Zu beachten ist dass beim Einsatz von OK das Signal invertiert am uC 
ankommt.

: Bearbeitet durch User
von Dietrich L. (dietrichl)


Lesenswert?

Jörg R. schrieb:
> Zu beachten ist dass beim Einsatz von OK das Signal invertiert am uC
> ankommt.

Das hängt davon ab, wie man den Ausgang des OK beschaltet. Da hat man 
die freie Wahl ob die Schaltung invertiert oder nicht.

von DanielF (Gast)


Lesenswert?

Hi,

Thomas schrieb:
> Was genau meinst du mit Feld? Die Leitungen verlaufen innerhalb eines
> Gebäudes, Unterputz in Elektro Installationsrohre verlegt.

ich arbeite in einer Firma in der wir sichere Steuerungen für die 
Industrie bauen.
Wir haben auch digitale Eingangskarten die mit 24V arbeiten und mit 
denen wir auch im EMV-Labor waren.
Bei uns unterscheidet man bspw. zwischen Feldsignalen (mit den großen 
Maschinen verbunden) und Bussignalen (mit unserem galvanisch getrenntem 
Bus verbunden).

Der Ausdruck "feldseitig" ist in diesem Bereich geläufig. Vom "Feld" 
kommen immer die unbekannten Störungen (Störsignale, Überspannungen, 
Kurzschlüsse,..).

Gruß
Daniel

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

In einer quasi-industriellen Umgebung würde ich von einem direkten 
Anschluß des Arduino an ein externes System Abstand nehmen. Ich habe 
mich monatelang mit nicht erklärlichen Störungen (vermutlich 
EMV-induziert) herumgeärgert, die z.B. Zählerstände veränderten oder die 
Software zum Neustart veranlassten. Anfangs dachte ich, es ist die 
Stromversorgung. Aber als selbst der Testbetrieb mit einer vollständig 
isolierten Powerbank die Probleme nicht löste, war klar, der Mist kommt 
über die Eingänge.

Erst seitdem ich Mini-Reed-Relais (MEDER SIL24...) dazwischen habe, ist 
das Problem gelöst. Die sind wesentlich robuster als Optokoppler, die 
Polung ist egal (wenn keine Freilaufdiode drin ist), es werden keinerlei 
zusätzliche Bauteile wie Vorwiderständer oder Spannungsregler benötigt.

von svensson (Gast)


Lesenswert?

Relais, auch Reed-Relais, unterliegen als mechanische Bauelemente aber 
einem Verschleiß. Wenn der Schaltzustand sich häufig ändert, kann die 
Lebensdauer aber schnell erreicht sein.

von Thomas S. (selli69)


Lesenswert?

svensson schrieb:
> Relais, auch Reed-Relais, unterliegen als mechanische Bauelemente aber
> einem Verschleiß. Wenn der Schaltzustand sich häufig ändert, kann die
> Lebensdauer aber schnell erreicht sein.

Schnell erreicht.. Na klar... Je nach Kontaktausführung eines R-Relais 
zwischen 100*10⁶ und 1000*10⁶ Schaltspiele.

Macht bei einer Frequenz von 1Hz eine Haltbarkeit zwischen ~30 und ~300 
Jahren.

Das sollte auch für die Bedürfnisse von Bedenkenträgern und Schlaumeiern 
ausreichen.

BTW: OKs degradieren auch.

: Bearbeitet durch User
von svensson (Gast)


Lesenswert?

Okay, wenn das so ist, umso besser.

Ich hatte im Kopf, daß mein Kollege meinte, die Reedkontakte, die vir 
verbaut haben, hätten nur eine Lebensdauer von 10.000 Schaltspielen. 
Daher haben wir sie nur als wasserfeste Eingabetaster benutzt und für 
die Messungen extra Hallsensoren beschafft.

von my2ct (Gast)


Lesenswert?

Frank E. schrieb:
> (vermutlich EMV-induziert)

Ja, ja. Nicht wissen was "EMV" bedeutet, aber ihr die Schuld geben.

Wenn elektomagnetische Verträglichkeit gegeben ist, gibt es keine 
Störungen.

von Thomas S. (selli69)


Lesenswert?

svensson schrieb:
> Okay, wenn das so ist, umso besser.

Es wird sogar noch besser: Die Angabe zu möglichen Schaltspielen bei 
RRelais beziehen sich darauf 5V bei 10mA zu schalten, das ist grade so 
an der Lichtbogen-Grenze. Betreibt man den Schaltkreis mit 3,3V und nur 
1 mA, dann kann man noch eine Zehnerpotenz auf die möglichen 
Schaltspiele draufsatteln.

von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

könnte man mir eventuell noch bei der Berechnung des Arbeitswiderstandes 
des Optokopplers helfen?
Wenn am Optokoppler 24V anliegen, sollen am Arduino GND anliegen.
Wenn 0V am Optokoppler anliegen, sollen am Arduino 5V anliegen.

Verwenden würde ich den Optokoppler PC123, 50-600% CTR.

Berechnung mit Sicherheitsfaktor 3:

(5V * 3) / (2mA * 50%) = 15k Ohm

Ist das so richtig, mir kommt der Widerstand sehr hoch vor?

von Stefan F. (Gast)


Lesenswert?

Durch R2 fließen 0,5mA. Da der Optokoppler im worst case 50% übeträgt, 
sind Eingangsseitig also 1mA nötig. Wir legen noch etwas Reserve drauf 
und rechnen mit 2mA.

Von den 24V ziehen wir die Betriebsspannung der LED ab:

24V - 1,5V = 22,5V

Nun durch den Strom teilen:

22,5V / 0,002A = 11,25k Ohm

Auf ein bisschen mehr oder weniger kommt es nicht an, wir haben ja 
reichlich Reserve eingeplant.

von Thomas (Gast)


Lesenswert?

Danke!

hab vorhin eine Seite gefunden, welche das auch schön erklärt:

http://electronicsbeliever.com/optocoupler-device-ctr-and-circuit-ctr-explained/

von Thomas (Gast)


Lesenswert?

Macht es sinn, auf der 24V Seite noch einen 100nF Kondensator vor dem 
Arbeitswiderstand einzufügen?

24V Leitungen verlaufen alle Unterputz in eigene Installationsrohre im 
Heimbereich, Störungen erwarte ich daher nicht viel (bis auf Gewitter 
von draussen oder ähnliches).

Entprellung erfolgt per Software.

von Stefan F. (Gast)


Lesenswert?

Thomas schrieb:
> Macht es sinn, auf der 24V Seite noch einen 100nF Kondensator vor dem
> Arbeitswiderstand einzufügen?

Der würde die Signalquelle zusätzlich belasten.

Wenn du kurze Peaks wegfiltern möchtest, dann mache das besser am 
Ausgang des Optokopplers (100nF parallel zu dessen Ausgang).

von Harald W. (wilhelms)


Lesenswert?

svensson schrieb:

> Relais, auch Reed-Relais, unterliegen als mechanische Bauelemente aber
> einem Verschleiß. Wenn der Schaltzustand sich häufig ändert, kann die
> Lebensdauer aber schnell erreicht sein.

Optokoppler unterliegen auch einem Verschleiss. Welches
Bauelement da schneller verschleisst, ist schwer zu sagen.
Ein normaler Spannungsteiler unterliegt dagegen praktisch
keinem Verschleiss. Wenns wirklich grobe Störungen gibt,
könnte man zusätzlich einen TVS verbauen. Zur Störunter-
drückung sollte der Spannungsteiler nicht zu hochohmig
sein. Ich halte Werte im Kiloohmbereich für sinnvoll.

von Jörg R. (solar77)


Lesenswert?


von Thomas (Gast)


Lesenswert?

Stefanus F. schrieb:
> Der würde die Signalquelle zusätzlich belasten.
>
> Wenn du kurze Peaks wegfiltern möchtest, dann mache das besser am
> Ausgang des Optokopplers (100nF parallel zu dessen Ausgang).

Mit Ausgang meinst du die 5V Seite? Oder die Kathode?

Noch zur info:
Zu 99,9% liegt auf der 24V Leitung GND an, 3-4 am Tag liegt für etwa 1 
Sekunde HIGH an.
Wenn das Signal ein paar Millisekunden durch den Optokoppler verzögert 
wird, ist egal.

Entkoppeln tut der Arduino. Alles, was kürzer als 200ms HIGH ist, wird 
vom Arduino ignoriert und verworfen.

Was für eine Wirkung hätte da der 100nF Kondensator? Hat der überhaupt 
Sinn, was genau würde der Filtern?

Eine Frage noch zu den Kondensatoren, als Beispiel PC815:
https://www.bucek.name/pdf/pc815,825,835,845.pdf

Wo finde ich im Datenblatt, wie viel Spannung bei der Anode / Kathode 
angelegt werden darf? Darf dieser mit 40V betrieben werden?

Ich finde nur bei Output Collector - Emitter 35V, aber das betrifft ja 
die Seite, wo der Arduino angeschlossen ist.

von Stefan F. (Gast)


Lesenswert?

Thomas schrieb:
> Oder die Kathode?

Das Wort assoziiere mit mit Elektronenröhren.

Der Ausgang eines Optokoppler ist die rechte Seite: Kollektor und 
Emitter.

von Wolfgang (Gast)


Lesenswert?

Stefanus F. schrieb:
> Der Ausgang eines Optokoppler ist die rechte Seite: Kollektor und
> Emitter.

Am Ausgang gibt es aber keine Kathode.
Die liegt auf der Eingangsseite.

Thomas schrieb:
> Wo finde ich im Datenblatt, wie viel Spannung bei der Anode / Kathode
> angelegt werden darf?

Wie meinst du das? Der Eingang des Optokoppler ist vom Rest der 
Schaltung isoliert, so dass es auf die absolute Spannung nicht an kommt 
(solange sich das im Rahmen der Isolationsspannung von den 5000V 
bewegt). Da bekommst du eher Probleme auf deiner Platine als mit dem 
Optokoppler selbst.

von Thomas (Gast)


Lesenswert?

Hallo,

nur um sicher zu gehen:

Den 100nF Kondensator kann ich mir ersparen, da dieser maximal kurze 
Störsignale von <1ms auffängt oder?
Die Software am Arduino ignoriert alle LOWs (24v liegt an), welcher 
kürzer als 200ms anliegen.

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Thomas schrieb:
> Den 100nF Kondensator kann ich mir ersparen, da dieser maximal kurze
> Störsignale von <1ms auffängt oder?

Hi,
die Eingänge und Ausgänge werden vor unerwünschter HF-Einstreuung gerne 
so mit RC-Gliedern geschützt, ohne dass das sogar bei 9k6 8N1 überhaupt 
irgendeinen negativen Einfluss auf die eigentliche Funktion hätte.
Aber, stelle ich ein UKW/FM Radio daneben, sind ohne RC-Glied kurze 
Chirps hörbar.

Bei einem meiner Thermostate konnte ich mit Betätigung der Sendetaste 
der CB-Handfunke gerade im kippeligen Umschaltmoment den Schaltvorgang 
auslösen.
Ein 22nF Kondensator direkt am OPV-Eingang brachte Abhilfe.

Diese Konds. dienen also einmal passiver oder sogar aktiver 
"Entstörung".
Also, ich würde sie einbauen.

ciao
gustav

: Bearbeitet durch User
von M.A. S. (mse2)


Lesenswert?

Karl B. schrieb:
> die Eingänge und Ausgänge werden vor unerwünschter HF-Einstreuung gerne
> so mit RC-Gliedern geschützt, ohne dass das sogar bei 9k6 8N1 überhaupt
> irgendeinen negativen Einfluss auf die eigentliche Funktion hätte.
> Aber, stelle ich ein UKW/FM Radio daneben, sind ohne RC-Glied kurze
> Chirps hörbar.

Sowohl die Anordnung der Bauteile als auch die Situationsbeschreibung 
sprechen eher für Filter gegen ausgehendes Übel als gegen einstreuendes.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.