Forum: Mikrocontroller und Digitale Elektronik 24V Steuerspannung am AVR


von Mark T. (bitts)


Lesenswert?

Hallo,

ich möchte mit 24V DC digitale Eingangspins eines Arduinos schalten.
Statt Spannungsteiler denke ich über die Verwendung eines Optokopplers 
(PC817) nach.

Welche Widerstände brauche ich am Eingang des Optokopplers?

Ich habe überschlägig ein CTR von 100% angenommen. Durch den 20k Pullup 
im AVR sind bei 5V Ub rund 250uA notwendig, um den Eingang komplett auf 
Low zu ziehen.

Ist es richtig, dass ich bei CTR 100% dann auch etwa 250uA am Eingang 
des Optokopplers benötige?
Könnte ich also einen Spannungsteiler mit 4k7 / 1k vor den PC817 
schalten?

In Beispielen, die ich über Google gefunden habe, werden die Widerstände 
meist so dimensioniert, dass der Optokoppler mit I(F)=20mA befeuert 
wird, was zur Folge hat, dass der IO-Pin des AVR schon bei sehr viel 
kleineren Spannungen geschaltet werden müsste.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mark Thalle schrieb:
> Statt Spannungsteiler denke ich über die Verwendung eines Optokopplers
> (PC817) nach.
Warum?
OK braucht man nur, wenn nan keinen gemeinsamen Massebezug haben kann. 
Oder wenn man Angst hat...  ;-)

> Ich habe überschlägig ein CTR von 100% angenommen.
Du musst den ungünstigsten Wert aus dem Datenblatt nehmen. Beim PC817A 
also 80%.

> Könnte ich also einen Spannungsteiler mit 4k7 / 1k vor den PC817
> schalten?
Vor eine (jede) Leuchtdiode schaltet man nur einen Vorwiderstand, der 
sich aus der "Restspanung" über diesem Widerstand und dem Strom 
berechnet. Bei deinen angenommenen Werten und einer Uf von max. 1,4V 
sind das (24V-1,4V)/250uA --> 91kOhm. Dieser Wert ist absurd hoch, 
desahlb würde ich auch niemals nur 250uA durch einen OK schicken, 
sondern mindestens 2...5mA. Damit wäre der Widerstand 
4,5kOhm...11,3kOhm. Damit liegst du mit deinen angenommenen 4,7kOhm gar 
nicht mal so schlecht... ;-)

: Bearbeitet durch Moderator
von Kaj (Gast)


Lesenswert?

Mark Thalle schrieb:
> ich möchte mit 24V DC digitale Eingangspins eines Arduinos schalten.
Transistor und gut ist die laube

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Kaj schrieb:
> Mark Thalle schrieb:
>> ich möchte mit 24V DC digitale Eingangspins eines Arduinos schalten.
> Transistor und gut ist die laube
Oder einen Komparator, oder ein Relais, oder gleich einen 
Mikrocontroller...

Im Ernst: um mit 24V auf einen 5V (oder 3,3V) Eingang zu gehen, hat 
bisher noch immer ein Spannungsteiler ausgereicht. Ein kleiner 100nF 
Kondensator über dem "unteren" Widerstand hat dabei meist nicht 
geschadet.

von Cyblord -. (cyblord)


Lesenswert?

Kaj schrieb:
> Mark Thalle schrieb:
>> ich möchte mit 24V DC digitale Eingangspins eines Arduinos schalten.
> Transistor und gut ist die laube

Es gibt 1000 Möglichkeiten. Im Prinzip reicht sogar ein einziger 
Vorwiderstand.
Warum muss man aus jedem trivialen Furz immer einen riesen Aufstand 
machen? Mich beschleicht das Gefühl, Arduino-Nutzer sind die meiste Zeit 
am diskutieren über tausend und ein Problemchen. Jeder andere hätte 
schon seit Stunden einen Spannungsteiler oder Transistor oder OK oder 
sonst was verwendet und würde keinen Gedanken mehr daran verschwenden. 
Aber bei den Arduinos muss es immer gleich ein Thread sein, in dem Dinge 
gefragt werden, die sogar bereits gegooglet worden sind. Aber hauptsache 
nochmal und nochmal drüber schwafeln.

: Bearbeitet durch User
von Mark T. (bitts)


Lesenswert?

Es geht darum den AVR gegen induzierte Überspannungen zu schützen, da 
die Eingänge über längere Leitungen geschaltet werden sollen. Eine SPS 
hat am Eingang auch Optokoppler.

Den Spannungsteiler vorm Optokoppler würde ich nehmen, damit die 
Eingänge nicht zu empfindlich reagieren und nicht durch kleine Störungen 
geschaltet werden.
Wenn ich den Strom durch den Optokoppler durch einen kleinen 
Vorwiderstand vergrößere, dann schaltet er auch schon bei viel kleineren 
Spannungen durch.

von Mark T. (bitts)


Lesenswert?

