Probleme mit Mosfets. Output nie komplett auf 0%

Blade01:
So ich hab nun alles versucht und ich steige auch nicht mehr so richtig durch jetzt.
.....
Ich glaube die Fet sind einfach nicht die richtigen.

Also wenn ich dann die IRF3708 verwende und alles mit 5V fahre sollte ich auf der sicheren Seite auch in hinblick auf die Leistung und Temoeratur?

So wie du es beschreibst, hat das nichts mehr mit dem Mosfet zu tun.
Du hast einen Schaltungsfehler, den du offensichtlich nicht findest.

Also zeig uns ein Bild deines Aufbaus.

Meiner Meinung hast Du die Anschlüsse des Mosfets vertauscht.
Gate ist nicht Gate.
Grüße Uwe

Hallo,

Blade01:
Hier her :wink: Adafruit .

Ja, das ist ein super Teil, umso komplizierter damit zu arbeiten. :wink:
Ich musste diese Erfahrung bereits machen, also nichts für ungut.

Wir kennen ja Dein Sketch nicht, aber die Standard Frequenz bei dem Breakout ist zB.: 1400Hz.

lg dony

dony:
Hallo,Ja, das ist ein super Teil, umso komplizierter damit zu arbeiten. :wink:
Ich musste diese Erfahrung bereits machen, also nichts für ungut.

Also ich fand es supereinfach, damit zu arbeiten. 4 Dräte anstecken, die Library funktioniert gut, fertig.

dony:
Wir kennen ja Dein Sketch nicht, aber die Standard Frequenz bei dem Breakout ist zB.: 1400Hz.

Na und? Das ist vielleicht nicht der Optimalwert für's lichtdimmen, aber es funktioniert problemlos.

Schließe mich an, da ist irgendwas falsch. Nach Bild Und Datenblatt sind die Pins allerdings richtig angeschlossen. "Nicht die richtigen" ist allerdings keine Erklärung. 0V Gate-Source ist aus, egal welcher n-channel MOSFET. Ich würde mal ein Multimeter nehmen und messen, welche Spannung wir am Gate haben (COM DIREKT am Netzteil) und welche am Gate. Vielleicht liegt Source nicht wirklich auf Ground.

Da der Fehler nicht an den Stellen steckt, die du uns gezeigt hast, und auch nicht an den Stellen die du geprüft hast, muss er woanders sein. Es wäre also angesagt, das zu zeigen, was du vor dir, und damit auch gleich vor uns, geheim hältst.

Hierzu muss ich leider sagen, dass ich ja nicht nur sequenziell alle Vorschläge von Euch abgearbeitet habe, sonder auch noch versucht habe die Ausgänge zu Gate und Source zu tauschen oder Drain und Source.
Das hat mich auch nicht auf den richtigen weg gebracht. Nebenbei hab ich es noch mit einen anderen Mosfet getestet und da ging es ohne Probleme obwohl es ein SMD war und ich an die Beinchen gerade so die klemmen gekriegt habe.

Ja, das ist ein super Teil, umso komplizierter damit zu arbeiten. :wink:
Ich musste diese Erfahrung bereits machen, also nichts für ungut.

Ich hab auch eine Weile gebraucht um die zum laufen zu kriegen. Die Adafuit Library finde ich aber scheiße. Bin zu einer gewechselt, wo eine Lockup Table integriert ist für eine bessere Fade Kurve.

Schließe mich an, da ist irgendwas falsch. Nach Bild Und Datenblatt sind die Pins allerdings richtig angeschlossen. "Nicht die richtigen" ist allerdings keine Erklärung. 0V Gate-Source ist aus, egal welcher n-channel MOSFET. Ich würde mal ein Multimeter nehmen und messen, welche Spannung wir am Gate haben (COM DIREKT am Netzteil) und welche am Gate. Vielleicht liegt Source nicht wirklich auf Ground.

Heute Abend werde ich das dann auch noch mal durchmessen. Danach werde ich die ganze Schaltung auseinander nehmen und wieder zusammen stecken aber so, dass man auf einem Foto auch was nachvollziehen kann ;-). Aktuell ist es nicht so.

Allerdings würde ich gerne heute schon die Fets bestellen, damit die pünktlich zum Wochenende da sind.

Würde dann also die IRF3708PBF oder noch Einwende bzw. alternativen?

Hallo nochmal,

Ich hab Deine Schaltung so gut wie es ging nachgebaut, allerdings das Adafruit Shield und einen rmf520 n-MOSFET (hab keinen TO220) verwendet.

Also bei 5 Volt Betriebsspannung, schaltet der koplett ab! Bei 3,3 Volt nicht! Was spricht gegen 5 Volt?

lg dony
PS: Das mit der Frequenz passt schon, aber wenn wir Dein Sketch hätten, könnte Dir besser geholfen werden. IMHO

Hallo Donny,

gegen 5V spricht eigentlich nichts. Habe gestern bereits auf 5 V umgestellt, dass hatte aber auch keinen erfolg. Was für einen Mosfet hast Du denn genommen?

Moment warum soll Drain auf + ? Ich schalte doch GND zur LED nicht + oder nicht?

dony:
Also bei 5 Volt Betriebsspannung, schaltet der koplett ab!

Was meinst du damit ?

Der Mosfet soll bei 5 Volt komplett durchschalten, also einen Durchgang haben.

lg dony
....
edit: In Deiner Fritzing Zeichnung ist Drain mit GND verbunden, der gehört natürlich auf + :wink:

Generell sind Fritzing-Schaltungen Mist und schwer zu lesen. Ein vernünftiges Schaltbild sagt mehr aus.

Aber: Sieh dir das mal genau an und vergleiche mit dem Datenblatt.
Der Source-Pin geht an GND und Drain geht an die Led.
Somit ist das richtig.

HotSystems:
Was meinst du damit ?

Der Mosfet soll bei 5 Volt komplett durchschalten, also einen Durchgang haben.

Der To hat in der Fritzing zeichnung und auch gesagt das er Vcc an den 3v3 Pin anschließt. Da ich das Shield verwende, hab ih den Pin weggeknickt und 3v3 mit 5 Volt am Shield verbunden. -> hat nicht mehr Funktioniert.

Das hab ich im Datenblatt übersehen, Danke! Ich hab hier zwar einen TO-220 P-CH rumliegen aber im Datenblatt des TO steht N-Channel.

edit:
Wenn Du die Adafruit lib verwendest schaltet er mit dieser Zeile komplett ab:
pwm.setPWM(servonum, 0, 4096); // komplettes aus
Bei mir nur mit 5 Volt Vcc. Ich versuche nochmal etwas...

lg dony

dony:
Der To hat in der Fritzing zeichnung und auch gesagt das er Vcc an den 3v3 Pin anschließt.....

Also bezieht sich deine Aussage auf das Shield ?
Dennoch verstehe ich nicht, was du mit "schaltet er komplett ab" meinst.

Bitte drücke dich doch etwas genauer aus.

Hallo, ja meine Aussage bezieht sich auf das Shield, ich bin kein Profi aber das Shield ist vom Aufbau zum breakout sehr ähnlich. Ich hab allerdings auch das breakout, nur müssen die Pins noch gelötet werden und das geht leider im Moment nicht.

Dennoch verstehe ich nicht, was du mit "schaltet er komplett ab" meinst.

Sorry, da ich mich wahrscheinlich wieder falsch ausdrücken werde, versuche ich es anders.

Im Beispiel Sketch der Adafruit lib gibt es das Beispiel 'gpiotest', das funktioniert mir, auch die anderen Beispiele.
Was ich meine auch bei einem 0% Duty-Cycle messe ich am MOSFET (Source) ein paar mV.

Oszi: Ein paar mV -> 4,5 Volt (an/aus).

Ich will ja wirklich nur helfen und vielleicht selber etwas lernen aber schön langsam verliere ich den Durchblick. :confused: Leider hab jetzt nicht mehr viel Zeit (am Nachmittag bin ich wieder online). Ich poste gerne Fotos meiner Schaltung und zeig die aktuelle Sketches wenn gewünscht aber ich Blick, zumindest im Moment leider selber nicht mehr durch.

@Blade01: Sorry, das war mein Fehler (HotSystems hat es bereits erklärt).
edit: Ich habe einen irf520 N-MOSFET verwendet, der ist beim Original Arduino Starter Set dabei.

lg dony

Ich will ja wirklich nur helfen und vielleicht selber etwas lernen aber schön langsam verliere ich den Durchblick. :confused: Leider hab jetzt nicht mehr viel Zeit (am Nachmittag bin ich wieder online). Ich poste gerne Fotos meiner Schaltung und zeig die aktuelle Sketches wenn gewünscht aber ich Blick, zumindest im Moment leider selber nicht mehr durch.

Ich finde das schon ganz erstaunlich welche Mühe Du Dir gibst. Vielen Dank dafür.

Ich nutze übrigens die Library von Brunnels
Finde die am besten für meine zwecke geeignet, weil die wie gesagt eine optimierte Fadecurve eingebaut hat. Diese hier .

Problem ist nur, der Liebe Herr Brunnels hat irgendwann mal die Variablen geändert den Example Code aber nicht angepasst. Deswegen lief es erst nicht.

Ist kein Problem,

Ich kämpfe ja auch mit diesem Shield/Breakout aber wenn es um Servos geht. :wink: Danke für den Link! Werde ich mir auch anschauen.

lg dony

Hallo,

ein IRF520 ist im Starterset enthalten? Ist ja unglaublich was die alles für Unsinn reinpacken. Weil kein LogicLevel Typ.
Aber sperren muss er dennoch, dass kann er unabhängig davon sehr gut.
Einfacher Testaufbau ohne jeden Arduino oder sonstwas.

"Arduinopin" und "R4" lässte weg. Nur den 10k Pulldown zwischen Gate und Source. Dann muss er 100% sperren. Wenn er das nicht macht, überbrücke mit einem Draht den 10k Pulldown. Wenn er dann immer noch nicht 100% sperrt ist er kaputt.

Relais_schalten.jpg

Relais_schalten.jpg

Hallo nochmal,

@Doc_Arduino: Danke! Ich hab Deinen Schaltplan probiert, aber das hat nicht so ganz geklappt. :confused:

@Blade01: Hoffentlich habe ich die Lösung gefunden!?

@HotSystems: Hoffentlich drücke ich mich verständlich aus.

In der Früh hab ich den Wald vor lauter Bäumen nicht mehr gesehen. Ich habe das ganze jetzt nochmal getestet und gemessen. :slight_smile:

Grundsätzlich ist es egal ob Vcc =3,3 Volt oder Vcc = 5 Volt. Das PWM Signal übernimmt die Spannung von Vcc.
Aber was mir auch nicht ganz klar ist, veranschaue ich lieber mit einem Schaltplan. Leider nicht besonders schön aber man sollte den Abschnitt verstehen. Ich kann den Plan auch am Computer zeichnen. Ich hab den wichtigsten Teil ausgeschnitten, aber nicht mit der Schere :wink:

Entgegen meiner Erwartung, funktioniert der Schaltplan von Doc_Arduino nicht mit dem Adafruit Breakout.

Der rechte Schaltplan funktioniert einwandfrei mit einer LED. Sowohl Dimmen als auch Ein/Aus-Schalten.
Beim linken Schaltplan, scheint es keine Logik (er macht irgendwas) zu geben. Dimmen funktioniert allerdings solange man unter ca. 400Hz bleibt, bei 50Hz wird es wieder eng, sprich: Die sichtbare Dimm Phase ist sehr kurz.
Wenn ich mal stabile Werte sehe, ist die Kurve grauenhaft, tut aber was im Sketch steht.

Ich habe als N-MOSFET einen IRF520.

Ich habe folgende zwei Sketches, die ich aus den Beispiel Dateien abgeändert und für die Tests verwendet.
Ein/Aus:

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

// called this way, it uses the default address 0x40
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x42);
// you can also call it with a different address you want
//Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x41);
// you can also call it with a different address and I2C interface
//Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(&Wire, 0x40);

byte pin = 0;
void setup() {
  Serial.begin(9600);
  Serial.println("GPIO test!");
  

  pwm.begin();
  pwm.setPWMFreq(400);  // Set to whatever you like, we don't use it in this demo!

  // if you want to really speed stuff up, you can go into 'fast 400khz I2C' mode
  // some i2c devices dont like this so much so if you're sharing the bus, watch
  // out for this!
  Wire.setClock(400000);
}

void loop() {
    Serial.println("AN:");
    pwm.setPWM(pin, 4096, 0);       // turns pin fully on
    delay(2000);
    Serial.println("AUS:");
    pwm.setPWM(pin, 0, 4096);       // turns pin fully off
    delay(2000);
}

Und den folgenden Sketch zum Dimmen:

/*
 *  Test Programm - Pin Messung
 */
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

// called this way, it uses the default address 0x40
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x42);

#define SERVOMIN  0 // this is the 'minimum' pulse length count (out of 4096)
#define SERVOMAX  4096 // this is the 'maximum' pulse length count (out of 4096)

void setup() {
  Serial.begin(9600);
  Serial.println("Pin 0 Test Messungt!");
  pwm.begin();
  pwm.setPWMFreq(1000);
  delay(10);
}
void loop() {

  for (uint16_t pulselen = SERVOMIN; pulselen < SERVOMAX; pulselen++) { // duty-cycle = 0%,..,100%
    pwm.setPWM(0, 0, pulselen);  // setze auf Pin 0 ein duty-cycle von pulselen 
  }

  for (uint16_t pulselen = SERVOMAX; pulselen > SERVOMIN; pulselen--) {
    pwm.setPWM(0, 0, pulselen);
  }
}

Da mich das, wie bereits gesagt, selber sehr interessiert habe ich Oszilloskop Screenshots gemacht und hänge zwei an (rechter Schaltplan!) <- Bei mir schaltet eine LED ein/aus oder kann gedimmt werden.

Frage an die Profis unter euch: Ist der rechte Schaltplan die richtige Lösung?
Die Screenshots vom Oszilloskop sind an Drain (Output) gemessen.

lg dony

Entgegen meiner Erwartung, funktioniert der Schaltplan von Doc_Arduino nicht mit dem Adafruit Breakout.

Jetzt wo ich den Code und das Tutorial sehe, fällt mir auf, dass dort nicht der FET Driver Output des Boards aktiviert wird.

Ich finde, diesen Driver sollte man aktivieren.

--

Aber dennoch muss ein FET sperren, wenn sein Gate auf GND gezogen wird.

Frage an die Profis unter euch: Ist der rechte Schaltplan die richtige Lösung?
Die Screenshots vom Oszilloskop sind an Drain (Output) gemessen.

Ich bin zwar kein Profi, jedoch würde ich sagen die Linke Version ist richtig. Warum die Rechte bei Dir funktioniert kann ich ehrlich gesagt nicht sagen, weil ich es noch nicht geprüft habe.

@ Doc_Arduino

"Arduinopin" und "R4" lässte weg. Nur den 10k Pulldown zwischen Gate und Source. Dann muss er 100% sperren. Wenn er das nicht macht, überbrücke mit einem Draht den 10k Pulldown. Wenn er dann immer noch nicht 100% sperrt ist er kaputt.

Ich habe jetzt gestern noch mal alles neu Aufgebaut und siehe da ,mit Deinem Testaufbau habe ich nun es nun geschafft, dass die Mosfets komplett sperren. Jedoch nicht alle, zwei von sechs sind kaputt die sperren nicht mal wenn ich Gate gegen GND ziehe.

