Check: Schaltplan für galvanische Trennung mit Optokoppler (Konvertierung PWM zu 10V)

  • Hallo,


    ich möchte mein PWM Signal (5v Arduino) konvertieren in ein 10V analog SIgnal.
    Diese Schaltung (http://www.cctools.eu/ext_index.php/artikel/1420) möchte ich nun galvanisch von meinem Arduino trennen.


    Dazu nutze ich einen Optokoppler der seitens Arduino ein PWM SIgnal erhält.
    Auf der AUsgangsseite liegen 12V die dann in 10V gewandelt werden.


    Es wäre schön, wenn ihr euch mal kurz meine Zeichnung anschauen könntet.


    Bild 1: mittels eines 7805 hole ich mir zunächst ein 5V SIgnal an die AUsgangsseite (da die Schaltung siehe oben mit 5v PWM arbeitet. Oder würden auch 12V gehen?) Heißt: Im Optokopplerübersetze ich das 5V PWM SIgnal vom Arduino in ein 5V PWM SIganl für die Schaltung. P1_In ist das Steuersignal (5v PWM) für die Konverterschaltung.
    Bild 2: Konverterschaltung (diese kann auch ein 0-5v Signal liefern, mittels Kumper kann ich das beliebig auswählen).


    Ziel: Die 12V bzw 24V Signale (für die Stromversorgung einer Pumpe oder Beleuchtung sowie die 12V Versorgung für die Konbvertierungsschaltung) galvanisch von dem Arduino trennen.


    Passt das so?


    Vielen Dank und Grüße
    THorsten

  • HI,
    das mit den Knotenpunkte ist mir bewusst - irgendwie werden die bei mir nur selten gesetzt. Wieso? K.A. :(
    Aber ich prüfe immer, dass es passt.


    Mit Simulieren meinst du aufm Breadboard nachbauen?
    Hmmm...ich habe aktuell eine Schaltung fertig auf Lochraster, da könnte ich mal testen.
    Gibts auch nen anderen Weg?


    Gruß

  • Ansonsten musst du sehen, dass du deinen aktiven Tiefpass nicht verstimmt, mit dem 10 kOhm Pulldown am Optokoppler... musste mal simulieren ob das dann noch passt...


    Hi,
    habe den Entwickler der Schaltung mal angeschrieben. Es gibt drei MÖglichkeiten:
    1) Mit der Lösung über einen Pull-Widerstand kann der Ausgangswert in der Tat verzehrt werden. Mit einem Widerstandswert von 1k oder weniger sollte dies vernachlässigbar sein.
    2) Die sauberste Lösung wäre das Nachschalten eines Puffers (z.B. CMOS 4050) oder
    3) die Benutzung eines Optokopplers mit Logikausgang.


    Für mich wäre es natürlich am einfachsten, einfach nur einen 1K Widerstand einzubauen. Denkt ihr, der reicht aus? Kann ich das einfach mal testen und wenns klappt einfach einplanen?
    Letztendlich habe ich die 10K nur eingebaut, da hier auch 10Kohm verwendet werden: http://www.mikrocontroller.net/articles/Optokoppler


    Ansonsten: Kann mir jemand mal die 2. und 3. Variante erklären? Dazu habe ich nicht viel über google gefunden, zumindest nichts was mir das mal erklärt.
    Was ist bei einem Optokoppler mit Logiausgang anders als ohne?


    Hoffe ihr könnt mir weiterhelfen


    BG
    Thorsten

  • Du sprichst hier vermutlich von dem Widerstand (1kOhm versus 10kOhm) richtig?
    Heißt, ich kann die Schaltung problemlos mit einem 1kOhm umsetzen?


    Was den Querstrom angeht:
    5mA sind doch nicht viel? Bei 12V macht das 2W am Tag.
    Macht im Jahr nicht mal eine kwh.



    VG
    Thorsten


    [ModEdit: völlig nutzlosen Fullquote entfernt ...]

  • Hallo,
    die galvanische Trennung ist nicht schlecht, vor alle wenn man vor Überspannungen an längeren Leitungen z.B. bei Gewitter schützen will.
    Dann solltest du aber auch entsprechende Schutzbeschaltungen verwenden (z.B. Transorbdioden im Bereich der galv. Trennung und Gasableiter gegen der gal. getrennten Schaltung gegen Erde = PE)



    Zur Frage Spannungsversorgung:
    Hinter dem Optokoppler könntest du auch mit 12V schalten. Das Modul will doch eh 0...10V oder ?
    Die 12V dann natürlich auch galv zu trennen, nicht wahr?


    Zur Optokopplerschaltung:
    Der CNY17 ist natürlich keine Ausgeburt an Geschwindigkeit, aber für paar kHz reicht es.
    Der 10K-Widerstand wird sicher nicht so schnell die Kapazitäten umladen. Die Signalform nach Low-Pegel wird etwas abgerundet.
    Kannst es auch etwas niederohmiger machen, aber beachte das CTR (current tranfer ratio) des Optokopplers.
    Wenn du aber den Triggerpegel der nachfolgenden Schaltung an den Highpegel ran schiebst , dann spielt das keine große Rolle mehr.
    Beim Treiber vom uC würde ich einen Treibertransistor zwischen schalten.


    Ich weiß jetzt nicht, wie das bei den ATmega so ist, aber viele uC können wesentlich mehr Strom gegen Masse schalten als gegen +Ub.
    Entsprechend ist der Betrieb mit aktiven Lowpegel und Pullup-R statt Pull-Down oft zweckmäßiger.
    Gruß Uwi

  • Hallo,
    Zur Frage Spannungsversorgung:
    Hinter dem Optokoppler könntest du auch mit 12V schalten. Das Modul will doch eh 0...10V oder ?
    Die 12V dann natürlich auch galv zu trennen, nicht wahr?


    Aber widerspricht das nicht dem CTR? http://de.wikipedia.org/wiki/G…ertragungsverh%C3%A4ltnis


    Zitat


    Wenn du aber den Triggerpegel der nachfolgenden Schaltung an den Highpegel ran schiebst , dann spielt das keine große Rolle mehr.
    Beim Treiber vom uC würde ich einen Treibertransistor zwischen schalten.


    ALso nicht direkt mit dem Ausgang des uC den Optoschalten sondern mit einem Transistor?
    Das mit dem Triggerpegel habe ich leider nicht verstanden.


    Vielen Dank und Gruß
    Thorsten

  • Hallo,
    das CTR ist nur ein Verhältnis von Strömen. Spannungen haben also nur indirekten Einfluß.
    Dass bei doppelter Spannung am Ausgang dann natürlich bei Bedarf der Strom am Eingang verdoppelt oder der Strom über R10 halbiert werden werden muß, ist klar.


    Das mit dem Schalten über uC oder über Transistor ist eine Frage, die man auch im Zusammenhang sehen muß.
    Separater Transistor entkoppelt den uC von der weiteren Schaltung. Das hat evtl. Vorteile, vor allem dann, wenn da auch mit Störungen zu rechnen ist.
    Ist manchmal sehr zweckmäßig, weil ein Transistor leicher gewechselt ist als ein uC.
    Und natürlich muß man es so machen, wen der uC sonst mit der Strombelastbarkeit an Grenzen kommt. Viele uC können nur wenige mA treiben.
    Ich weiß aber nicht, was dein AtMega kann.


    Die Sache mit dem Triggerpegel ist auch nicht ganz einfach. Ich weiß so aus dem Kalten jetzt auch nicht, wie sich die Schaltung mit IC6A dynamisch verhält.
    Da werden ja die Schaltflanken des Optokopplers ausgewertet. Der Triggerpegel wird aber am Pluseingang über den Tiefpass R11+R12 und C20 festgelegt.
    Wenn das Signal ständig wechselt, sollte sich am Plus-Eingang ein mittlerer Pegel einstellen. Über R11 und C16 werden dann die Flanken der Impulse auf den Minus-Eingang gegeben.
    Mit Änderungen der Widertstandsverältnisse R11/R12 oder Änderungen von C16 kann man womöglich den Triggerpegel bisschen verschieben. Ist aber womöglich auch gar nicht nötig.
    Dass in der Schaltung Punkte fehlen, wurde ja schon diskutiert. Ich nehme aber an, dass zwischen C16 und dem Ausgang IC6A keine Verbindung sein darf. Sonst würde die Schaltung IMHO keinen Sinn machen.
    Was brauchst du überhaupt hinten dran?
    Einmal hast du 5V als PWM-Signal aber hinter IC6B dann nur einen Tiefpass-geglätteten statischen Pegel 0-10V.
    Gruß Helles Licht


    [ModEdit: völlig nutzlosen Fullquote entfernt ...]

  • Hi Helles Licht,


    ich habe jetzt einfach mal einen Transistor vorgeschaltet, so dass ich genügend Strom sicherstellen kann zum schalten.


    Zur Schaltung:
    Zwischen C16 und IC6A kommt ein Punkt. Siehe hier: http://www.cctools.eu/ext_index.php/artikel/1420 (unten unter ANleitung kommt der Schlatplan).


    Ich schalte damit zwei Aquarienströmungpumpen. Eine braucht 5V Spannung, die andere 8V.
    Beides kann die Schaltung liefern (daher die Jumper)
    DIe 8V krieg ich durch 80% PWM SIgnal auf das 10V SIgnal.


    VG

  • Hallo,
    alles klar, dann ist auch der 1. OPV nur ein Spannungsfolger, und R1,R2 mit C1,C2 bilden einen Tiefpass.


    Der hat dann aber Verstärkung 1 und wenn die Eingangsimpulse höher sind als 5V, dann kommt bei 100% PWM auch eine höhere Ausgangsspannung raus.


    Dem kannst du aber leicht entgegenwirken, indem Du den höheren PWM-Pegel hinter dem Optokoppler über einen Spannungsteiler auf 5V reduzierst (also R10 aufteilen oder R10 gleich als Einstellregler auslegen).
    Du kannst aber auch den 10V Pegel hinter IC6A entnehmen und an den nächsten OPV die geteilte Spannung weiter reichen. Der muss dann natürlich auch nur mit Verstärkung 1 laufen, was du auch leicht erreichen kannst, indem man R16 wegnimmt.
    Gibt hat immer 100 Möglichkeiten.


    Wenn du aber 8V brauchst, dann kannst diese auch ebenso gleich passend einstellen (je nachdem welche Variante man verfolgt dann ebnen hinter dem ersten oder zweiten OPV).
    Gruß Helles Licht

  • Hi nochmal,


    vielen Dank erst mal.
    Ich habe leider nicht ganz so viel Plan wie Du ;) Trotzdem Danke.
    Vielleicht kannst Du das etwas konkreter erklären an meinem hier noch mal aktuellen angehängten Schaltplan:
    Bild1: Meine uC Schaltung (mit Arduino IDE) mit Transistoren für die 5V Versorgung des Optokopplers
    Bild2: Die Optokoppler (mit eigener 5V Stromversorgung am Ausgang. Dafür nehme ich das sowieso anliegende 12V SIgnal und wandle die SPannung mit einem 7805)
    Bild3: Die eigentliche Schaltung. AUs einem 5V PWM SIgnal konvertiere ich hier entweder ein 5V Analog oder ein 10V Analog SIgnal. Wenn ich aus dem 10V Signal auch direkt ein 8V SIgnal ohne große Änderung machen kann, wäre das natürlich super.


    Vielen Dank noch mal fürs drüberschauen. DIesmal habe ich auch die entsprechenden Knotenpunkte im Schaltplan eingezeichnet ;)


    Thorsten

  • Hallo,
    zu:
    "Dafür nehme
    ich das sowieso anliegende 12V Signal und wandle die Spannung mit einem
    7805)
    "
    Wenn du dir das sparen willst, dann Betreibe die Optokoppler einfach mit 12V und nimm statt der Widerstände R10, R19,R20,R21 alternativ Einstellregler oder Potis.
    An der Mittelanzapfung kannst du dann die Spannung genau so einstellen, wie du es haben willst (z.B. 5V). Damit kannst du die Ausgänge quasi nach Belieben abgleichen


    zu:
    "Wenn ich aus dem 10V Signal auch direkt ein 8V Signal ohne große Änderung machen kann"
    Mit dem Widerst
    andsverhältnis R25/R26 wird die Verstärkung auf Faktor 2 eingestellt (Gain = R26/ (R25+R26)
    Um aus 8V bei 5V Eingangsspannung zu erreichen, ändere den Widerstand R20 auf ca. 6k oder nimm da auch einen Einstellregler.
    In der Reihe E24 wären 6,2K der nächst gelegene Wert.


    Dann noch ein Tip zum uC.
    Gut ist es, wenn man einen Watchdog benutzt.
    Aber zumindest einen definiertes Power-On-Reset ist zu empfehlen. Am einfachsten so wie hier zu realisieren (1uF ....10uF von Reset gegen Masse und R61 etwas größer z.B. 10k).


    Dass das PWM-Signal durch die Transistoren negiert wird, ist dir aber schon klar, oder? Mußt du in der Software berücksichtigen oder in der Hardware.
    Ich habe mal wegen der Teiberfähigkeiten des Atmega nachgesehen (S336-337).
    Die Ausgänge können doch gut 20mA ab und haben dann bei Ucc=5V ca. 0,5V reduzierte Ausgangsspannung. Das würde auch ohne Treibertransistoren gehen).


    Denke an die Block-C (C8) das sollten Keramik-C (MLCC - MultilayerCeramic ) sein.zwischen 10....100nF. Da einer mehr kann nicht schaden und diese niederohmig (dicht) an Ucc gegen Masse.
    Gruß Helles Licht

  • Hi und danke schon mal fürs Feedback.
    Hab aber ncoh ein paar Fragen:


    - Einstellregler = Trimmer richtig? Welchen max Ohm Wert nehm ich denn dann? Der muss ja etwas höher sein, damit ich aus 12v 5v kriege.
    Welchen Vorteil hat das gegenüber dem Spannungswandler?
    - "Um aus 8V bei 5V Eingangsspannung zu erreichen, " => Die Eingangsspannung ist doch 12V. Oder meinst Du die Steuerspannung?
    Letzendlich macht die Schaltung aus 12V ein 0-10V SIgnal, ich brauche allerdings ein 0-8V Signal.
    - Wieso wird das PWM SIgnal negiert? Das ist mir neu, schalt doch schon mehrfach mit einem Transistor ein PWM SIgnal.
    - Einen Watchdog wollte ich in der Tat schon immer mal realisieren, aber habe es nie hinbekommen bzw verstanden. Werd mir mal deinen Link anschauen
    - wofür die mlcc Kondensatoren? Kommen die dort zum Einsatz wo die 12 oder 24v Anliegen oder dort wo ich das Signal gewandelt habe?


    VG
    Thorsten

  • Hallo,
    ein paar Antworten zu deinen Fragen:
    -> "Einstellregler = Trimmer richtig?"
    Ja, Trimmer-(Poti) ist auch eine gängige Bezeichnung. Allerdings gitb es auch andere Trimmer z.B. den "Trimmerkondensator "


    -> "Welchen max Ohm Wert nehm ich denn dann?"
    Das hängt ja immer von der Schaltung ab. In deinem Fall hauptsächlich von dem Optokoppler.
    Du hast Optokoppler mit Transistor gewählt, die haben ein recht hohes CTR.
    Ich habe mal die Datenblätter vom CNY17 und auch vom 4N35 angesehen. Beide haben ein CTR von ca. 0,4...1, je nach konkreten Ausmesstyp.
    Beim CNY17 stehen da zwar größere Zahlenwerte (S.3), aber die sind in diesem Datenblatt als %-Werte zu lesen.
    Das ist auch aus der Grafik S.4 - Figure 5 und 6 zu entnehmen. Ähnlich verhält es sich mit dem 4N35, da findet man dies Aussage nur in den Grafiken (s.4, Figure 6)
    Wenn du also ca. 10mA Diodenstrom treibst, kannst du auch knapp 10mA Laststrom auf der Sekundärseite treiben.
    10mA auf der Primärseite erreichst du aber mit ca. 330 Ohm an 5V. Auf 180 Ohm runter zu gehen ist IMHO nicht notwendig
    Um mit Sicherheiten und Reserve zu rechnen, sollte der Laststrom auf der Sekundärseite ca. 0,2 x 10mA mit überschreiten.
    An 5V sollte der Lastwiderstand dann 2,4 kOhm oder größer sein. An 12V z.B. 6,8 kOhm oder größer.


    -> "Der muss ja etwas höher sein, damit ich aus 12v 5v kriege."
    ??? Du hast den Sinn eines Potis als Spannungsteiler nicht verstanden?
    Wenn du R10, R19, R20, R21 durch Potis oder Trimmer mit z.B. 10 kOhm ersetzt, kann du an der Mittelanzapfung jeden Wert zwischen 0...max Spannung einstellen.


    -> "Welchen Vorteil hat das gegenüber dem Spannungswandler?"
    * Man spart sich den Aufwand für den Regler.
    * Man spart sich den Ruhestrom des Reglers
    * Man kann die PWM-Ausgangsspannung hinter dem Koppler frei einstellen.



    -> "Um aus 8V bei 5V Eingangsspannung zu erreichen, " => Die Eingangsspannung ist doch 12V. Oder meinst Du die Steuerspannung?
    Das bezieht sich doch auf die 2. Verstärkerstufe mit IC5B und diese bekommt doch ihre Eingangsspannung von IC5A, welcher 0...5V ausgeben soll.
    IC5B verstärkt aber die Spannung von IC5A nur mit dem Faktor, der sich aus R25 und R26 ergibt (siehe mein Posting mit Angaben zur Verstärkung).


    -> "Wieso wird das PWM Signal negiert? Das ist mir neu, schalt doch schon mehrfach mit einem Transistor ein PWM SIgnal."
    Ein Schalttransistor negiert das Signal logisch - Das ist Fakt!
    In deiner ersten Schaltung hast du Optokopplerdiode aber gegen "gnd" geschaltet, so dass der Strom bei logischem H-Pegel fließt.
    Da du jetzt mit dem Transistor gegen +5V schaltest, fließt jetzt der Strom hinter dem Transistor mit logischem low-Pegel.
    Da aber der Trans. das Signal vorher negiert ist es am Ende auch wieder so, dass der Strom mit logisch High vom uC fließt.
    Ist also alles in Ordnung.


    -> "Einen Watchdog wollte ich in der Tat schon immer mal realisieren, aber habe es nie hinbekommen bzw verstanden."
    Kommt auf deinen Anspruch bezüglich Zuverlässigkeit an.
    Zumindest die einfache Schaltung mit einem C vom Reseteingang gegen Masse ist zweckmäßig.
    Beim Einschalten der Versorgung steigt die 5V-Spannung irgend wie an und durchläuft dabei den Bereich, wo der uC noch nicht richtig stabil arbeiten kann.
    Diese Resetschaltung ist ein Tiefpass, der das Reset erst mit einigen ms Verzögerung freigibt, wenn die 5V schon stabil stehen.


    -> "wofür die mlcc Kondensatoren?
    Ich habe von sogenannten "Blockkondensatoren " geschrieben. Die sind wichtig für den stabilen Betrieb jeder Logikschaltung.
    Hier einige Erläuterungen dazu. MLCC kannst du aber auch selber googeln, nicht wahr?


    Gruß Helles Licht.

  • Hi,
    ja wird alles ein wenig klarer.
    Ich hake trotzdem noch mal genau nach, bevor ich den Schaltplan anfasse:
    1) Am Optoausgang einen 10kOhm Trimmer, und direkt 12V anlegen anstelle der 5V. Mit dem Trimmer kann ich dann genau die 5V einstellen.
    2) Am Optoeingang kann ich die Transistoren weglassen und direkt mit dem Arduino Ausgang an den Opto gehen, und den Widerstand auf 330 setzen statt 180
    3) Was die 8V Schaltung angeht: Dieser Satz hatte mich ziemlich verwirrt: "Um aus 8V bei 5V Eingangsspannung zu erreichen, ändere den Widerstand R20 auf ca. 6k oder nimm da auch einen Einstellregler." => zum einen schreibst du "aus 8v bei 5V" (denke du meinst "um 8V bei 5v Eingangsspannugn zu erreichen") und dann sprichst du von R20 (verschrieben? ist ja der am Optokoppler). Habe es aber jetzt mit dem GAIN verstanden. Würde dann hier auch einen 10K-Trimmer einsetzen. Kann/Muss ein Widerstand fix bleiben oder sollte ich bestenfalls R25 und R26 austauschen?
    4) 0.1 uF Blockkondensator direkt am iC zwischen PIN 4(GND) und PIN 8 (Vcc). Muss das nun ein Vielschichtkondensator sein oder tuts auch ein normaler Keramikscheibenkondensator? Letztere nutze ich eigentlich immer in der Regel.


    Hoffe dann habe ich alles verstanden und werds mal ändern.
    Vielen Dank noch mal für deine weitere Zeit ;)
    Gruß
    Thorsten

  • Hallo,
    ich habe ja mehrfach versucht zu erklären, wie ein Poti/Trimmer als Spannungsteiler eingebaut wird.
    -> Die Spannung wird an der Mittelanzapfung (Schleifer) abgenommen.
    So wie es jetzt in der Schaltung ist, wird das nix. Das ist kein Spannungsteiler .
    Der Trimmer sollte so wie beim Lautstärkeregler benutzt werden.


    Man kann die Schaltung bei Bedarf noch verfeinern, indem man den Einstellbereich des Trimmer begrenzt,
    indem man weitere Reihenwiderstände hinzufügt.
    Das sieht dann z.B. so aus wie hier mit R3, R4 und R5. Für den Trimmer (R5) nimmt man dann z.B. nur 2,5kOhm
    und für die Reihenwiderstände z.B. 4,7k oder ähnlich.
    Das wird in deinem Fall nicht nötig sein, aber wenn du mal Schaltungen mit erhöhten Anforderungen an Stabilität hast,
    macht es Sinn, weil Festwiderstände stabiler sind (weniger Drift) und man kann damit auch den Regler feinfühliger einstellen.


    Und noch etwas: Keramikscheibenkond. sind üblicherweise wie MLCC aufgebaut.


    Gruß Helles Licht