cyblord ---- schrieb:
> Aber bei den Arduinos muss es immer gleich ein Thread sein, in dem Dinge
> gefragt werden, die sogar bereits gegooglet worden sind. Aber hauptsache
> nochmal und nochmal drüber schwafeln.


Arduinos sind unter anderem dafür gemacht, dass Leute, die wenig Ahnung 
von uCs und/oder Elektronik haben, sich damit beschäftigen. Das ist 
vielleicht der Grund, warum viele Dinge gefragt werden, die für die 
erfahreneren Bastler und Profis selbstverständlich sind.


Für mich ist z.B. noch die Frage offen, warum man 2 oder 20 mA durch den 
Optokoppler schicken soll, wenn 0,2 auch zum Schalten reichen.

von Cyblord -. (cyblord)


Lesenswert?

Mark Thalle schrieb:

> Den Spannungsteiler vorm Optokoppler würde ich nehmen, damit die
> Eingänge nicht zu empfindlich reagieren und nicht durch kleine Störungen
> geschaltet werden.
Dafür halte ich einen Spannungsteiler eher für ungeeignet.

> Wenn ich den Strom durch den Optokoppler durch einen kleinen
> Vorwiderstand vergrößere, dann schaltet er auch schon bei viel kleineren
> Spannungen durch.
Da Optokoppler eine LED im inneren haben, schaltet der mit Strom und 
nicht mit Spannung.
Der Vorwiderstand muss also zu ausgelegt sein, damit bei 24V genug Strom 
durch den OK fließt. Damit kann man natürlich irgendwie sicherstellen 
dass unter einer Schwelle von X Volt, der Strom nicht groß genug ist.

Aber das ist allgemein kein guter Weg um eine Minimalspannung zu 
definieren, bei der geschaltet werden soll. Das ist alles unsicher und 
pfuschig. Dafür nimmt man einen Komparator o.ä.

Willst du einen "normgerechten" 24V Eingang, aus dem SPS Bereich. Dann 
nimm einen fertigen Baustein. VNS... oder so was. Da ist hast du dann 
auch deine Minimalspannung.

> Für mich ist z.B. noch die Frage offen, warum man 2 oder 20 mA durch den
> Optokoppler schicken soll, wenn 0,2 auch zum Schalten reichen.
Weil "schalten" alleine nichts sagt. Du weißt es doch schon längst, du 
schreibst es oben doch. Es geht darum, wieviel Strom auf der 
Ausgangsseite fließen kann. Und das hängt vom Strom auf der 
Eingangsseite ab. Nun muss bei dir auf der Ausgangsseite aber nur sehr 
wenig Strom fließen (sagst du ja auch selbst), darum reicht dir ein 
minimaler Eingangstrom. 20mA sind nicht notwendig.

gruß cyblord

: Bearbeitet durch User
von Mark T. (bitts)


Lesenswert?

Bei einem Komperator muss man doch auch den Eingangswiderstand 
einstellen, damit er nicht schon durch kleine induzierte Störungen 
schaltet. Wo ist da der Vorteil?

von Mark T. (bitts)


Lesenswert?

cyblord ---- schrieb:
>> Für mich ist z.B. noch die Frage offen, warum man 2 oder 20 mA durch den
>> Optokoppler schicken soll, wenn 0,2 auch zum Schalten reichen.
> Weil "schalten" alleine nichts sagt. Du weißt es doch schon längst, du
> schreibst es oben doch. Es geht darum, wieviel Strom auf der
> Ausgangsseite fließen kann. Und das hängt vom Strom auf der
> Eingangsseite ab. Nun muss bei dir auf der Ausgangsseite aber nur sehr
> wenig Strom fließen (sagst du ja auch selbst), darum reicht dir ein
> minimaler Eingangstrom. 20mA sind nicht notwendig.


Das sehen andere aber anders. Da ich nur Gelegenheitsbastler bin, ist 
die Wahrscheinlichkeit relativ groß, dass ich etwas übersehe/noch nicht 
kenne.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mark Thalle schrieb:
> Es geht darum den AVR gegen induzierte Überspannungen zu schützen, da
> die Eingänge über längere Leitungen geschaltet werden sollen. Eine SPS
> hat am Eingang auch Optokoppler.
Interessant ist hier der Massebezug!
Eingänge von SPSen haben deshalb Optokoppler, weil sie (einzeln oder 
gruppiert) eine eigene Masse haben. Was hilft dir ein entkoppelter 
Eingang, wenn der angeschlossene entfernte Sensor trotzdem auf deine 
Arduino-Masse Müll einkoppelt?

von Karl H. (kbuchegg)


Lesenswert?

Mark Thalle schrieb:

> Ist es richtig, dass ich bei CTR 100% dann auch etwa 250uA am Eingang
> des Optokopplers benötige?

Du kannst ja mal eine normale LED nehmen und die mit 250µA befeuern. Das 
siehst du dir mal in einem dunklen Raum an. Und wenn du dann immer noch 
denkst, dass die LED in einem Optokoppler beim Phototransistor irgendwas 
nennenswertes beweirkt, dann bau es einfach mal auf.

