Steuerung LED-Strip für ein Projekt

Ich suche also nach einer Kurvenschar, wann der Transistor "richtig durchgeschaltet" ist.

Dann ist Fig 3 das richtige für dich!
Die sagt 20A bei 5Vgs 4Vgs
korrigiert

Durchgeschaltet ist er, wenn der den nötigen Strom fließen lassen kann.
Alles unterhalb der Kurve ist der nutzbare Bereich. Den Bereich da drüber kann man nicht erreichen.
Da die Kurve nur die typische Linie zeigt, solltest du ein bisschen Reserve lassen.

In diesem Thema soll ein Strom längere Zeit eingeschaltet werden, deutlich länger als 20 µs und ohne Pulsierung

Die Pulse sind so kurz, damit die Eigenerwärmung keine Rolle bei dem konkreten Wert spielt.
Fig 4 zeigt das Verhalten bei Erwärmung.

combie:
Dann ist Fig 3 das richtige für dich!
Die sagt 20A bei 5Vgs

Nur zur Sicherheit, daß wir auf die selbe Figur schauen: Ich komme auf 35 A oder 45 A, je nach junction temperature (Transistorübergangstemperatur):

Fig3.png

combie:
Durchgeschaltet ist er, wenn der den nötigen Strom fließen lassen kann.
Alles unterhalb der Kurve ist der nutzbare Bereich. Den Bereich da drüber kann man nicht erreichen.
Da die Kurve nur die typische Linie zeigt, solltest du ein bisschen Reserve lassen.

Dann kann ich also die 20 µs ignorieren, auch gut.

Wenn Du wegen der Reserve auf 20 A gegangen bist (s. o.), dann bin ich bei Dir.


@Mouns: Für 12V und 0,5A ist der Transistor geeignet, bitte lasse Dich nicht von meinen Fragen irritieren. Aber wir haben solche Fragen häufiger mal, da möchte ich dann schon wissen, was ich empfehlen kann und was nicht. Wer ganz sicher gehen möchte, schaltet UGS mit einem bipolaren Transistor, der auch in einem Optokoppler sitzen kann. Aber einen Logic Level FET direkt an einen Arduino-Ausgang anzuschließen, ist natürlich schön einfach.

Fig3.png

agmue:
Ich komme auf 35 V oder 45 V, je nach junction temperature (Transistorübergangstemperatur):

Ampere nicht Volt. (bei 25V)

Hallo,

danke für die kleine Nachhilfe. Mit Bezug auf die Fig 3 aus dem Datenblatt.

d.h mit diesem Typ könnte man bei 5VGS 30A schalten bei 3,3VGS etwa 8A. ?

Heinz

Erstmal die Fakten sammeln

Electrical Characteristics @ TJ = 25°C:
Rds(on) = 0,06 Ohm bei Vgs = 4V

Wärmewiderstand zwischen Juction und Umgebung Rθja = 62 K/W

Jetzt wollen wir den Transistor belasten.
Tj = 25°C ist also illusorisch

Absolute Maximum Ratings sagt:
Todesgrenze für Tj = 175°C

Fig 4 sagt:
Rds(on) Faktor 2,25 bei Tj = 175°C

Die Umgebungstemperatur muss man wohl schätzen.
Annahme: Geschlossenes Gehäuse und Hochsommer
Ta = 50°C


Erste Rechnung:
Rds(on heiß) = 0,06 * 2,25 = 0.135 // in Ohm

Formel für die Leistungsberechnung:
U = R * I
P = U * I
P = R * I²

I = sqr(P/R)

Formeln für die Temperaturberechnung:

Tj = Ta + (Rθja * Ptot)

Rθja * Ptot = Tj - Ta

Ptot = (Tj - Ta)/Rθja


Ptot = (175 - 50) / 62 = 2,02 W

Itot = sqr(2,02/0,135) = 3,68A


In Fig3 liegt 3,68A bei 4Vgs im erreichbaren Bereich, also unterhalb der Linie

Unter den genannten Bedingungen kann man diesem Transistor ohne Kühlblech einen dauerhaften Strom von 3,68A gerade noch so eben zumuten.
Einen kleinen Sicherheitsbereich sollte man einplanen


Na, ob das wohl alles so stimmt?
Oder habe ich da einen Fehler eingebaut?


Nur zur Sicherheit, daß wir auf die selbe Figur schauen: Ich komme auf 35 A oder 45 A, je nach junction temperature (Transistorübergangstemperatur):

Ja, die Figur!
Wobei man bei einem UNO, welcher an USB hängt nicht viel mehr als 4,3V an seinem belasteten Pin erwarten darf.

Hier ist also ein Vertipper:

Die sagt 20A bei 5Vgs
Ich meinte:
Die sagt 20A bei 4Vgs
Denn die 5V sind zu optimistisch.

