Transistor ansteuern funktioniert nicht

Ich habe eine Konstruktion in der sechs 12V (DC) Lüfter (PC Lüfter) parallel geschaltet sind.
Jeder Lüfter ist mit den 12V und 0.2A angegeben.
Diese habe ich bisher immer manuell mit einem variablen Netzteil gesteuert.

Gestern hab ich mir überlegt einfach eine Temperaturgeregelte Steuerung/Regelung zu bauen, da ich eigentlich alle Bauteile da habe.

Das Einlesen der Temperaturwerte stimmen und falls man mittels eines Schalters auf "manuelle Steuerung" schaltet, sind auch die Werte des Potentiometers korrekt.

Von der Spannungsquelle aus (12V DC) geht es nach eine Verpolungs-Schutz Diode an einen LM2596 Schaltregler-Modul, dessen Potentiometer (10K Ohm) ich entfernt habe und ein Digitales Potentiometer (X9C103P) angeschlossen habe.
Am Ausgang des LM2596 sollen später zwischen 7V und maximaler Spannung (was aufgrund der EingangsDiode und des LM2596 bei 10,5V liegt) anliegen und die Lüfter damit angesteuert werden.

Das Arduino Nano ist an die variable 7V-MaxV Spannung angeschlossen und versorg über dessen 5V Ausgang zusätzlich den Temperatursensor und das Potentiometer zur manuellen Steuerung.

Um die Lüfter Ein- und Auszuschalten, möchte ich gerne einen Transistor verwenden.
Und hier verstehe ich nicht, warum das nicht funktioniert.

Ich habe mal ein "Power MOSFET Modul" gekauft (aber bisher nie benutzt), dass einen IRF520 verbaut hat. (Datenblatt)

Das V+ und das VIN dieses Moduls sind kurzgeschlossen.
Ich benötige aber nur den MOSFET des Moduls, das über V- mit dem MOSFET verbunden ist (Drain) und dessen Source auf GND liegt.

Die Lüfter sind am Pluspol mit dem Pluspol des LM2596 Verbunden und der Minuspol der Lüfter geht an V- des IRF520 Moduls. (zum Schutz des MOSFETs vor hohen Induktionsspannungen, ist eine Diode vom Lüfter-Minus- zum Lüfter-Plus-Pol geschaltet).

Jetzt wollte ich über D11 des Arduinos "einfach" das SIG des Moduls schalten (geht an Gate, allerdings auch über einen Widerstand auf GND und über eine Diode in Reihe mit einem Widerstand and GND), um die Lüfter einzuschalten.
Leider tut sich dann aber nichts.
Nicht mal die LED leuchtet.

Gemessen ist bei einem HIGH-Pegel dann 0,12V an SIG.
Unangeschlossen sind es 4,5V an Pin11.

Wenn ich nun den 5V ausgang des Arduinos nehme und auf SIG schalte, dann laufen die Lüfter.
Allerdings messe ich dabei einen Strom von ~800mA !

Da ich das alles etwas seltsam fand, habe ich noch einen BJT (BD139) getestet, den ich schon mehrfach zum ansteuern von (bis zu zwei) Lüftern genommen habe.
Dieser hat einen 150Ohm Widerstand verpasst bekommen und es passiert ebenfalls nichts bei den Lüftern, wenn ich D11 als Output nutze.

Kann mir jemand sagen, wass ich falsch mache?

Im Anhang ist noch ein Schaltplan des Ganzen.

Vielen Dank und liebe Grüße!

Wie du die Transistoren angeschlossen hast, ist schwer zu verstehen.
Das solltes du mal als Schaltbild posten.
Der Mosfet ist kein Logiclevel-Mosfet, daher reichen die 5 Volt des Arduino nicht zum durchsteuern aus.

Hallo,

du regelst die Spannung im/am DC/DC Wandler um die Lüfterspannung zu ändern?
Und damit versorgst du noch den Nano?
Ohne Worte!

Dein Stichwort ist PWM (Pulseitenmodulation) und nichts anderes für die Lüfterregelung.

