DC Motor mit PWM Drehzahl regeln

Hallo bin neu im Forum und brauche eure Hilfe!

Ich will einen Gleichstrommotor ansteuern mit einem Arduino UNO. Dazu habe ich eine kleine Schaltung aufgebaut mit einem FET (IRLZ34n).
Mit einem kleinen Motor (5V/1W) funktioniert das super. Schließe ich jedoch einen stärkeren Motor (Modelcraft 50W/7,2V) an, so wird der FET innerhalb von ein paar Sekunden sehr warm.
Warum?
Batterie (Lipo AKku 7,5V [HD-2500/2S]).
Wäre super wenn mir einer helfen könnte.
Gruß Durban :slight_smile:

int PWM_Pin = 3;
int pwm_value = 0;

void setup() {


  Serial.begin(9600);

    pinMode(PWM_Pin, OUTPUT);
    pinMode(pwm_value, INPUT);
}

void loop() {
  
  int Potiwert = analogRead(pwm_value);
  Serial.println(Potiwert);
  analogWrite(PWM_Pin,Potiwert/4);
  delay(500);
  
}

Durban:
... kleinen Motor (5V/1W) ...
... stärkeren Motor (Modelcraft 50W/7,2V)
Warum?

Beim kleinen Motor fließt ein Strom von max. 0,2 Ampere (I=P/U, Strom=Leistung/Spannung), beim großen sind es knapp 7 Ampere. Der Unterschied beträgt rund Faktor 35, das ist nicht gerade wenig.

Wenn das Bauteil auch über eine längere Zeit funktioniert, obwohl es warm wird, ist das evtl. gar kein Problem. Wenn Du Bedenken hast, nimm einen Kühlkörper.

Gruß

Gregor

Deine Rechnung ist falsch. Der Anlaufstrom bzw Kurzschlußstrom kann erheblich höher als der Nennstrom sein.

Ein MOSFET erwärmt sich durch den Spannungsabfall durch den ON-Widerstand zwischen Source und Drain multipliziert mit dem Strom. Des weiteren erfolgt der Übergang vom leitenden zum nichtleitenden Zustand nicht unendlich Schnell und somit gibt es hier auch Verluste.

Grüße Uwe

uwefed:
Deine Rechnung ist falsch. Der Anlaufstrom bzw Kurzschlußstrom kann erheblich höher als der Nennstrom sein.
Ein MOSFET erwärmt sich durch den Spannungsabfall durch den ON-Widerstand zwischen Source und Drain multipliziert mit dem Strom. Des weiteren erfolgt der Übergang vom leitenden zum nichtleitenden Zustand nicht unendlich Schnell und somit gibt es hier auch Verluste.

Naja, meine Elektronik-Denke ist ziemlich einfach gestrickt. Die Richtung, in die ich denke, ist zwar oft halbwegs richtig, aber am Ziel liege ich hin und wieder ziemlich daneben. Ich hoffe, dass sich das noch ändert :slight_smile:

Gruß

Gregor

Dass passt schon.

Rechnen wir das doch mal durch.

Annahmen:
1.) PWM frequenz < 1kHz (dynamische Verluste vernachlässigbar)
2.) Ansteuerung niederohmig mit 5V
3.) Freilaufdiode am Motor.

Dann kommen wir zu folgenden Werten (100% PWM, Dauerlast):
Motorstrom 7A
RdsON = 0,046 Ohm

Verlustleistung Pv = 7A * 7A * 0,046 Ohm = 2,25 W

Erwärmung:
Wärmewiderstand des Fets ohne Kühlkörper RthJA=62 °C/W

Erwärmung dT = 2,25W * 62°C/W = 140°C
Bei einer Raumtemperatur von 20°C macht das ca. 160°C Gehäusetemperatur.
(für die Eingeweihten: die ca. 5°C Junktion-Gehäuse ignoriere ich hier mal)

Das ist sehr heiss, aber noch im erlaubten Bereich.

wenn allerdings der Strom nur etwas höher wird, z.B. bei höherer Last oder im Anlauf, dann wird dir dein FET abrauchen.

FAZIT: Alle ist soweit in Ordnung, aber dein FET braucht einen Kühlkörper!

Dazu reicht bereits ein kleiner mit z.B. 10°C/W.

Das rechnet sich dann so:

dT = (Rthjc + Rth_Kühlkörper) * PV
dT = (2,2°C/W + 10 °C/W) * 2,25 = 27°C

So kannst du dir deinen Kühlkörper selbst errechnen.

Grüße

Gunther

guntherb:
... Rechnen wir das doch mal durch. ...

Klasse! Ich werde wohl noch eine Weile brauchen, bis ich das alles nachvollziehen konnte, aber ich hab’s nicht eilig.

Weiß zufällig jemand, ob ich dazu auch etwas in meinem „Art of Electronics, 3rd“ finde? Im Stichwortverzeichnis fand ich weder unter „cool ...“ noch unter „temperature ...“ etwas Hilfreiches. Auch eine Webseite wäre interessant.