combie:

Die sagt 20A bei 4Vgs

Nun weiß ich, wir sehen dieselbe Figur!

Der von Combie errechnete max Dauerstrom gilt für den Transistor ohne Kühlkörper.

Wenn der Transistor auf einem Kühlblech oder Kühlkörper hat dieser wegen der größeren Oberfläche eine bessere Wärmeabgabe an die umgebende Luft. Darum bleibt der Transistor bei gleichem Strom kühler bzw kann der Strom größer sein wenn die Temparatur im Halbleiter gleich hoch sein kann.

Grüße Uwe

agmue:
Nun weiß ich, wir sehen dieselbe Figur!

Ja!

Ich hoffe, ich habe mit der Rechnung nicht zu sehr übertrieben.
Denn deine Frage:

Ich suche also nach einer Kurvenschar, wann der Transistor "richtig durchgeschaltet" ist.

Habe ich nicht damit beantwortet.
Nicht beantworten können.

Rentner:
d.h mit diesem Typ könnte man bei 5VGS 30A schalten bei 3,3VGS etwa 8A. ?

Wenigstens das habe ich beantworten können!
Mit einem eingeschränktem: Ja
Aber nicht ohne erhebliche Kühlmaßnahmen.
(das Werkzeug dazu, habe ich dir hoffentlich jetzt geliefert)

Übrigens:
Die ganzen billig Kühlkörper, bei Ebay und Konsorten, werden ohne Wärmewiderstandsangabe verkauft.
Haben teilweise so raue Oberflächen, für die Transistormontage, dass der Wärmewiderstand in den Himmel schießt.
Gruselig.

Namhafte Händler geben den Wärmewiderstand an.
z.B. Conrad und viele weitere

Also:
Augen auf, beim Kühlkörper kauf.

Tipp:
Die Befestigung der Transistoren auf dem Kühlkörper sollte mit Federklammern erfolgen. Das bewirkt einen gleichmäßigen Anpressdruck. Nur so sind die jeweiligen angegebenen Wärmewiderstände einzuhalten.

combie:
Nicht beantworten können.

Die Kernfrage nach den 20 µs hast Du geklärt, das war mein Hauptverständnisproblem. Ich habe zusätzlich folgende Dinge gelernt:

  • Auch Logic-Level-Typen arbeiten in einem für FETs zu niedrigen Spannungsbereich, weshalb man die maximalen Werte nicht erreichen kann. Ein 30A-Typ kann gerade mal 3A, also 10%. Nur höhere Gatespannungen bringen den FET in den optimalen Bereich. Also bei Bedarf bipolaren Transistor ans Gate.
  • Die Annahme "Rds(on) Faktor 2,25 bei Tj = 175°C" ist ein Extremwert und hätte ich mir genauer gewünscht. Allerdings wüßte ich auch nicht, welche Figur da hilft.

Danke für die Rechnung!

Irgendwo habe ich Wärmeleitpaste herumliegen, die könnte den Wärmeübergang verbessern.

@Mouns: Ich hoffe, Du kannst nun nachvollziehen, wie sich so ein Transistor verhält. Das Datenblatt versucht, einen mehrdimensionalen Raum abzubilden, was beim Betrachter eine Menge Phantasie voraussetzt.

Irgendwann gibt es möglicherweise eine Suchmaschine, bei der ich die geforderten technischen Daten eingebe und den passenden Transistor gezeigt bekomme.

Irgendwann gibt es möglicherweise eine Suchmaschine, bei der ich die geforderten technischen Daten eingebe und den passenden Transistor gezeigt bekomme

.mouser versucht, so etwas zu bieten per Vorauswahl, Filter und Sortierung.
Fehlt nur ein Filter "Auch bei Aliexpress vorhanden" :wink:

Die Annahme "Rds(on) Faktor 2,25 bei Tj = 175°C" ist ein Extremwert und hätte ich mir genauer gewünscht. Allerdings wüßte ich auch nicht, welche Figur da hilft.

Wieso genauer? :o

Der Wert ist im Datenblatt zu finden (Fig 4) und MUSS bei der Berechnung mit einbezogen werden.
Wenn man den Maximalstrom wissen will, und das war bei der Berechnung mein Ziel, muss man von der Grenztemperatur ausgehen.
Ich sehe da keinen Raum für "Genauer"

Irgendwo habe ich Wärmeleitpaste herumliegen, die könnte den Wärmeübergang verbessern.

Die Verwendung ist ein Pflicht Standard.
Die Angaben in den Datenblättern gehen immer von einer Verwendung einer Wärmeleitpaste aus.
Sonst steht es explizit dabei.
Zumindest kenne ich es nicht anders.