Ja, ich regel die SPannung im/am DC/DC Wander um die Lüfterspannung zu ändern.
Ja ich versorge damit auch noch den Nano.
Da sowieso nur von 7- 10V geregelt wird und das alles im Vin-Bereich (7-12V) des Nanos liegt sehe ich da auch kein Problem.

Das Stichwort von dir bringt mir nichts, da ich mit PWM IMMER ein hochfrequentes Fiepen bekomme.
Das kann ich zwar durch andere Timer configs in unterschiedliche bereiche vershieben, aber es ist leider immer deutlich hörbar.

Bisher habe ich mich daher einem Glättungskondensator bedient, der mir aus dem PWM dann quasi wieder eine Gleichspannung macht. Damit ist der Lüfter dann wieder unhörbar, aber toll finde ich das auch nicht und auch schwierig bei 6 Lüfern umzusetzen.

Daher sollen meine DC Lüfter auch mit DC versorgt werden und nichts gepulstes bekommen.

Ich habe nochmal ein Bild gemacht, wo nur die Beschaltung vom BJT ist... der MOSFET ist im Prinzip genauso angeschlossen, allerdings fehlt da der Widerstand.

Zum IRF520 Modul habe ich hier gesehen, dass es angeblich auch so laufen soll.

Das 5V aber theoretisch doch für dem MOSFET ausreichen, zeigt ja der Versuch, wenn ich SIG des Moduls direkt an 5V des Arduinos, statt an D11 anschließe.
Dennoch ist der Strom zu groß.
Gleiches gilt auch für den BJT... da wird auch mit 890mA deutlich die Spezifikation eines Outputs gesprengt.

arduino2.png

Hallo,

okay, es soll auch Lüfter geben die mit PWM gar nicht klar kommen. Ist eher selten. Nun gut.
Das Bsp. mit dem IRF520 zeigt jedoch wieder, dass auch viel Müll im Internet verbreitet wird.
Wie Hotsystem schon schreibt, dass ist kein 5V tauglicher Logiklevel Mosfet. Das ist reiner Zufall wenn der funktioniert. Zum voll durchsteuern braucht der 10V. Mit 5V wird er nur etwas leitend. Kann bei kleiner Leistung reichen, aber sauber ist das nicht. Sein innerer Widerstand ist noch zu hoch. Und damit der Leistungsverlust an sich selbst. Sprich der Motor oder sonstwas was nach ihm kommt, bekommt nicht die volle Spannung.
Wenn du 890mA in der Arduino 5V Versorgung misst, dann haste einen Schaltungsfehler drin.
Würde darauf hindeuten das der Arduino alles versorgt und nicht der DC/DC Wandler.
Oder irgendein Kurzschluss drin? Mosfet verpolt?

Pin 11 ist auch Output?

Hmm das ist alles komisch.

Also momentan habe ich den BJT (BD139) vor dem IRF520 hängen... ich nutze also einen Transistor um einen MOSFET zu schalten.
Das funktioniert zwar, aber zufrieden bin ich damit nicht so richtig.

Die 890mA habe ich in der 5V Versorgung gemessen...
Wo allerdings der Schaltungfehler ist, sehe ich nicht.
Also zumindest in meinem Schaltbuild sollte doch zumindest alles so funktionieren, ohne dass das Arduino auf den 5V so belastet wird oder?

Momentan ist es auch noch so, dass ich bei Verbindung über USB und Stromzufuhr vom LM2596 alles gut funktioniert.
Sobald USB abgesteckt wird, dann scheinen die Werte vom Temperatursensor anders zu sein (der hat nen Kondensator dran zum buffen/glätten)...

Wird wohl ne längere Geschichte :frowning:

Leon333:
Hmm das ist alles komisch.

Also momentan habe ich den BJT (BD139) vor dem IRF520 hängen... ich nutze also einen Transistor um einen MOSFET zu schalten.
Das funktioniert zwar, aber zufrieden bin ich damit nicht so richtig.

Da würde ich ja gern mal das Schaltbild sehen.
Nimm einen LogicLevel Mosfet und es wird funktionieren.

Hallo,