Gruß

Gregor

schau dir das mal an

Waermewiderstand.pdf (60.4 KB)

ardubu:
schau dir das mal an

Sieht super aus – vielen Dank!

Gruß

Gregor

Art of electronics kenne ich nicht.

Das ganze teilt sich in 2 Teilbereiche auf:

a) die Berechnung der Verlustleistung im Transistor
b) die Berechnung der Kühlung

für a) die Berechnung der Verlustleistung im MOSFET findest du, wenn du eben nach "mosfet verlustleistung berechnen" o.ä. suchst. Aber ist es etwas kompliziert. wenn du allerdings den MOSFET mit den typischen Arduino-Frequenzen (<1Khz) betreibst, kannst du die dynamischen Schaltverluste eher vernachlässigen. (niederohmige Ansteuerung ca. 150 Ohm vorausgesetzt). Die Verlustleistung entsteht dann nur noch durch den ON-Widerstand.

für b) die Berechnung der Kühlung wirst du fündig, wenn du nach "Kühlkörperberechnung" suchst.

guntherb:
Das ganze ...

Danke! Ardubu war in #6 auch schon sehr hilfreich.

Gruß

Gregor

Hallo guntherb!

Danke für deine schnelle Rückmeldung war momentan nicht im Lande daher meine etwas späte Reaktion.
Deine Antwort hat mir sehr geholfen, was ich aber nicht verstehe ist das der IRLZ34N laut Datenblatt 30A schafft, jedoch schon bei einer Belastung von 18A/7,5V in kurzer Zeit (2 Sekunden) sehr heiß wird?
Meine zweite Frage ist welchen LOGIC FET ich verwenden soll um diesen Motor

