Ansteuerung eines Relais mit Transistor und Opto-Isolator

Geben Sie hier die Bildbeschreibung einIch bin ganz neu in der Elektronik. Ich steuere ein Relais mit einem stm32-Mikrocontroller. Zur Isolation habe ich einen 4N33 Opto-Isolator verwendet. Da meine Relaisspule etwa 250 mA benötigt, habe ich einen mps222-Transistor verwendet. Ich dachte mir, dass die Logik invertiert wird, wenn ich das gpio als Quellenspannung für die Opto-Isolator-LED verwende. Ich habe stattdessen einfach einen Pull-Up verwendet und das andere Ende des LED-Teils mit dem GPIO verbunden. Gpio ist Open Drain, ich werde ungefähr 3 mA im Pin ablassen. Ich habe den R2-Widerstand in diesem Moment nicht geerdet. Mein Problem ist, falls mein Stm getrennt wird, dann wird mein Relais eingeschaltet - was ich vermeiden möchte. Kann mir bitte jemand sagen, ob das Hinzufügen dieses R2 das Problem beheben wird?

Geben Sie hier die Bildbeschreibung ein

Gibt es ein Problem beim Invertieren des Relaisantriebs? R4 vom Kollektor von Q1 zum Emitter von Q1 tauschen (natürlich die Verbindung zur Masse trennen)
Warum müssen Sie das Mikro von der Spulenseite des Relais isolieren? Relais bieten bereits eine Isolierung zwischen der Spulenseite und den Schaltern. Mit anderen Worten, warum nicht GPIO an das linke Ende von R4 anschließen und das Opto komplett eliminieren? Sie müssten den Pegel auf GPIO von dem, was Sie oben zeigen, umkehren, aber das ist eine geringfügige Firmware-Änderung.
@RobinClarke, ist es also Gegentakt- oder Open-Drain-Ausgang? Sie geben Push-Pull im Schaltplan und Open Drain im Text an.

Antworten (2)

Du kannst es so machen. Denken Sie daran, dass der BJT-Transistor ein stromgesteuertes Gerät ist, deshalb können Sie sie übereinander stapeln, um ein Darlington-Paar zu bilden.

Ihr Optokoppler hat ein Stromübertragungsverhältnis von ~ 400 % bei 3 mA LED-Strom, wodurch 12 mA durch Q1 laufen. Für Q2 benötigen Sie einen Transistor mit einem hfe von mehr als 250 mA / 12 mA = 20 MPS2222 scheint einen hfe von 75 bei einem Basisstrom von 10 mA zu haben, also sollten Sie in Ordnung sein.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

schematisch

Simulieren Sie diese Schaltung

Bearbeiten Sie im MCU-Pin-Modus

Aus Ihren Kommentaren geht hervor, dass Sie nicht genau verstehen, wie Push-Pull- und Open-Drain-Ausgangsstufen funktionieren. Während es in dieser Frage diskutiert wird , werde ich nur eine kurze Beschreibung geben.

Bitte beachten Sie, dass die Ausgänge der meisten stm32-MCUs als Open Drain oder Push Pull und als ganze Kombination aus internen Pull-Ups und Pull-Downs konfiguriert werden können. Das ist vielseitig und nützlich.

Nun, was Open Drain ist - es ist nur ein Transistor, dessen Drain (Kollektor) nicht angeschlossen ist - Sie können Ihre Last an diesen Drain anschließen (D1 in meinem Schaltplan). Sie verwenden Open Drain, wenn Sie Strom schalten möchten . Es kann nur Strom aufnehmen, nicht liefern.

Wenn der Open-Drain-Pin ausgeschaltet ist, fließt kein Strom in den Pin, die Spannung an ihm ist undefiniert, er wird als "schwebend" bezeichnet. Wenn der Stift eingeschaltet ist, verbindet er sich einfach mit dem Boden, was auch immer damit verbunden ist.

schematisch

Simulieren Sie diese Schaltung

Wenn etwas außerhalb des Pins Spannung lesen möchte (wie ein hochohmiger Eingang), lösen Sie dies, indem Sie einen Pull-up-Widerstand an Open Drain anschließen. Während der Pin ausgeschaltet ist, ist der Ausgang hoch, da der Widerstand ihn zieht, wenn der Pin eingeschaltet ist, knallt der interne Transistor die Unterseite des Pullup-Widerstands auf Masse.

Der Push-Pull-Ausgang liefert und senkt aktiv Strom, wenn er eingeschaltet ist - Strom fließt aus dem Pin, wenn er ausgeschaltet ist - fließt Strom hinein. Normalerweise verwenden Sie keine Pullups oder Pulldowns mit Push-Pull-Ausgang.

schematisch

Simulieren Sie diese Schaltung