sei mir nicht böse, aber aktuell verstehe ich gar nichts mehr. Was macht der BD139?
Da kannste den Mosfet auch weglassen und gleich den npn BD139 nehmen.
Auf jeden Fall stimmt deine Beschaltung mit dem Mosfetmodul nicht.
Auf dem Link sehe ich 6 Kabel, was logisch erscheint. In deinem Schaltplan nur 4.
Irgendwoher wird sich der Mosfet und damit der Lüfter seinen Strom holen, wahrscheinlich vom Arduino statt vom DC/DC Wandler.

Was macht der BD139?

Wahrscheinlich die Gate-Spannung anheben. Im Prinzip völlig ok, aber ein Leistungstransistor aus der BD-Serie ist da etwas fehl am Platz.

Hallo,

erstmal okay ja, aber wenn er die Ausgangsspannung des DC/DC Wandlers runterregelt nützt der npn auch nichts mehr. Mit 7V sicherlich noch okay, mit möglichen 5V nicht mehr okay. Er hat aus meiner Sicht 2 Aufgaben.
a) die Schaltung richtig anschließen, sodass der Lüfterstrom die richtige Quelle verwendet
b) entweder einen npn oder einen Logik Level verwenden

Ohne passenden Schaltplan tappen wir jedoch mit dem npn wieder im dunkeln. Vermutlich falsch beschaltet oder gar komplett ohne Widerstände. Reine Spekulation. Das hilft uns nicht weiter.

In meinem ersten Beitrag ist der Schaltplan.
Das Einzige was da fehlt ist der BD139, der die 7-10V vom DC/DC Wandler auf SIG des IRF520 zieht.

Doc_Arduino:
Hallo,

sei mir nicht böse, aber aktuell verstehe ich gar nichts mehr. Was macht der BD139?
Da kannste den Mosfet auch weglassen und gleich den npn BD139 nehmen.

Der BD139 selbst hat nicht genug power. Jedenfalls drehen dir Lüfter nur an und stoppen dann nach ca. 5 Sekunden und fangen dann auch nicht wieder an...
Nur wenn ich ihn eine Weile abkühlen lasse gehts wieder.
Daher wird der BD139 genommen um den IRF520 ausreichnd mit Spannung am Gate zu versorgen.

Doc_Arduino:
Auf dem Link sehe ich 6 Kabel, was logisch erscheint. In deinem Schaltplan nur 4.
Irgendwoher wird sich der Mosfet und damit der Lüfter seinen Strom holen, wahrscheinlich vom Arduino statt vom DC/DC Wandler.

In dem Schaltbild vom IRF520 Modul siehst du 6 Kabel, das ist richtig.
Ich brauche aber nicht unnötig Kabel verlöten/verlegen/verbrauchen, wenn ich die Lüfter in ihrem Pluspol mit dem Pluspol des LM2596 verbinde.

Die zwei zusätzlichen Kabel die du nämlich in dem Link siehst sind VIN und V+.
Diese sind allerdings Kurzgeschlossen.
Ob ich die Lüfter nun direkt am LM2596 anschließe, oder vom LM2596 eine Plus-Leitung zu VIN ziehe um vom V+ (kurzgeschlossen nach VIN) dann zum Pluspol der Lüfter gehe ist absolut das gleiche.

Wenn du trotz meiner Erklärung der Meinung bist, dass es einen unterschied macht, ob ich vom DC/DC Wandler direkt an Plus gehe oder vorher nur den Umweg über einen (unbeschalteten und von VIN nach V+ kurzgeschlossenen) puren Leiterbahn-Anschluss des IRF520 Treiber Moduls mache, dann zerplücke ich gerne nochmal die Schaltung.
Das Problem ist dennoch woanders.

@HotSystems: Ich habe nochmal das aktuelle Schaltbild sauber gezeichnet (also das erste Schaltbild + BD139).
Denke die bei dem IRF520 Modul einfach, SIG = Gate, V- = Drain und GND = Source.

VCC ist dort nirgens angeschlossen und VIN ist einfach nur eine Leiterbahn auf V+ ohne sonstige Verschaltung.

Leon333:
@HotSystems: Ich habe nochmal das aktuelle Schaltbild sauber gezeichnet (also das erste Schaltbild + BD139).
Denke die bei dem IRF520 Modul einfach, SIG = Gate, V- = Drain und GND = Source.