(https://www.amazon.de/HMParts-Elektro-Motor-2750RPM-Scooter/dp/B00RCUVKA0/ref=sr_1_12?s=automotive&ie=UTF8&qid=1473886998&sr=1-12&keywords=hmparts+elektro+motor)

300W/24V mit PWM anzusteuern?

Vorab vielen Dank für ihre Hilfe!
Gruß durban :wink:

Meine zweite Frage ist welchen LOGIC FET ich verwenden soll um diesen Motor

(https://www.amazon.de/HMParts-Elektro-Motor-2750RPM-Scooter/dp/B00RCUVKA0/ref=sr_1_12?s=automotive&ie=UTF8&qid=1473886998&sr=1-12&keywords=hmparts+elektro+motor)

300W/24V mit PWM anzusteuern?

Du könntest z.B. einen IRLZ44N nehmen, aber auch den mit einem Kühlkörper

Durban:
Hallo guntherb!

Danke für deine schnelle Rückmeldung war momentan nicht im Lande daher meine etwas späte Reaktion.
Deine Antwort hat mir sehr geholfen, was ich aber nicht verstehe ist das der IRLZ34N laut Datenblatt 30A schafft, jedoch schon bei einer Belastung von 18A/7,5V in kurzer Zeit (2 Sekunden) sehr heiß wird?
Meine zweite Frage ist welchen LOGIC FET ich verwenden soll um diesen Motor

(https://www.amazon.de/HMParts-Elektro-Motor-2750RPM-Scooter/dp/B00RCUVKA0/ref=sr_1_12?s=automotive&ie=UTF8&qid=1473886998&sr=1-12&keywords=hmparts+elektro+motor)

300W/24V mit PWM anzusteuern?

Vorab vielen Dank für ihre Hilfe!
Gruß durban :wink:

Wenn steht das ein Teil bestimmte Ströme schafft heist das nur, das Ströme über diesem Wert sich auch mit Kühlung nicht schnell genug wegbringen lassen und das Bauteil sicher zerstören. Also heist das wenn da steht 30A das man die 30A nur schafft, wenn die im Datenblatt stehenden Bedingungen eingehalten werden. Dort kann man dann Kühlleistung und Umgebungstemperatur erfahren für die das gilt.

In der Luft hängend schaffen solche kleinen Bauteile kaum 1W abzuführen. Mit Auflöten auf Kupferflächen schaffen sie mehr, aber ihre Grenzbereiche schaffen sie nur wenn größere Kühlflächen/Kühlkörper vorhanden sind. Oder der Strom nur sehr kurz fliest, weil thermische Energie sich langsam bewegt im Verhältniss zur Elektrischen.

Allerdings auch nicht erschrecken wenn dann FET über 100Grad warm werden, manche sind sogar bis 150grad ausgelegt. Und dann schaffen sie bei normalen Umgebungstemperaturen auch 3-4W abzuführen ohne viel Aufwand.

Um deine 300W/24V zu treiben, würde ich in jedemfall deutlich überdimensioniert arbeiten, bis du Erfahrung gesammlt hast. Allerdings sind 30A da durchaus brauchbar. Besorg dir mal dickeres Kupferblech, so 1mm, so kannst dir immer schnell damit was zurecht biegen um das als Kühlfläche zu nutzen und den FET drauf löten.

Wichtig ist auch auf den Innenwiderstand des FETs zu achten- wenn der gering ist fällt auch wenig Leistung an ihm ab...

Durban:
... was ich aber nicht verstehe ist das der IRLZ34N laut Datenblatt 30A schafft, jedoch schon bei einer Belastung von 18A/7,5V in kurzer Zeit (2 Sekunden) sehr heiß wird?

Chefin hat schon einiges geschrieben.

Ein FET hat verschiedene Grenzen. z.B. Spannung (UDS, UGS), Strom (ID), Temperatur (TJ) etc. Wenn EINE dieser Grenzen überschritten wird, führt das zur Zerstörung des FET. Legst du z.B. eine zu hohe Gatespannung UGS an, dann werden die internen Strukturen zerstört. Eine zu hohe Gatespannung muss durch eine geeignete Beschaltung verhindert werden.

Ebenso eine zu hohe Temperatur: Die muss durch eine geeignete Kühlung verhindert werden.
Wie du den Kühlkörper berechnest, habe ich ja oben in Post #4 schonmal kurz beschrieben.

Durban:
Meine zweite Frage ist welchen LOGIC FET ich verwenden soll um diesen Motor

(https://www.amazon.de/HMParts-Elektro-Motor-2750RPM-Scooter/dp/B00RCUVKA0/ref=sr_1_12?s=automotive&ie=UTF8&qid=1473886998&sr=1-12&keywords=hmparts+elektro+motor)

300W/24V mit PWM anzusteuern?

Im Datenblatt steht was von 15A.

Der IRLZ34N hat laut Datenblatt bei UGS=5V einen RDSon=46mR.

Verlustleistung PV=46mR * 15A² = 10,3W

Nehmen wir mal einen Kühlkörper mit 5°C/W.

Dann haben einen gesamten Thermischen Widerstand von
Rth = RthKühlkörper + RthMontage + RthJC = 5°C/W + 1°C/W + 2,2°C/W = 8,2°C/W
Das ergibt eine Erwärmung von dT = 8,2°C/W * 10,3W = 85°C. Bei Raumtemperatur also ca. 105°C, da ist noch Luft nach oben.

Soweit die einfache Rechnung.

Aaaaaber!
Woher wissen wir, dass nicht mehr als 15A fließen?
Was passiert, wenn der Motor blockiert wird?
Was passiert bei Kurzschluss?

Üblicherweise werden bei Endstufen dieser Leistungsklassen Schutzmaßnahmen mit eingebaut, z.B. Kurzschlussschutz, Überlastungsschutz etc.
Die Endstufe muss dann so ausgelegt werden, dass sie alle diese Fälle auch noch aushält.

Aber hier stellt sich die Frage, wie professionell soll das ganze werden?
Aus welcher Spannungsquelle wird der Motor gespeist?

Du kannst dir Aufwand sparen, einfach nur eine Sicherung in die Leitung, und bei Fehlern musst du Sicherung und den durchlegierten MOSFET tauschen.

Oder du schwenkst auf einen intelligenten Treiber um, der den Schutz schon integriert hat.
z.B. einen BTS244 oder AUIPS1021 oder gleich eine integrierte Halbbrücke wie den BTN8962

auch wenn er nicht LL deklariert ist, könnte man eventl. über einen BUZ11 nachdenken- im Zweifel mit nem kleinen Transistor davor.... oder Pullup-Widerstand der das Gate auf 12V zieht- der Arduino sperrt dann nur...

Eine unelegante Lösung hatte ich mal bei einem Kunden gesehen.

40A FET, 5A Nennstrom, 24V. Widerstand von 0,5Ohm in die Abgangsleitung zum Gebläsemotor. Im Betriebsfall aber 10W Verlust, am Motor aufgrund des Spannungs und Stromverlustes deutlich weniger Leistung(ca noch 100W). Der Widerstand war ans Gehäuse geschraubt um die Wärme loszuwerden.

Zusammen mit der Schmelzsicherung 10A davor ein sehr wirkungsvoller Schutz gegen blockierende Motoren mit dann hohen Strömen.

Für Bastelzwecke sicher mal ein brauchbarer Kompromiss, bevor man aufwendige Schutzkreise bauen muss.

Ich denke am einfachsten ist in dem Falle ein Smartfet.
Auch wenn die einen harten Kurzschluss mit einer niederohmigen Stromquelle auch oft nicht aushalten, für die meisten Zwecke wird es reichen.

oder man macht ne einfache Strommessung- ein niederohmiger Widerstand in Reihe zum Motor und der Arduino überwacht den Spannungsabfall und kappt die Leitung im Notfall....

wenn das denn so einfach wäre...

Kurzschlussschutz kann nur Hardware. Software ist dafür zu langsam. (jedenfalls im Arduino).

Nee, dafür gibt es hübsche fertige Bausteine, z.B. den AUIPS1031 für 2,30€, der schützt sich selbst.