Atmega328p Optokoppler

Hallo zusammen,

Ich würde gerne mit meinem Atmega 328P (selbe wie in Arduino) 24VDC Schalten.
Für die Schaltung habe ich mir Optokoppler ausgesucht.

Nun meine Frage wie schließe ich einen Optokoppler richtig an. Muss ich bei der geschalteten Seite etwas beachten(Widerstand oder ähnliches?)

Um ein kleines Schema währe ich dankbar :slight_smile:

Gruss Schnibli

Google hat dir dazu nichts ausgespuckt?

Um zu wissen, wie deine Schaltung aussieht, muss man erst einmal ein paar Infos dazu schreiben! Soll 24V oder GND geschaltet werden. Für GND hätte es auch ein Logik-N-Mosfet gereicht. Welcher Typ von Optokoppler hast du bestellt?

Die Eingangsseite ist eine LED. Die Daten (IF und UF) um den Vorwiderstand zu berechnen bekommst du aus dem Datenblatt.

Hallo zusammen,

Ich bedanke mich erstmals für euere Bemühung.

Geschaltet soll ein SPS-Eingang, dieser ist Positiv (24VDC).
Ich bin zurzeit am Schema (Verdrahtung dran, bestellt aber noch nicht erhalten habe ich diesen: http://www.conrad.ch/ce/de/product/187020/Optokoppler-mit-Transistor-Ausgang-Lite-On-LTV847-PC847-DIL-16-Ausfuehrung-4-Kanal

Um den Status des "Ausganges" anzuzeigen, verwende ich zudem eine LED mit Integriertem Vorwiderstand.
Diese soll Parallel zum Optokoppler geschaltet sein.

Also die 24V nur auf Masse ziehen?

Dann schaust du ins Datenblatt:
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/187020-da-01-en-PC_847_4_X_PC_817.pdf

Da siehst du UF = 1,2V (steigt mit zunehmendem Vorwärtsstrom leicht an). Für IF sollten hier 5 oder 10mA reichen. So kommt man auf 380 - 760 Ohm.

Ausgangsseitig machst du 10k vom Kollektor gegen 24V. Wie hier:
http://www.siongboon.com/projects/2006-06-19_switch/opto-coupler.gif
Dann hält der Pullup den SPS-Eingang auf 24V wenn der Transistor sperrt. Wenn die LED geschaltet wird, wird der Transistor niederohmig und es liegen nahe 0V an.

Nun Falls das SPS Signal 0V währe, wie würde es dann aussehen?

Mir gefällt "Nahezu" 0V nicht daher.
Als ich meine wenn ich von den 24VDC den Nullleiter schalten würde

Warum reicht dir das "nahezu" nicht? Schlag in den Datenblättern deiner SPS nach, ab wann ein Signal 0 und wann 1 ist.

Nahezu 0V = max. 0,2V. Es fällt eben die Kollektor-Emitter-Sättigungsspannung ab. Geht nicht anders. Das wird schon als Low-Pegel erkannt. Dein Arduino erkennt auch noch einige Zeit lang LOW.

Mir gefällt "Nahezu" 0V nicht daher.

So wie sich die Natur manchmal etwas schwer tut, z.B. bei 100%igen Geraden, Kreisen und rechten Winkeln, so tut sich die Elektronik mit exakten Null-Spannungen etwas schwer.
Darum haben auch alle µC und SPS Eingänge Schaltschwellen und meist auch Hysteresen.

Danke :slight_smile:
Hier: http://www.siongboon.com/projects/2006-06-19_switch/opto-coupler.gif
Ist es so dass wenn der Atmega Schaltet, die 24V unterprochen werden, kann dies auch anders gelöst werden sodass 24 Anstehen wenn der atmega geschaltet hat? :s

Schließe die LED so an dass an der Anode (oben) 5V anliegen und du die Kathode (unten) schaltest. Dann ist die LED bei 5V an der Kathode aus, der Transistor sperrt und es sind 24V am Kollektor.

Du kannst aber auch einfach die Logik in der Software herumdrehen! Das ist völlig normal. Sehr viel Elektronik ist Low-aktiv oder invertiert.

So ginge es auch (Quelle siehe #9):

opto-coupler.gif

Nun habe ich ein grosses Probelm, ich bring das Ganze gewirr nicht auf meine Platine die maximal 100x100 sein darf, es dürfen keine SMD Bauteile verwendet werden und Bauteile nur auf einer Seite bestückt sein.
Gibt es noch eine Kompaktere lösung? Ich könnte bei der SPS auch NPN Eingänge nehmen sodass ich "Minus" Schalte..

sorry

Wieso hast du dann so einen riesigen 4-fach Optokoppler genommen? Brauchst du 4 Stück? Wenn ja, dann ok. Aber auf deiner Platine sind 4 * 3 = 12 drauf.

Einzeln gibt es auch welche mit 4 Pins.

Ich brauche 11 Signale mit 3 Stück bin ich bei 12 Signalen das ist das Problem :s
Ich bräuchte eine Kompaktere Lösung die ev. auch ohne Widerstände geht oder zumindest weniger :slight_smile:

Könnt ihr mir was vorschlagen :s?
Für die Stromversorgung müsste ich noch einen Kondensor verwenden oder? Würde datzu einen 100nF reichen?

Brauchst du unbedingt die Potentialtrennung?

So ginge es auch (Quelle siehe #9):

Aber besser ohne die LED auf der 24V Seite., sonst kommst du nur schlecht in die Nähe der 24V bei HIGH.

michael_x:
Aber besser ohne die LED auf der 24V Seite., sonst kommst du nur schlecht in die Nähe der 24V bei HIGH.

Stimmt :-* Jetzt ohne LED, Danke!

Willst du die Platine selber ätzen, oder z.B. in China bei einem Auftragsfertiger machen lassen? Doppelseitig, oder einseitig? Wenn doppelseitig und Auftagsfertiger, dann ist's doch relativ easy. Die Vorwiderstände der LEDs der Optokoppler verwendest du zum "Entflechten" der Leitungen, wobei du die I/Os des µC sowieso weitestgehend frei zuweisen kannst. Warum willst du keine SMD Bauelemente verwenden? Man muß ja keine 402 oder 603 Widerstände verbauen. 1206 ist doch noch halbwegs handlich. Und mit Lötstopplack und verzinnten Pads ist das ein guter Einstieg.
Ich habe mir mal das Datenblatt vom PC847 angeguckt. Der hat 80V Uce. Somit kannst du locker die 24V schalten. Es gibt halt auch Modelle, die nur 20V können. Somit im grünen Bereich. Koppelfaktor ist mit 50% angegeben. Das bedeutet, bei überschlägig knapp 10 mA Eingangsstrom kannst du maximal 5 mA Kollektorstrom erwarten. Mit gut 2 mA bist du also ebenfalls im grünen Bereich, weil du somit fast mit dem Doppelten übersteuerst.

Galvanische Trennung wäre natürlich schön, aber wenn es nicht anders geht wären vielleicht zwei ULN2803 eine Option. Die Pullups sind dann immer noch nötig, aber man braucht keine Vorwiderstände mehr. Und als Pullups könnte man einfach eine Widerstandsdekade/Widerstandsarray nehmen (z.B. SIL 9-8 10K wenn ich das richtig sehe).
Allerdings hängen dann Arduino und SPS im gleichen Stromkreis!

Außerdem sollte man dann unbedingt nachschauen wo genau die Logik-Pegel der SPS liegen. Durch die Darlington-Schaltung hätte man dann eine Kollektor-Emitter-Sättigungsspannung von ca. 0,9-1V! Das wird auch auf dem Arduino noch als Low erkannt. Daher könnte ich mir denken dass es bei 24V auch geht. Aber auf der Ebene weiß ich über SPS gar nichts.

Optokoppler wäre definitiv besser.