> In Beispielen, die ich über Google gefunden habe, werden die Widerstände
> meist so dimensioniert, dass der Optokoppler mit I(F)=20mA befeuert
> wird,

20mA sind ein bischen viel. Eine LED kann man auch mit weniger 
betreiben. Aber wenn der Hersteller seine Tabellen und Diagramme im 
Datenblatt auf 20mA Input-seitig abgestimmt hat, dann wirst du wohl bei 
der im OK eingebauten LED mit 250µA nicht viel reissen.

> was zur Folge hat, dass der IO-Pin des AVR schon bei sehr viel
> kleineren Spannungen geschaltet werden müsste.

Der ganze Ansatz ist unsinnig.
Induzierte Spannung haben meistens ein Characteristicum: dabei wird 
nicht viel Strom induziert. Sobald diese induzierte Spannung ein bischen 
belastet wird, bricht sie ein. Spannung alleine ist nicht alles. Auch 
der Stromfluss spielt da mit.

: Bearbeitet durch User
von Mark T. (bitts)


Lesenswert?

Karl Heinz schrieb:
> Mark Thalle schrieb:
>
>> Ist es richtig, dass ich bei CTR 100% dann auch etwa 250uA am Eingang
>> des Optokopplers benötige?
>
> Du kannst ja mal eine normale LED nehmen und die mit 250µA befeuern. Das
> siehst du dir mal in einem dunklen Raum an. Und wenn du dann immer noch
> denkst, dass die LED in einem Optokoppler beim Phototransistor irgendwas
> nennenswertes beweirkt, dann bau es einfach mal auf.

Ich habe es mal in LTSpice aufgebaut. Dort funktioniert es mit einem 
Vorwiderstand von 100kOhm.
Ich weiß natürlich nicht, wie gut die Simulation ist, aber für mich 
klingen die Ergebnisse plausibel.
Die Spann am OK-Eingang ist relativ konstant. Die Menge der Photonen, 
die die Diode emittiert, ist proportional zum Strom. Die Leitfähigkeit 
des Fototransistors ist proportional zur Menge der Photonen.
Das menschliche Auge würde ab eine gewissen Schwelle kein Licht mehr 
wahrnehmen, aber ein Phototransistor hat quasi keine 
Wahrnehmungsschwelle.

Das menschliche Auge würde in dem Fall vermutlich eh nichts wahrnehmen, 
weil ich bei 1,2V Vorwärtsspannung davon ausgehe, dass IR-Dioden 
verwendet werden.

>
>> In Beispielen, die ich über Google gefunden habe, werden die Widerstände
>> meist so dimensioniert, dass der Optokoppler mit I(F)=20mA befeuert
>> wird,
>
> 20mA sind ein bischen viel. Eine LED kann man auch mit weniger
> betreiben. Aber wenn der Hersteller seine Tabellen und Diagramme im
> Datenblatt auf 20mA Input-seitig abgestimmt hat, dann wirst du wohl bei
> der im OK eingebauten LED mit 250µA nicht viel reissen.

Das werde ich mal machen und berichten.

>> was zur Folge hat, dass der IO-Pin des AVR schon bei sehr viel
>> kleineren Spannungen geschaltet werden müsste.
>
> Der ganze Ansatz ist unsinnig.
> Induzierte Spannung haben meistens ein Characteristicum: dabei wird
> nicht viel Strom induziert. Sobald diese induzierte Spannung ein bischen
> belastet wird, bricht sie ein. Spannung alleine ist nicht alles. Auch
> der Stromfluss spielt da mit.

Drum wollte ich ja auch einen niederohmigen Spannungsteiler vor den OK 
setzen und nicht nur einfach einen Vorwiderstand.
Welche Leistung die typischen induzierten Spannungen liefern, weiß ich 
leider nicht.

Was passiert, wenn bei einem Gewitter deutliche Überspannungen 
entstehen? Dann sollte der OK doch Vorteile gegenüber einem einfachen 
Spannungsteiler vor dem AVR haben.

von Mark T. (bitts)


Lesenswert?

Karl Heinz schrieb:
>> In Beispielen, die ich über Google gefunden habe, werden die Widerstände
>> meist so dimensioniert, dass der Optokoppler mit I(F)=20mA befeuert
>> wird,
>
> 20mA sind ein bischen viel. Eine LED kann man auch mit weniger
> betreiben. Aber wenn der Hersteller seine Tabellen und Diagramme im
> Datenblatt auf 20mA Input-seitig abgestimmt hat, dann wirst du wohl bei
> der im OK eingebauten LED mit 250µA nicht viel reissen.


Ich habe mal einen PC817A aufgesteckt. Bei Ie=0,6mA fließen Ia=0,2mA bei 
5,9V Ub und 20k Last.
Den Eingangsstrom muss man kleiner halten, wenn der Eingang des AVR 
nicht schalten soll.

http://up.picr.de/18541001uq.png

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.