Ich habe eine Reihe von Leiterplatten hergestellt, um einige Magnetventile mit Strom zu versorgen, die eine externe Stromversorgung verwenden. Ich schalte sie mit BS170- MOSFETs mit einem Arduino als Gate-Signal. Ich habe eine Lösung von Jason S zugrunde gelegt .
Dies ist eine Illustration, wie meine Schaltung aussieht:
Beim Testen der PCBs bemerkte ich, dass die meisten von ihnen gut funktionieren, aber einige von ihnen nicht. Kein Problem, wahrscheinlich eine Lötsache.
Diese fehlerhaften haben es jedoch geschafft, zwei digitale Arduino-Pins zu zerstören! An einem bekomme ich eine konstante Spannung von 5 V, und der andere gibt 0,2 V aus, wenn ich ein HIGH-Signal an ihn sende, und 0,5 V, wenn ich ein LOW-Signal sende. Seltsames Zeug.
Ich denke also, dass die fehlerhaften Schaltkreise irgendwie dazu geführt haben, dass (einige) der 16 V durch den Arduino flossen und sie zerstörten.
Wie schütze ich den Arduino in diesem Szenario vor zu hohem Strom?
Ich kenne mich mit Zenerdioden aus, aber ich habe keine Ahnung, wie ich sie platzieren soll, um die Eingänge zu schützen.
Technische Information:
Die Schaltung ist theoretisch in Ordnung.
Verbesserungsbedarf in der Praxis.
Das Hinzufügen einer Gate-Source-Zenerdiode von beispielsweise 12 V (> Vgate_drive) ist in der Tat in allen Schaltkreisen mit induktiver Last eine sehr gute Idee. Dies verhindert, dass das Gate durch die Kopplung der "Miller-Kapazität" mit dem Drain während unerwarteter oder extremer Schwankungen der Drain-Spannung destruktiv hoch getrieben wird.
Montieren Sie den Zener in der Nähe des MOSFET.
Verbinden Sie die Anode mit der Source und die Kathode mit dem Gate, so dass der Zener normalerweise nicht leitet.
Der 10k-Gate-Treiberwiderstand (wie gezeigt) ist groß und verursacht ein langsames Aus- und Einschalten und mehr Verlustleistung im MOSFET. Das ist hier wohl kein Problem.
Der gewählte MOSFET ist in dieser Anwendung sehr marginal.
Zu den weitaus weitaus besseren MOSFETs, die ab Lager bei Digikey erhältlich sind, gehören:
Für 26c/10 Digikey IRLML6346 SOT23 pkg, 30 V, 3,4 A, 0,06 Ohm, Vgsth = 1,1 V = Gate-Schwellenspannung.
NDT3055 48c/10 TO251 bedrahtet 60 V, 12 A, 0,1 Ohm, Vgsth = 2 V
RFD14N05 71c/10 TO220 50V, 14A, 0,1 Ohm, 2V Vgsth.
HINZUGEFÜGT
GEEIGNETE MOSFETS FÜR 3V GATE DRIVE:
Das System hat gerade meine längere Antwort verworfen :-(. Also - MOSFET MUSS Vth (Schwellenspannung) von nicht mehr als 2 V haben, um mit 3V3-Versorgungsreglern ordnungsgemäß zu funktionieren.
Keiner der vorgeschlagenen FETS erfüllt diese Anforderung.
Sie können nach einiger Zeit funktionieren auf der aktuelle Last, sind aber untersteuert und übermäßig verlustbehaftet, und die Lösung erstreckt sich nicht gut auf größere
Lasten.Es scheint, dass IRF-FETs im betroffenen Größenbereich, die Vth (von Vgsth) <= 2 Volt haben, ALLE 4-stellige numerische Codes haben, die mit 7 beginnen, außer IRF3708 .
OK-FETs umfassen IRFxxxx, wobei xxxx = 3708 6607 7201 6321 7326 7342 7353 7403 7406 7416 7455 7463 7468 7470
Es wird andere geben, aber alle vorgeschlagenen scheinen Vth = 4 V oder 5 V zu haben und sind in dieser Anwendung marginal oder schlechter.
Vgsth oder Vth muss mindestens ein Volt weniger und idealerweise mehrere Volt weniger als die tatsächliche Gate-Ansteuerspannung sein.
Ihr Ventil hat eine Nennspannung von 500 mA bei 12 V. Wenn Sie 16 V liefern, zieht es etwas mehr als 500 mA. Unter der Annahme, dass es sich um einen Widerstand handelt, werden 667 mA gezogen.
Der absolute Maximalstrom für den von Ihnen verwendeten MOSFET beträgt 500 mA kontinuierlich. Alles, was über den absoluten Höchstwerten liegt, kann das Gerät zerstören. Dies ist wahrscheinlich der Grund, warum Sie Zuverlässigkeitsprobleme sehen.
Es gibt keinen garantierten Fehlermodus für MOSFETs, daher bin ich nicht überrascht, dass es so fehlschlagen würde, dass die Arduino-Ausgänge beschädigt werden.
Wie Jason in der verlinkten Antwort erwähnte, ist BS170 eine schlechte Wahl für MOSFET. Du brauchst einen besseren. Wählen Sie einen in einem TO-220-Gehäuse, das für mehrere Ampere ausgelegt ist. Sie müssen auch sicherstellen, dass die Vgs für einen 5-V-Logikpegelantrieb ausgelegt sind.
Welche Diode verwendest du?
Ihr Ventil ist für ~ 500 mA ausgelegt. Ein BS170 ist auch für 500 mA ausgelegt, aber das ist die Verkaufsargumentation. Ich würde hier einen (viel) höher bewerteten FET verwenden, 500 mA durch einen TO92 machen mich nervös. Und Sie haben einen 1k-Gate-Widerstand, was in den meisten Fällen eine gute Idee ist, aber es könnte dazu führen, dass der schlechte FET zu langsam schaltet, um die 0,5A zu überleben.
Welche Diode verwendest du? Es muss für 0,5 A ausgelegt sein, daher reicht ein 1n4148 nicht aus. Ich bin mir nicht sicher, aber es könnte tatsächlich mehr als 0,5 werden, weil der bewegliche Teil des Werts eine noch größere Spitze verursachen könnte als eine einfache Spule.
In Ihrem Bild fließt der Wertrückstrom an der Arduino-Masseverbindung vorbei. Ich würde das zu einem Stern machen: Schließen Sie die Arduino-Masse direkt an die Stromversorgung an. Oder viel besser: Verwenden Sie ein Optokoppler, um den Hochstromkreis vom Arduino zu isolieren (und verwenden Sie zwei separate Netzteile).
Sie sollten einen Gate-Source-Widerstand an Ihrem MOSFET haben, damit das Gate nicht aufschwimmen kann, wenn der Arduino-Ausgang hochohmig ist. Da die Solenoid-Stromversorgung und die Arduino-Stromversorgung getrennt sind, könnte dieses Szenario eintreten (es sei denn, Sie garantieren per Design, dass der Arduino immer zuerst eingeschaltet ist).
Ist der MOSFET tatsächlich so weit vom Solenoid entfernt? Wenn ja, sollte es viel näher gerückt werden. Bewegen Sie es so, dass der Abfluss direkt in den Protoboard-Streifen gesteckt wird, wo das rote Kabel zum Solenoid und zur Diode führt. Stellen Sie dann eine kurze Source-Verbindung zur GND-Leiste her. Es ist besser, eine längere Gate-Signalschleife (bei geringer Leistung) zu haben als eine lange Schleife, die Strom führt. Sie könnten den Arduino auch näher an das Solenoid heranbringen und all diese Schleifen kurz halten.
Die abgebildete Schaltung sieht gut aus, vorausgesetzt, die einzige Masseverbindung zwischen der Arduino-Platine und dem Minuspol der +16-Versorgung ist das kurze blaue Kabel. Andererseits ist es möglich, dass versehentliche Kurzschlüsse zu schlimmen Ereignissen führen können. Es ist schwer zu erraten, was genau passiert sein könnte, ohne zu sehen, wie die eigentlichen problematischen Bretter ausgelegt waren.
Wenn Sie die Spezifikationen Ihres MOSFET vorantreiben, könnte dies leicht so ausfallen, dass +16 aus dem Gate gesendet werden, aber wenn die Widerstände wie abgebildet sind, würde ich erwarten, dass der Arduino ziemlich gut geschützt sein sollte.
Zunächst einmal benötigen Sie ultraschnelle Schaltdioden und nicht diese billigen 2n4001-4-Dioden, wenn Sie Motoren oder Spulen verwenden. Je schneller das Schalten, desto größer die BEMF. Verwenden Sie auch eine 914-Schaltdiode zum Mosfet-Gate vom Arduino und einen 10k-Pull / Down-Widerstand vom Gate zur Masse.
mjh2007
Farbstoff
Russell McMahon
abdullah kahraman
...When MOSFETs fail they often go short-circuit drain to gate...
Ab hier zitiert .abdullah kahraman
Olin Lathrop
abdullah kahraman
Russell McMahon
abdullah kahraman