Ist dies eine ordnungsgemäße Verwendung eines PNP-Transistors?

Ich versuche, einen Transistor zum Ein- und Ausschalten eines SSR zu verwenden, der wiederum einen Magneten ein- und ausschaltet. Ich habe ursprünglich einen NPN-Transistor (2N222) verwendet, aber dies verursachte Probleme beim Neustart der MCU, da alle IO-Pins hochgezogen werden . Während ich versuchte (mit meinem sehr begrenzten Wissen auf diesem Gebiet) zu theoretisieren, wie ich einen PNP-Transistor verwenden könnte, um die + 5 V, die zu den NPN-Transistoren gehen, ein- / auszuschalten, kam mir der Gedanke, dass ich einfach einen PNP verwenden könnte, um den SSR anzusteuern direkt. Dies würde das Neustartproblem vermeiden, da der Transistor "ausgeschaltet" würde, während der IO hoch getrieben wird (richtig ...?):

MCU-Ausgang, der PNP-Transistor antreibt, SSR ansteuert

Ist dies eine angemessene Verwendung eines PNP-Transistors? Ist dies eine (wahrscheinlich-offensichtlich-für-die-meisten-aber-clever-für-mich) gültige Lösung?

Basierend auf Russells Antwort denke ich, dass dies nicht der Fall ist (zumindest nicht so, wie es hier gezeichnet wird), da der MCU-Ausgang nur 3,3 V und nicht 5 V beträgt.

Wenn Ihre uC-GPIO-Pins als Open-Drain-Ausgänge programmiert werden können, können Sie den Optokoppler mit dem Open-Drain-Ausgang und einem Pull-up-Widerstand an Ihre 5-V-Schiene ansteuern.
@B Pete: Das Problem ist, dass die Firmware sie explizit auf Eingänge setzt und die internen Pullup-Widerstände beim Zurücksetzen aktiviert. Daran kann ich einige Sekunden nichts ändern, dann hätte ich ernsthafte Probleme.
Ja, aber wie bei der PNP-Lösung werden der Optokoppler und das SSR aktiviert, wenn der Open-Drain-Ausgang den Pin auf LOW zieht. Der momentane hohe Pegel lässt die SSRs ausgeschaltet. Dies funktioniert jedoch nur, wenn Ihr uP Open-Drain-Ausgänge hat.
Oh Gott, schrecklicher Schaltplan. WARUM? Legen Sie den +5V-Anschluss nach oben und den Emitter des PNP-Senders nach oben. Sonst ist es viel schwerer zu verstehen.
@Fake Name: Ich konnte in TinyCAD nicht herausfinden, wie man den Transistor umdreht, ohne die Basis nach rechts zu bewegen. So oder so, irgendetwas würde schlecht aussehen.

Antworten (4)

Die von Ihnen vorgeschlagene Lösung ist als Basislösung gut genug, solange Sie garantieren können, dass die FEZ-Ausgabe jederzeit hoch bleibt, bis Sie sie niedrig einstellen. Das ist Ihre Aufgabe, das festzustellen.

Fügen Sie einen Widerstand mit hohem [tm]-Wert von +5 V zur PNP-Basis hinzu, um ihn ausgeschaltet zu halten, wenn "FEZ" offen ist. Andernfalls wird es wahrscheinlich zu "Überraschungen" kommen. 10k bis 100k reichen aus.

Beachten Sie, dass FEZ wie gezeigt auf nahe +5 V ansteigen muss, um den Transistor auszuschalten. Bereits 0,5 V unter der Schiene (4,5 V) können zum Einschalten führen. Dies kann je nach Implementierung des Prozessors/der Treiberschaltung ein Problem sein oder auch nicht. Was hier funktioniert, kann woanders scheitern, wenn dies nicht berücksichtigt wird. Wenn Sie die 10k bis 100k oben in eine zB 2k2 Basis zum Emitter ändern, wird die Ansteuerspannung so geteilt, dass Sie eine negativere gping-Spannung benötigen, bevor der Transistor einschaltet. Passendes Design.

Das Solenoid MUSS eine Sperrdiode haben, wenn es mit Gleichstrom betrieben wird, um die reaktive Spitze beim Ausschalten zu minimieren.