VCC ist dort nirgens angeschlossen und VIN ist einfach nur eine Leiterbahn auf V+ ohne sonstige Verschaltung.

Ok, das Schaltbild zeigt jetzt deinen gewollten Aufbau.

Das es mit dem BD139 funktioniert, ist aus meiner Sicht mehr Zufall, aber sicher ist es nicht.
Theoretisch dürfte das nicht funktionieren.
Müsste man direkt mal messtechnisch nachvollziehen.

Hallo,

man muss keinen Plan haben von der Schaltung und muss dennoch erkennen können das die Schaltung nicht stimmen kann. Denn wenn sie stimmen würde, dann würde sie funktionieren und du würdest nicht fragen. Also rede dir bitte nicht selbst ein das alles richtig ist. Das war jetzt sehr direkt, musste aber raus, sonst platze ich. Sorry.

Zum dem BD139. Kann so nicht funktionieren. Lass mal das "Mosfet Modul" weg und male dir den diskreten Schaltplan auf, wie der Mosfet mit dem BD139 und dem Lüfter verschalten ist. Vielleicht kommste dann schon selbst drauf. Auf jeden Fall ist es falsch. Ohne BD139 war es "richtiger".

Doc_Arduino:
Hallo,

man muss keinen Plan haben von der Schaltung und muss dennoch erkennen können das die Schaltung nicht stimmen kann. Denn wenn sie stimmen würde, dann würde sie funktionieren und du würdest nicht fragen. Also rede dir bitte nicht selbst ein das alles richtig ist. Das war jetzt sehr direkt, musste aber raus, sonst platze ich. Sorry.

Schon ok :slight_smile:
Mach dir ruhig direkt Luft. Ich bin ja nicht hier um "Recht" zu haben, sondern um Hilfe zu bekommen.
Ich sehe bloß einfach nicht, wo der/die Fehler ist/sind.

Ein offensichtliches Problem ist, dass es sich beim IRF520 nicht um einen LL-MOSFET handelt.
Der BJT alleine scheint bei der Belastung zu heiß zu werden, daher mein Umweg, den IRF520 mit dem BJT zu betreiben.
Das entsprechende Schaltbild von diesem Teil der Schaltung habe ich gerade gezeichnet und hochgeladen.
Wäre lieb, wenn du mir sagen könntest, was daran falsch ist.

Weil funktionieren tut es... allerdings nur, wenn ich per Netzteil UND USB verbunden bin.
Da fließen also irgendwo ströme, wo sie nicht hin gehören.

Meine Ideen um den Fehler herauszubekommen wären, dass ich an dem 5V Ausgang ne Diode schalte um sicher zu gehen, da da nur Strom raus fließt... (wobei ich das weniger glaube...)

Wahrscheinlicher ist für mich, dass über das VIN des Arduinos auch Strom raus geht und das LM2596 auf dessen Ausgangsseite versorgt. Ich könnte also auch an den OUT+ des LM2596 eine Diode anschließen um sicher zu gehen, das dort auf der "falschen Seite" Strom rein geht....

Elegant ist das aber nicht und ich habe 2 weitere male Spannungsabfälle.

Sauber könnte ich das Ganze natürlich machen, indem ich 2 LM2596 nehme.
Eins auf 5V for Arduino und Co. und eins variabel (über Digitales Poti), dass die Lüfter versorgt.
Dennoch wird da wahrscheinlich das Problem bleiben, dass ich das IRF520 Modul nicht ohne weiteres ansteuern kann und das BD139 alleine nicht reicht.

So oder so würde ich aber gerne wissen, was hier das Problem ist und warum es nicht funktioniert - um bei der Sache auch was zu lernen.

Wenn die skizzierte Schaltung funktionieren soll, musst du noch einen Widerstand zwischen Gate und Source schalten. Sonst reichen schon die Leckströme des Transistors aus um den Fet durchzusteuern. Wie schon geschrieben. Dass das geht, ist eher Zufall und hängt von Bauteiltoleranzen ab.

Wenn du das vernünftig machen willst:
Besorg dir einen IRLZ44N, IRLZ34N, oder einen anderen Logic Level Fet deiner Wahl. Den steuerst du über einen Widerstand mit direkt mit dem Arduino an und alles ist gut.