Das Datenblatt sagt:
0,5 K/W , zwischen Transe und Kühlkörper, bei Verwendung von Wärmeleitpaste, und ich sage:
Nur mit Federklammer, nicht mit Verschraubung zu erreichen
Mein Lehrer sagte damals: Nimm 2 K/W für trocken verschraubt an.

Ich habe zusätzlich folgende Dinge gelernt:

Danke für die Rückmeldung!
Und ja, dann hat es sich ja gelohnt.

Nimm 2 K/W für trocken verschraubt an.

Faustregeln sind immer gut.
Man sollte aber auch eine Idee der (Rand-)Bedingungen haben. Ist das für TO220 auf "ausreichend" großem Kühlkörper gemeint, oder passt der Wert für jede M3- Schraube?

Ist das für TO220 auf "ausreichend" großem Kühlkörper gemeint, oder passt der Wert für jede M3- Schraube?

Ich störe mich an dem Wort "ausreichend"

"ausreichend" bedeutet für mich hier, dass der Kühlkörper die Kühlfläche des Transistors vollständig abdeckt. Vollflächiger Kontakt. Ob der Kühlkörper, an sich, "ausreichend dimensioniert" ist, lässt sich an seinem Wärmewiderstand und den anderen Schaltungsparametern fest machen.

Die Schraube ist da recht belanglos.
Mal abgesehen davon, dass ein zu festes anziehen kontraproduktiv ist, da es den Wärmewiderstand deutlich erhöht.

Viel hilft viel
Ist da eher nicht angesagt.
Ebenso bei der Paste.

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

Ah mist sorry. Also nochmal:
Okay, vielen Dank schonmal an euch!

Ich bin jetzt von de 24V Streifen umgestiegen auf einen NeoPixelRing 24 LEDs, da ich das Ganze in einer Box verbauen möchte und das per Batterie speisen will. (Habe jetzt eine 9V Batterie, die ich direkt an den Arduino anschließen würde).
Die Idee ist immernoch die gleiche, ich habe jetzt einen Code hierfür geschrieben, jedoch zeigt er mir immer
'strip' was not declared in this scope an bzgl der Zeile high = strip.setPixelColor ...

Könnt ihr mir sagen woran das liegt und ob ich den Code einigermaßen passend geschrieben habe?

#include <Adafruit_NeoPixel.h>
#define NUM_LIGHTS  24
const int buttonPin = 8;
const int LEDPin = 1;
bool s = HIGH;
int t;
uint32_t low = strip.setPixelColor(0, 0, 0);
uint32_t high = strip.setPixelColor(225, 225, 225);


Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LIGHTS, LEDPin, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {

  s = digitalRead(buttonPin);
  if (s = HIGH) {

    t = random (60000, 180001);

    delay (t);



    for ( int i = 0; i < NUM_LIGHTS; i++) {
      strip.setPixelColor(i, high);
      strip.show();
    }
    delay(1000);

    for ( int i = 0; i < NUM_LIGHTS; i++) {
      strip.setPixelColor(i, low);
      strip.show();
    }

    delay(100);
  }

  else {
    digitalWrite (LEDPin, LOW);
  }
}

Du hättest Deinen Beitrag auch verändern können.

uint32_t low = strip.setPixelColor(0, 0, 0);
uint32_t high = strip.setPixelColor(225, 225, 225);

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LIGHTS, LEDPin, NEO_GRB + NEO_KHZ800);

Falsche Reihenfolge. Du mußt erst ein Auto kaufen, dann kannst Du damit fahren.

Außerdem hat setPixelColor keinen Rückgabewert.

Das heißt zum einen müsste ich die Zeilen umdrehen und der Befehl für die Farben ist an sich falsch? Wurde mir in der adafruit library vorgeschlagen.. ich bin verwirrt..

Ah, hab den Fehler gefunden

Würdest Du die Nachwelt an Deinen Erkenntnissen teilhaben lassen?

Gruß Tommy

Hi

Ihmr wird wohl in den Tiefen des WWW ein Aufruf folgender Methode über den Weg gelaufen sein:

// Convert separate R,G,B into packed 32-bit RGB color.
// Packed format is always RGB, regardless of LED strand color order.
uint32_t Adafruit_NeoPixel::Color(uint8_t r, uint8_t g, uint8_t b) {
  return ((uint32_t)r << 16) | ((uint32_t)g <<  8) | b;
}

Adafruit_Neopixel.cpp, Zeile 2072ff - die Lib scheint keine interne Versionsnummer zu haben, bei mir ist die 1.1.6 installiert.
In Seinem Code dann wohl in der Art

...
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LIGHTS, LEDPin, NEO_GRB + NEO_KHZ800);
...
uint32_t aus=strip.Color(0,0,0);
uint32_t an=strip.Color(255,255,255);
...

MfG

PS: Wurde sogar per PN auf die falsche Anrede aufmerksam gemacht - sorry dafür :slight_smile: