Mosfet (IRF540N) resettet Arduino Nano

Moin !

Ich bin langsam am verzweifeln. :~ Habe hier einen Arduino Nano. Dort nutze ich 3 Ausgänge (D9,D10,D11) als PWM Ausgänge und steuere damit 3 Mosfets an (IRF540N). Die Mosfets sollen LED Ketten dimmbar machen.

Ich teste das gerade mit einer Autolampe (H4) mit irgendwas um 50W. Eine Stufe läuft perfekt. Ich kann die Helligkeit über ein Poti einstellen (Potiwert wird gelesen und in PWM umgemünzt). Nur die anderen beiden Stufen führen dazu das der Nano einen Reset macht. :astonished:

Die Stufen sind alle gleich aufgebaut. Gate liegt über 100Ohm an einem der 3 PWM Ausgänge. 18k von Gate auf Source. Source liegt auf Masse, Drain kriegt den - Pol der LED Kette und der + Pol der Kette hängt an 12V. Im Grunde so wie hier: http://arduino-info.wikispaces.com/Brick-4ChannelPowerFetSwitch nur das ich keine Optokoppler nutze.

Das verrückte an der Sache ... Wenn ich an die beiden Stufen die nicht funktionieren eine kleine Glühbirne anschließe dann gehts ... Auch eine LED lässt sich super einstellen. Aber eine größere Last führt zum Reset.

Hat jemand ne Idee was das sein könnte? FET defekt möchte ich mal fast ausschließen. Habe einen neuen FET testhalber eingelötet - Ergebnis bleibt.

am Kopf kratz

Dominik

Wie sieht deine Dimensionierung der Versorgunsspannung aus? Ich tippe darauf, dass der Nano die Spannung mitnutzt. Sobald MOSFET 2 und 3 zuschalten, geht dein Netzteil in die Knie soweit, dass die Spannung unter der Spezifikation des Nanos liegt. Evtl. einfach ein Bild der Verdrahtung anhängen.

Moin !

Ne das wird es nicht sein. Ich teste alle Stufen einzeln - nicht zusammen.

Und wie gesagt bei Stufe 3 kann ich voll aufdrehen. Hänge ich die gleiche Last an 1 oder 2 resettet der Controller.

Schaltung kann ich später mal posten. Und ja, die 12V gehen auch direkt an den Arduino.

Wie immer kann auch ein Blick auf den Sketch nicht schaden.

Moin !

Ok hier schon mal der Sketch:

int sensorPin = A7;    // select the input pin for the potentiometer
int ledPin1 = 9;      // select the pin for the LED
int ledPin2 = 10;      // select the pin for the LED
int ledPin3 = 11;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor
int led = 13;

void setup() {
  Serial.begin(9600);
  // declare the ledPin as an OUTPUT:
//  pinMode(ledPin1, OUTPUT);  
//  pinMode(ledPin2, OUTPUT);  
//  pinMode(ledPin3, OUTPUT);  
  pinMode(led, OUTPUT); 
}

void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);  
  sensorValue = map(sensorValue, 0, 1023, 0, 255);     // scale it to use it with the servo (value between 0 and 180)
  if (sensorValue > 250) { sensorValue == 250; }
  analogWrite(ledPin1, sensorValue);    
  analogWrite(ledPin2, sensorValue);    
  analogWrite(ledPin3, sensorValue);    
  Serial.println(sensorValue);
  delay(10);                  
  digitalWrite(led, !digitalRead(led));
}

Ich tippe immernoch auf HW.

Der IRF540N ist kein Logic Level MOSFET. Deshalb schaltet er bei 5V Gatespannung nicht völlig durch. Eine Glühlampe, noch mehr einen Halogenlampe haben im kalten Zustand einen sehr kleinen Widerstand. Da ist der Einschaltstrom leicht 10 mal größer als der Nennstrom. Jetzt hast Du gar nicht beschrieben wie Du die Lampe und den Arduino versorgst. Ich tipe mal aus den gleichen 12V Versorgungsspannng.

Der Mosfet der funktioniert braucht wahrscheinlich eine größere Gatespannung um ganz durchzuschalten und begrenzt darum den Strom der Lampe und somit den Spannungseinbruch beim Einschalten.

Mit welchem 12V Netzteil/Batterie versorgst Du die Schaltung?

Grüße Uwe

Moin Uwe,

U MADE MY DAY :smiley:

Da ich nicht unbedingt einen Widerstand in den Leistungskreis bauen wollte - zwecks Strombegrenzung - habe ich einen 1000µF / 40V Elko an die 12 V Versorgung mit angeschlossen. Und siehe da … Alle Stufen laufen - auch mit der 12V Autolampe.

Da die Schaltung später nur LED Ketten ansteuert sollte nun alles passen. 8)

Grüße Dominik

Erstmal Glückwunsch, dass es läuft!

Eine Autoglühbirne zieht im Einschaltmoment einen ca 10mal höheren Strom als normal. Das ist bei einer 50 Birne eine Puls von 40A! Dagegen hilft nun dein Elko.

Gate liegt über 100Ohm an einem der 3 PWM Ausgänge

100 Ohm sind etwas knapp. Auch hier gilt es die Einschaltpulse zu beachten. Hier sind es 50mA.
Zwar nur ein kleiner µs Puls, aber einfach sehr viel für den Arduino.
Besser wäre es, etwas höhere Werte zu nehmen.

Moin !

Autoglühbirne

Nuja, die ist ja nur zum Testen dran. Das ist der Worst Case und wird später so nie genutzt. Ein FET muss demnächst ~20W schalten und dann auch nur LEDs.

Aber sollte es wiedererwartend doch noch zu Problemen kommen kann ich auch die Gates noch etwas anpassen. Danke für den Hinweis !

Nimm aber einen Logic Level MOSFET. Grüße Uwe