Wie gezeigt, hat Ihr SSR eine TRIAC-Ausgangsstufe. Dies kann ein AC-Laufwerk bedeuten oder nur das Symbol sein, das Sie zur Verfügung hatten. Wenn es sich tatsächlich um ein wechselstrombetriebenes Solenoid handelt, müssen Sie es möglicherweise "drosseln", um Blindenergieprobleme wie bei Gleichstrom zu vermeiden.

  • Wenn der Optokoppler beim Ein- und Ausschalten auf "Nulldurchgang" geschaltet ist, benötigen Sie möglicherweise keinen "Snubber", obwohl bei einer hochreaktiven Last Strom und Spannung um fast 90 Grad phasenverschoben sind und das Ausschalten bei einem Spannungsnulldurchgang immer noch erfolgt führen zu einem induktiven "Kick".

  • Wenn der Optokoppler nicht nulldurchgangsgeschaltet ist, benötigen Sie einen Snubber, um die Blindenergie abzubauen. Sie können nicht einfach eine Sperrdiode verwenden, da sie bei jeder zweiten Halbwelle leitet (und es würde " Ärger geben! " :-) ). . Ein Verfahren besteht darin, Zenerdioden mit entgegengesetzter Polarität in Reihe zu verwenden, wobei die Zenerspannungen mindestens geringfügig über der Spitzen -AC-Halbwellenspannung liegen. zB für 110 VAC Netzspulenantrieb Vzener >= 110 x 1,414 >= 160- V. Sagen wir 18- V Zener. ( Magnetklemme 1 - Zener 1 Kathode, Zener 1 Anode - Zener 2 Anode, Zener 2 Kathode - Magnetklemme 2.


Powerup-Handhabung

Während das oben Gesagte das Problem wie dargestellt löst, KANN es das Problem nicht lösen, wie es in generischen Fällen der realen Welt der Fall ist, und möglicherweise auch nicht in diesem Fall. Hier haben wir uns von dem, was der Prozessor beim Start tut, "gefangen nehmen" lassen, anstatt zu entwerfen, was passieren soll. Wenn der Prozessor nicht ganz das tut, was wir wollen, sind wir gezwungen, eine andere Problemumgehung zu finden.

Eine Alternative besteht darin, eine Schaltung zu entwerfen, die garantiert richtig startet. Das ist vielleicht nicht ganz die billigste und einfachste Lösung und ob es sich lohnt, hängt von der Anwendung ab. Ich werde nicht ins Detail gehen, da es viele Möglichkeiten gibt, dies zu tun.

Nur ein Beispiel. Es wird ein NPN-Treiber verwendet. Die Transistorbasis ist über eine Diode (möglicherweise eine Schottky-Diode) mit einer Elektrolytkappe verbunden. Der Kondensator wird auch über einen Widerstand von Vcc geladen. Beim Einschalten liegt der Kondensator auf 0 V, sodass die Transistorbasis durch den Kondensator niedrig geklemmt wird und der Transistor nicht einschalten kann. Der Kondensator wird durch den Widerstand von Vcc hoch geladen und nach einer Zeit von wahrscheinlich < 1 Zeitkonstante Vkondensator > 0,6 V (ohne Berücksichtigung des Diodeneffekts) und der Kondensator hat keine Auswirkung mehr auf den Betrieb. Was beim Ausschalten passiert, muss bestimmt werden.

Verschiedene Möglichkeiten sind denkbar. zB könnte der Kondensator stattdessen von einem "Ersatz"-Pin gesteuert werden und eine Anzahl von Treibern auf diese Weise zusammen gesteuert werden. Dies könnte jederzeit als Massen-"Treiberdeaktivierung" zu einem Mehrpreis von einer Schottky-Diode pro Treiber verwendet werden.

Ob sich dieses oder ein anderes Schema lohnt, steht in jedem Fall noch in den Sternen.

Eine Alternative besteht darin, die Versorgung zu schalten, die zur Steuerung von Peripheriegeräten verwendet wird (wie in diesem Fall das SSR). Auch dies könnte mit Pin-Steuerung oder durch eine RC-Verzögerung erfolgen. Viele Möglichkeiten zum Nachdenken und Spielen.


3,3-V-Laufwerk und andere reale Probleme

Die MOC3010-Optokoppler- LED benötigt eine maximale Durchlassspannung von 1,5 V, sodass eine Ansteuerung von 3,3 V in Ordnung ist.

Verbinden Sie den PNP-Emitter mit 3V3 (falls verfügbar) und fahren Sie wie oben beschrieben.

Wenn es auf der Eingabezeile verschiedene Aussetzer gibt, bevor sich die Dinge beruhigen, ist eine meiner Powerup-Ideen oder ähnliches erforderlich, wenn falsche Operationen vermieden werden sollen.

Wenn die Reaktionszeit kein Problem darstellt oder eine Verzögerung von beispielsweise 0,5 s akzeptabel ist, wird der Betrieb durch Hinzufügen eines Kondensators "geeigneter Größe" zur Transistorbasis (ob PNP oder NPN) verlangsamt. Dies verlangsamt auch die Release-Zeit, sodass Sie sich der Gesamteffekte bewusst sein müssen.

Selbst wenn der Betrieb ohne Snubber zu funktionieren scheint, würde ich SEHR DRINGEND empfehlen, einen Snubber zu verwenden, da "Sachen passieren" und Sie früher oder später wahrscheinlich "einfach so" auf die Netzspitzenspannung treffen und eine induktive Spitze von beträchtlicher Größe erleben . In Abwesenheit eines Dämpfers kann der TRIAC selbst entscheiden, die Energie zu erhöhen und zu zerstreuen.Ob er dies destruktiv tut oder sich nur für einen weiteren Halbzyklus einschaltet, ist TBD.Dies ist nicht die Art von Dingen, die Ihre Komponenten bestimmen sollen in Ihrem Namen. Ein zuverlässiges Design ist eines, das (zumindest) entworfen wurde. Wenn Dinge passieren können, für die Sie nicht entworfen haben, können Sie damit rechnen, dass das Unerwartete passieren kann.

In der Tat werden meine Solenoide mit Wechselstrom betrieben, mit 24 V. Danke für die tollen Infos! Das Datenblatt empfiehlt, das SSR zu testen und „bei unbeabsichtigtem Schalten“ mit einem Snubber mit den Werten Cs = 0,022 μF und Rs = 47 Ω zu beginnen. In meinen (snubberless) Tests trat dieses Problem nie auf.
Ich habe nicht berücksichtigt, dass meine MCU nur 3,3 V ausgibt. Außerdem werden die Pins beim Neustart nicht unbedingt hoch "getrieben", sondern auf Eingang gesetzt und mit internen ~50k-Pullup-Widerständen auf 3,3 V hochgezogen. Die PNP-Idee sieht immer weniger gut aus.
Ihre Beschreibung eines Dioden- / Kondensator- / Widerstands-Setups ist für mich interessant, aber ich kann es nicht visualisieren (das ist weit außerhalb meiner Liga, wo wir stolz darauf sind, ein paar LEDs geblinkt zu haben, die von einfachen NPN-BJTs angetrieben werden). Wäre es möglich, es etwas genauer zu beschreiben?
Siehe bearbeitete Antwort oben zu 3,3-V-Laufwerk und Snubbing.
Bauen Sie wie folgt auf: Für massebezogenen NPN-Treiber: Cap-ve to gnd. Schottky-Diode von Basis zu Cap+ (Diode Anode zu Basis). Widerstand Rsu von V+ zu Cap+. Kappe auf Masse bei su (Startup) klemmt Basis auf niedrig. Ansteuersignale betreiben keinen Transistor, da die Basis bei ~ + 0 V an die Kappe geklemmt ist. Cap-Gebühren über Rsu. Wenn Vcap > (Vbase_on – Vschottky) stoppt das Klemmen. Benötigt eine größere Kappe. Das Hinzufügen einer weiteren Diode über der Kappe (normalerweise in Sperrrichtung vorgespannt) ermöglicht es der Kappe, sich zu entladen, wenn die Stromversorgung unterbrochen wird. Hilft, das Reset-CCT schneller zurückzusetzen. Wenn dies ein häufiges Problem ist, ist es besser, Peripheriegeräte abzuschalten oder eine gemeinsame Reset-Leitung für Treiber zu verwenden.
Oder, wahrscheinlich einfacher, wie könnte ich die Mathematik an den Widerständen (einer zwischen +5 V und der PNP-Basis und einer zwischen der MCU und der Basis) ausführen, damit es nur für diese spezielle Implementierung funktioniert?
... heilige Scheiße ... ja, guter Anruf bei den Pullup-Widerständen, wenn sie beim Einschalten schwimmen :)
Teiler, um eine 3,3-V-Ansteuerung zum Transistor mit 5-V-Emitter zu ermöglichen: 5 V-3,3 = 1,7 V - sagen wir 1,6 zur Vereinfachung :-). / Test teilen Sie dies durch 4/5/6, um Ergebnisse zu sehen = 0,4/0,32/~ 0,25 -> keiner arbeitet mit Transistoren, aber 0,4 ist sehr marginal. // Wenn das Gate niedrig ist = 0 V, teile 5 V durch 4/5/6 = 1,25/1,0/0,85. dh alle schalten PNP ein, wenn das Gate niedrig ist. Wählen Sie beispielsweise einen ~ 5: 1-Teiler, der Vbase = -0,32 V gegenüber 5 V ergibt, wenn das Gate hoch ist, und 1 V ansteuert, wenn das Gate niedrig ist. Sagen Sie 1K:3k9 usw. Oder zB 4k7:18k ... [Beachten Sie, dass Sie, sobald Sie ein Verhältnis haben, beide Widerstände nach oben N std R-Wertpositionen schieben und das Verhältnis beibehalten können. Ein immens wertvoller Trick.