Leon333:
Ich sehe bloß einfach nicht, wo der/die Fehler ist/sind.

So oder so würde ich aber gerne wissen, was hier das Problem ist und warum es nicht funktioniert - um bei der Sache auch was zu lernen.

Dann solltest du einfach mal Datenblätter lesen.
Und nicht alles ignorieren was wir dir schreiben.

Und das deine Transistorschaltung funktioniert, ist wie schon geschrieben, reiner Zufall.

Die Basis des NPN-Transistors braucht ca. +0,7 Volt gegenüber dem Emitter, damit dieser richtig durchschaltet.
Wenn dieser durchschaltet, hat der Emitter in deiner Schaltung ca. 7 Volt und damit sperrt er normalerweise wieder. Also reiner Zufall das es funktioniert, wenn es funktioniert. :wink:
Besorge dir einen Logiclevel Mosfet und das funktioniert.

Hallo,

meine Meinung ist folgende. Bezogen auf den letzten kleinen Schaltplan.
Du denkst bestimmt, weiß ich nicht, ein Transistor ist ein reiner Schalter. ?
Das funktioniert jedoch so nicht. Man kann ihn nur als eine Art Schalter verwenden. Funktionstechnisch betrachtet. Direkt ersetzen geht jedoch nicht.

Auf die Schaltung nochmal. Eigentlich dürfte der BD139 nicht warm werden. Ins Gate fließt kein Dauerstrom. Kein Strom, keine Leistung, keine Wärme. Aber. Ich weiß nicht wie sich der Spannungsteiler npn B-E und G-S verhält. Irgendwas unbekanntes muss hier passieren, sonst würde der npn nicht warm werden. ?

Den npn würde ich jedoch anders verschalten, sonst bekommt das Gate im besten Fall auch nur 4,3V. Die 5V von der Basis minus 0,7V B-E. Für den nicht Logik-Level geht das sicherlich nicht in Ordnung.

Du machst mal folgendes um zu sehen ob der Mosfet noch lebt. Würde ich mal vorschlagen in die Runde.
Arduino und Gedöhns komplett raus. Nur Mosfet, Lüfter, Diode, ein Stück Draht und der DC/DC Wandler.
Dann stellste mal 10V ein und gehst mit dem Draht vom Gate einmal an +10V, Lüfter sollte laufen und Volmeter nahe 0 anzeigen und das Ampermeter den realen Strom.
Danach gehste mit dem Draht auf Masse, Lüfter sollte stehen bleiben und das Voltmeter volle 10V anzeigen. Strom 0mA. In beiden Fällen sollte der Mosfet auch kalt bleiben. Das wiederholste mit 7V.
Mosfet-Test.jpg

Danach würde ich den npn wie folgt einbauen. Draht von der npn Basis an 5V oder an Masse. Voltmeter sollte entweder volle Ub anzeigen oder nahe 0V. Besser wird das mit den Bauteilen nicht. Ob der Mosfet dabei sicher sperren kann, hängt davon ab wie gut die Sättigung vom npn ist. Die Schaltlogik ist damit nur umgedreht.
Mosfet_npn_Test.jpg

Wenn du dir noch einen Logik-Level kaufst, wie von Gunther aufgezählt und einen 10k Pulldown am Gate, dann biste immer auf der sicheren Seite. Und zwischen Arduino Pin und Gate noch einen Sicherheitswiderstand von 270 Ohm. Dann kannste schalten und walten wie du lustig bist.

Was meinen die anderen?

Das mit dem jetzigen Mosfet und npn kannste ruhig probieren, experimentieren macht schlau. Aber so baut das heutzutage niemand mehr auf. Nur zu Testzwecken wenn die Bastelkiste vielleicht leer ist am Wochenende.

Edit:
Bilder ausgetauscht, waren mir zu groß geraten

@Doc_arduino
Das sehe ich als gangbare Alternative.
Wobei ich immer noch zu einem Logiclevel-Mosfet tendiere.

HotSystems:
Wobei ich immer noch zu einem Logiclevel-Mosfet tendiere.

ja, klar, der Meinung bin ich auch. Das oben kann nur ein Test sein mit den vorhandenen Bauteilen.