Was ist der Zweck von R3?
oh ja, R3 wird nicht benötigt, da das Relais den Strom durch Q2 begrenzt. zu früh am morgen war es.
@miceuz, Danke für deine Antwort. Also invertiere ich immer noch das Signal the.Da Q2 nicht funktioniert, es sei denn, ich habe ein Nullsignal in meiner MCU. Sie haben Recht, MPS222 kann 600 mA aufnehmen. Mir sollte es gut gehen. Ich hatte gehofft, die Schaltung so zu betreiben, dass sie eingeschaltet ist, wenn ich eine hohe Leistung habe. Danke für Ihre nette Erklärung, wirklich großartig!
@RobinClarke du solltest ohne Inversion gut sein. Während die MCU startet, wäre der Ausgang wahrscheinlich hochohmig und der Strom fließt nicht durch D1, wodurch die Transistoren nicht eingeschaltet werden. Wenn Sie den Pin hoch ausgeben, leitet der Mosfet am Ausgang des Pins, D1 leuchtet auf und schaltet alles ein. Oh. Vorausgesetzt, Sie haben einen Open-Drain-Ausgang. Klären Sie das bitte auf.
@miceuz, Entschuldigung für die Verwirrung. Ich benutze auf jeden Fall den offenen Abfluss. Ich habe gerade den Push-Pull-Modus nur erwähnt, wenn ich die Abbildung ganz oben verwende, wo der Ausgangspin die Spannung für D1 liefert. Danke fürs klarstellen!
@miceuz Ich war mir nicht sicher, wie sich die Ausgangspins verhalten. Ich dachte, wenn mein Ausgangspin 3,3 V liefert und D1 durch Hochziehen mit 3,3 V verbunden ist, wird 1,2 an D1 abfallen und dann wird am Ausgangspin eine höhere Spannung angezeigt Damit kein Strom fließt, hat der Open-Drain-Anschluss im logischen 1-Zustand eine hohe Impedanz. Dadurch wird der Stromfluss durch die Leitung gestoppt. Daher schaltet sich der D1 nicht ein, wenn der Ausgang hoch ist. Ich denke, dann ist es anders, der Mosfet leitet, wenn ich eine logische 1 im Ausgangspin habe. Bitte kommentieren Sie, wenn ich es richtig mache. Vielen Dank, dass Sie mir geholfen haben!
@RobinClarke Ich habe meine Antwort aktualisiert, hoffe, es ist jetzt klarer.

Nein, das Hinzufügen eines R2, wie Sie es zeigen, wird Ihr Problem nicht lösen.

Ein getrennter Prozessor entspricht (in diesem Fall) einem Prozessor, der den Pin NICHT auf Low zieht (und eine logische 1 ausgibt). Daher müssen Sie Dinge verdrahten, damit das Relais mit Strom versorgt wird, wenn eine 0 angelegt wird, und nicht mit Strom versorgt wird, wenn eine 1 angelegt wird. Mit dieser Umkehrung muss das Programm Ihres Prozessors leben.

Eine einfache Möglichkeit, dies zu erreichen, besteht darin, den Q1 mit R3 in Reihe zu schalten. R4 kann weggelassen werden, aber Sie benötigen möglicherweise einen Widerstand von der Basis von Q2 zu seinem Emitter, um zu vermeiden, dass der Transistor durch den Leckstrom von Q2 eingeschaltet wird.

PS: Ihre Schaltung zeigt eine gemeinsame Masse (und gemeinsame 5 V?) Für beide Seiten des Optokopplers. Das macht den Optokoppler unbrauchbar.

@ Wouter van Danke für deine Antwort. Ich werde die Erdung der linken Seite des Okto-Isolators ändern. Sie haben recht, es ist eine hohe Logik, wenn der Mikrocontroller irgendwie getrennt ist und der Stromkreis ausgeschaltet wird. Danke! @ Nick Ich verwende ein 50-A-Relais, um 240 V zu schalten, also dachte ich, ich sollte eine Isolierung verwenden, um mein Mikro zu schützen.
Hallo zusammen, ich habe mich gefragt, ob das Bild, das ich oben hinzugefügt habe, funktioniert. Scheint, als könnte ich die Inversion loswerden. Bitte lassen Sie mich wissen, was Sie denken Die andere Seite des Optokopplers zum Mikro als Mikrostift ist 3,3 VI. Ich weiß Ihre Hilfe wirklich zu schätzen. Ich war bis jetzt ohne Hilfe. Danke!
@RobinClarke R3 loswerden, das war mein Fehler.
@miceuz, es tut mir wirklich leid, dass ich nicht früher antworten konnte. Es macht wirklich Sinn. Du hast es sehr deutlich gemacht. Ich werde die Schaltung dieses Wochenende machen. Vielen Dank! Ich schätze deine Hilfe wirklich sehr.