Ja, deine Schaltung ist in Ordnung.

Eine Sache jedoch: Aus Gründen der Übersichtlichkeit ist es normalerweise eine gute Idee, Schaltpläne mit von oben nach unten positiven und negativen Versorgungsspannungen zu zeichnen. Mit anderen Worten, Ihre Schaltung ist richtig, aber ich möchte, dass der Transistor vertikal transponiert wird. Emitter oben an +5V-Versorgung angeschlossen, Kollektor nach unten, der das SSR antreibt, und Basis nach links, wie Sie es haben. Meine erste Reaktion war, dass Ihr Stromkreis unterbrochen war, bis ich die 5 V unten bemerkte.

Ich stimme zu, so wollte ich es, aber ich konnte nicht herausfinden, wie ich den Transistor in TinyCAD so anordnen soll :(
Benötigt Rbe für O/C-Eingangssicherheit.

Wenn ich Sie richtig verstehe, ist der Emitter des Transistors mit +5 V verbunden, aber der Mikrocontroller hat 3,3 V.

Generell kann man das nicht. Wenn Sie den Ausgang hoch machen, wird immer noch Strom durch die Basis gezogen: (5 V - 0,7 V - 3,3 V) / 2200 Ω = 450 μ A, was ausreichen würde, um das SSR einzuschalten. Eine Lösung wäre, den I/O-Pin auf Eingang zu schalten, anstatt ihn zu einem hohen Ausgang zu machen, aber die meisten 3,3-V-Controller sind nicht 5-V-tolerant.

Sie könnten ein paar Volt von der Basis abfallen lassen, indem Sie ein paar Dioden in Reihe schalten, aber diese benötigen Strom, um den Spannungsabfall zu erzeugen, was bedeuten würde, dass Sie einen Widerstand gegen Masse benötigen, und dann haben Sie wieder Ihr ursprüngliches Problem: beim Start Der Pfad Transistor-Dioden-Pulldown leitet und schaltet das SSR ein.

Mein Vorschlag wäre, zurück zur NPN-Lösung zu wechseln und sicherzustellen, dass alle internen Pull-ups deaktiviert sind.

Wenn mein Gedächtnis mir dient, ist das einzige Problem, dass das, was Sie getan haben, den "Sinn" der FEZ-Eingabe umkehrt. Das heißt, um den Transistor "EIN" zu schalten, müssen Sie die Basis des PNP-Transistors auf GND treiben. Abgesehen davon scheint es mir eine vollkommen gültige Lösung zu sein.

Rechts. Die Treiberlogik in der Software muss invertiert werden, dh den Ausgang auf LOW treiben, um ihn einzuschalten, und auf HIGH, um ihn auszuschalten ... meinst du das?
ja das meine ich.