Ich habe die Schaltung jetzt jedoch ohne Widerstände aufgebaut und die Mosfets die ok sind sperren trotzdem zuverlässig bei einer PWM Spannung von Breakoutboard von 5 Volt. Kann ich die eigentlich auch weg lassen oder wäre es wesentlich besser diese mit einzubauen?

Jetzt wo ich den Code und das Tutorial sehe, fällt mir auf, dass dort nicht der FET Driver Output des Boards aktiviert wird.

Ich finde, diesen Driver sollte man aktivieren.

Warum ? Welchen vorteil würde das bringen?

Blade01:
Ich bin zwar kein Profi, jedoch würde ich sagen die Linke Version ist richtig. Warum die Rechte bei Dir funktioniert kann ich ehrlich gesagt nicht sagen, weil ich es noch nicht geprüft habe.

Das stimmt, die linke Schaltung ist die Richtige.
Das die Rechte funktioniert, ist mehr oder weniger Zufall. Wenn der Spannungsabfall über Led und Vorwiderstand zu groß wird, reicht die Gatespannung nicht mehr um den Mosfet durchzusteuern.

Ich habe die Schaltung jetzt jedoch ohne Widerstände aufgebaut und die Mosfets die ok sind sperren trotzdem zuverlässig bei einer PWM Spannung von Breakoutboard von 5 Volt. Kann ich die eigentlich auch weg lassen oder wäre es wesentlich besser diese mit einzubauen?

In deinem Fall kannst du die Gate-Widerstände weglassen, diese befinden sich schon lt. Datenblatt auf dem Board.

Hallo,

Auch von mir ein herzliches Dankeschön für die Antworten!

Ich war eigentlicg auch davon ausgegangen das der linke Plan stimmt, da ich es ja bereits gemacht habe aber mit einem Motor und Relais. Für LEDs hab ich normale NPN Transistoren verwendet (hatte noch kein Projekt mit vielen LEDs)

Ich hab nocheinmal bei null begonnen und nur versucht die LED ein/aus zuschalten über das Arduino, nicht einmal das funktioniert. Dabei habe ich mich nach den linken Schaltplan bzw. an den von Doc_Arduino gehalten aber ich bekomme es nicht hin.

So schaut meine Verkabelung aus:
led_mosfet.png
Es handelt sich um einen n-MOSFET: IRF520
Ich habe es auch mit einem TIP120 versucht.

Bei dieser Schaltung leuchtet die LED immer
Wenn ich Gate -> Masse = leuchtet die LED weiter.
Wenn ich Gate -> + = leuchtet weniger hell.

Ist im Prinzip nur das Blink Beispiel mit einer for Schleife

Das Sketch dazu:

int led = 9;

void setup() {                
  // initialize the digital pin as an output.
  Serial.begin(9600);
  Serial.println("Arduino MOSFET Test");
  pinMode(led, OUTPUT);     
}
void loop() {
  Serial.println("for");
  for(int i=0; i>255; i++) {
    Serial.println(i);
    analogWrite(led, i);
  }

  Serial.println("HIGH (5 sec.)");
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(5000);               // wait for a second
  Serial.println("LOW (5 sec.)");
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(5000);               // wait for a second

}

Vielleicht wäre jemand so nett und kann mir erklären was ich Falsch mache, ich wäre euch sehr Dankbar.
Natürlich frue ich auch für Links, Tipps oder Hinweise.

lg dony

led_mosfet.png

dony:
Vielleicht wäre jemand so nett und kann mir erklären was ich Falsch mache, ich wäre euch sehr Dankbar.
Natürlich frue ich auch für Links, Tipps oder Hinweise.

Du hast auf deinem Fritzing-Bild (deswegen ist Fritzing Mist) auch Drain und Source vertauscht.

N_Mosfet.png

Auszug aus einem Datenblatt.