Verwendung eines Optokopplers mit MOSFET zum Dimmen einer LED

Ich habe eine blaue LED, die ich mit einem Arduino, einem Optokoppler und einem N-MOSFET dimmen möchte.

Um dies zu erreichen, baute ich die Schaltung auf einem Steckbrett zusammen, wie in den Bildern gezeigt, wobei ein YwRobot-Steckbrett-Netzteil verwendet wurde, um den Transistor des Optokopplers und den MOSFET mit Strom zu versorgen. Ich habe die Fading-Beispielskizze aus der Arduino IDE verwendet.

Wenn ich versuche, die LED in dieser Grundkonfiguration zu dimmen: ( P W M Ö u T R e S ich S T Ö R L E D G R Ö u N D )
Die LED leuchtet langsam auf, erreicht ihr Maximum, dimmt dann langsam, dann wiederholt sich der Zyklus, wie er in diesem Fall sollte.

Aber in der Schaltung verhält es sich komisch.
Es wird nicht gedimmt, es ist auf voller Helligkeit, aber wenn der Zyklus wieder Nullspannung erreicht, wird es ausgeschaltet. Keine Anzeichen einer Helligkeitsänderung .
Ich habe versucht, die Verzögerung des Zyklus zu ändern, und ich habe ein Multimeter verwendet, um die Spannung der LED zu messen. Sobald sich der Zyklus aus dem ausgeschalteten Zustand bewegt hat ( 0 v ) Bei einer etwas höheren Spannung (ich habe 1 Einheitsschritte in AnalogWrite und 4 Sekunden Verzögerung verwendet) war die LED auf voller Helligkeit ( 2 , 8 v ) .

Ich weiß nicht, was los ist. Vielleicht brauche ich keinen der Widerstände auf der BJT-Seite des Optokopplers? Ich habe versucht, die zu nehmen R 3 Widerstand aus, aber dann war die LED immer an, machte sich nicht einmal die Mühe, sie auszuschalten, also steckte ich sie zurück.

Fragen:

  • Was muss ich an der Schaltung ändern, damit die LED wie in der Grundkonfiguration dimmt?
  • Benötige ich Strombegrenzungswiderstände für den BJT sowohl auf der Emitter- als auch auf der Kollektorseite? ( R 2 , R 4 ) in diesem Fall? Ich weiß, dass im Fall von FETS, die ICH D = ICH S , also ein Widerstand ( R 6 ) reicht.


Hier sind der Schaltplan und das Fritzing-Projekt: Arduino_YwRobot_Optokoppler_MOSFET_LED_EAGLE Arduino_YwRobot_Optokoppler_MOSFET_LED_FRITZING
Datenblätter:
4N35M Optokoppler Datenblatt
IRLZ34N n-Mosfet Datenblatt

Dies ist eine wilde Vermutung, aber r4 scheint unnötig und r3 scheint viel zu klein für einen richtigen Entlüftungswiderstand zu sein. Abhängig von der Kapazität des Fets schaltet es einfach nicht schnell genug ab?
@passerby - meinst du nicht, dass R3 viel zu groß ist ?
Können Sie bitte versuchen, die Spannung an OK1, Pin4 zu messen? Meine Theorie ist, dass Sie entweder den Optokoppler oder den MOSFET übersteuern, was dazu führt, dass alle verwendeten Signalpegel die LED einfach "maximieren". (Das, oder versuchen Sie, es ohne OK1 auszuführen, indem Sie einfach den MOSFET in der Spannungsfolgerkonfiguration verwenden).
@brhans, großer Widerstand, zu kleinem Strom, ja, mein Fehler.
@RobhercKV5ROB 400 mV Wenn der Zyklus beginnt, wenn er das 1. Inkrement erreicht, erreichen seine 4.575 V dann langsam 5.070 V, was die maximale Spannung ist, die das Steckbrett-Netzteil liefern kann. Ich möchte nur mit Schaltspannungen experimentieren und gleichzeitig den Arduino schützen, ich möchte den Optokoppler behalten.
@domenix 4.575 V sieht definitiv so aus, als würde der Optokoppler übersteuert. Entweder möchten Sie die dem Optokoppler zugeführte Leistung reduzieren (Bleed-Widerstand zwischen PWM und Masse in Ihrem Diagramm) oder eine andere Möglichkeit finden, Ihr 'Duino zu isolieren / zu schützen, ohne die Linearität zu verlieren (wenn OK1 nicht zuverlässig funktioniert). bei jedem vernünftigen Eingangspegel). FYI: Da es sich um ein unglaublich hochohmiges Gerät handelt, sollte ein Leistungs-MOSFET (meiner Meinung nach) ein ziemlich hohes Maß an Schutz für Ihr Arduino bieten (überprüfen Sie die Drain-Gate- und Gate-Source-Leckage / -Isolation im Datenblatt).
@RobhercKV5ROB Ich habe versucht, einen Ableitwiderstand hinzuzufügen, aber das Verhalten der LED hat sich dadurch nicht geändert, aber danke für den Tipp, ich werde es mir merken!

Antworten (1)

Leistungs-Mosfets haben eine erhebliche Gate-Kapazität und Ihr Gate-Antrieb ist erheblich unausgeglichen. 500 Ohm zum Laden und 600 K zum Entladen, das ist ungefähr 100: 1, kein Wunder, dass die PWM keine Ergebnisse zeigt.

Ersetzen Sie R3 durch 1K Ersetzen Sie R2 durch einen Draht, der einen stärkeren Entladungsantrieb ergibt und besser funktionieren sollte.

Als ich R2 durch Draht und R3 durch einen 1k-Widerstand ersetzte, funktionierte es nicht, aber als ich R2 behielt und R3 durch einen 2k-Widerstand ersetzte, funktionierte es perfekt. Jetzt funktioniert es so wie es sein soll. Vielen Dank und @Passerby!
@Passerby Ich verstehe nicht wirklich, was Sie vorschlagen. Was soll ich ändern? Übrigens habe ich das R4 entfernt, und es funktioniert, also war es in der Tat unnötig.
Ich würde auch vorschlagen, zu einem Low-Side-Setup zu wechseln. Ein npn optó ist besser geeignet, den Kollektor statt den Emitter hoch zu ziehen. Es würde erfordern, die Arduino-PWM-Logik umzukehren, aber das ist einfach.
R2 und r4 dienten demselben Zweck. Aber der Optó ist ein npn-basierter Transistor. Es funktioniert besser als Low/Ground-Side-Schalter als als High/Vcc-Side-Schalter. So wie er ist, wird der Emitter auf den Basisspannungsabfall von etwa 0,7 V gezogen. Ich werde morgen, wenn ich zu Hause bin, auf die relevanten Informationen verlinken. Sie können den gemeinsamen Emitter für weitere Informationen googeln.
@passerby, da es isoliert ist, macht es bei einem Optotransistor keinen Unterschied, ob er High-Side oder Low-Side verwendet wird. Wenn es sich jedoch um einen gewöhnlichen Transistor handeln würde, der von einem Spannungssignal in die Basis getrieben wird, wäre ein gemeinsamer Kollektor der richtige Weg.
AFAIK tut es, aber ich bin nicht ziemlich gut darin trainiert. @Jasen. Nach meiner begrenzten Erfahrung ist ein gemeinsames Emitter-NPN-Setup besser
Das ist der Grund, warum ich nicht geantwortet habe, ich habe nur empirische Beweise, keine maßgeblichen Quellen.
Wie kann das sein? Die Basis ist isoliert, also hindert sie nichts daran, in beiden Konfigurationen höher als der Kollektor zu gehen.