LED Streifen und andere Lasten mit dem ESP32 schalten

Laut dem Datenblatt von Espressif kann ein GPIO Pin des ESP32 maximal 40 mA liefern. Das ist gerade stark genug, um damit eine einzelne LED anzusteuern. Für eine Aquarium Beleuchtung musste ich jetzt allerdings LEDs mit insgesamt circa 20 Watt ansteuern. Um solche Lasten mit dem ESP32 steuern zu können, ist noch mindestens ein weiterer Transistor nötig, der einerseits diese hohen Ströme verträgt und andererseits mit einer Spannung von 3,3 Volt geschaltet werden kann, da diese Spannung an den Pins des ESP32 anliegt. Hier möchte ich euch nun einige Varianten vorstellen, die ich selbst ausprobiert habe, und kurz beschreiben, ob sie für diese Aufgabe überhaupt geeignet sind.

LED Streifen und andere Lasten mit dem ESP32 schalten

Die verwendeten Transistoren

Im Internet gibt es viele Beschreibungen, wie man mit einem Mikrocontroller LED Streifen oder andere Lasten steuern kann. Dafür werden recht häufig folgende Transistoren verwendet:

  • TIP120 : Darlington-Transistor, NPN, 60V, 5A, 65W
  • IRFZ44N : MOSFET, N-Kanal, 55V, 49A, 94W
  • IRLZ44N : MOSFET, N-Kanal, 55V, 47A, 110W
  • IRF3708 :  MOSFET N-Kanal, 30V, 62A, 87W

An den Maximalwerten sieht man sofort, dass diese Transistoren mehr als genug Leistung für eine LED Beleuchtung bieten. Bei den Typen handelt es sich um zwei unterschiedliche Gruppen von Transistoren, den Darlington-Transistoren und den MOSFETs.

Darlington-Transistor

Ein Darlington-Transistor, benannt nach seinem Erfinder Sidney Darlington, ist eine spezielle Art von Bipolartransistor. Er besteht aus zwei Transistoren, die intern miteinander verschaltet sind. Ein Darlington-Transistor bietet eine hohe Stromverstärkung und wird oft eingesetzt, wenn eine kleine Steuerspannung oder Stromänderung eine große Stromverstärkung erfordert.

Die beiden Transistoren in einem Darlington-Paar werden in Serie geschaltet. Der Basisstrom des ersten Transistors steuert den zweiten Transistor. Dies führt dazu, dass der Gesamtverstärkungsfaktor das Produkt der Verstärkungsfaktoren beider Transistoren ist. Dadurch kann ein Darlington-Transistor eine sehr hohe Stromverstärkung bieten, was ihn in Anwendungen wie Leistungsverstärkern und Schaltelementen in Steuerungen sehr nützlich macht.

MOSFET

MOSFETs (Metall-Oxid-Halbleiter-Feldeffekttransistoren) sind Transistoren, die auf dem Feldeffektprinzip basieren. Sie steuern den Stromfluss zwischen ihren Source- und Drain-Terminals, indem sie eine elektrische Feldwirkung am Gate-Terminal nutzen. Es gibt zwei Haupttypen von MOSFETs: N-Kanal und P-Kanal. N-Kanal-MOSFETs werden leitend, wenn eine positive Gate-Spannung angelegt wird, während P-Kanal-MOSFETs leitend werden, wenn eine negative Gate-Spannung angelegt wird. MOSFETs sind für ihren geringen Eingangsstrom bekannt, wodurch sie effizient in Schaltungen mit niedrigem Energieverbrauch eingesetzt werden können.

Die Gate-Source-Spannung ist die Differenz zwischen der Spannung am Gate-Terminal (VG) und der Spannung am Source-Terminal (VS) eines MOSFETs. Sie bestimmt, ob der MOSFET ein- oder ausgeschaltet ist. Innerhalb eines bestimmten Bereichs schaltet der MOSFET ein und ermöglicht den Stromfluss zwischen Source und Drain, außerhalb dieses Bereichs bleibt der MOSFET ausgeschaltet.

Logic-Level-MOSFETs sind spezielle MOSFETs, die bei den gängigen Logikpegeln (z. B. 5 V oder 3,3 V) in digitalen Schaltungen ausreichend leitfähig sind. Dadurch können sie direkt von Mikrocontrollern gesteuert werden, ohne zusätzliche Treiberstufen zu benötigen. Logic-Level-MOSFETs sind wichtig für die Integration von MOSFETs in digitale Schaltungen und erleichtern die Schaltungsentwicklung in Anwendungen wie Schaltnetzteilen, Motorsteuerungen und anderen elektronischen Systemen.

Der Testaufbau

Glücklicherweise ist die Pinbelegung für alle Transistoren identisch, d.h. die Basis des TIP120 entspricht den Gates der MOSFETs bzw. Kollektor/Emitter entsprechen Drain/Source. Daher kann der folgende Aufbau für alle vier Transistoren verwendet werden. Zum Ansteuern verwende ich das ESP32-DevKitC V4. Als GPIO Port verwende ich in diesem Fall das Port 16. Die Versorgungsspannung der LEDs beträgt 12 Volt.

ESP32 LED stripe

Die dazugehörigen Schaltpläne zeigt das folgende Bild. An den Messpunkten VDS bzw. VCE wird die Spannung gemessen, die am Transistor abfällt, wenn der Eingang auf logisch "1" ist. Diese Spannung sollte so niedrig wie möglich sein, da sich der Transistor wie ein Schalter verhalten soll. Im idealen Fall würde man hier also 0 Volt messen.

Schaltplan ESP32 LED-Streifen

Das Ergebnis

Die folgende Tabelle zeigt die Messergebnisse. Die beiden rechten Spalten ILED und P sind die Werte, die das Netzteil anzeigt, also wie viel Strom tatsächlich durch die LED Streifen fließt bzw. welche Leistung abgegeben wird. Was die letzte Zeile in der Tabelle bedeutet erkläre ich noch weiter unten.

  VDS / VCE ILED P
TIP120 924 mV 1,33 A 15,9 W
IRFZ44N 5000 mV 0,002 A 0,024 W
IRLZ44N 240mV 1,77 A 21,4 W
IRF3708 54 mV 1,81 A 21,7 W
IRFZ44N & BC547 44 mV 1,82 A 21,8 W


Der TIP120 kann zwar die LED Streifen mit genügend Leistung versorgen, allerdings fällt an dem Transistor relativ viel Spannung ab. Das ist kein spezielles Problem des TIP120 sondern gilt für alle Bipolartransistoren. Dadurch wird am TIP120 eine Leistung von 924mV x 1,33A = 1,22 W in Wärme umgesetzt. Bei meinem Test ist er auch entsprechend heiß geworden und auf Dauer würde ich ihn nicht ohne einen Kühlkörper betreiben. 

Der IRFZ44N fällt in dem Test komplett durch. Das ist aber auch keine Überraschung, da es sich bei diesem Typ nicht um einen Logic-Level-MOSFET handelt. Erst ab einer Gate Spannung von 7 Volt schaltet der IRFZ44N voll durch. Wie man den IRFZ44N aber trotzdem verwenden kann werde ich gleich erklären.

Problemlos funktionieren die Logic-Level-MOSFETs IRLZ44N und IRF3708, wobei letzterer durch den geringeren Spannungsabfall etwas mehr Leistung an die LEDs abgeben kann.

Ein Blick in die Datenblätter bestätigt die Messungen. Die folgenden drei Diagramme zeigen den Zusammenhang zwischen Gate Spannung, Source-Drain Spannung und Source-Drain Strom. Für den IRFZ44N ist in dem Diagramm nicht mal ein Linie eingezeichnet, da er für so eine niedrige Spannung nicht ausgelegt ist.

IRFZ44N, IRLZ44N, IRF3708

Abschließend möchte ich noch zeigen, wie man den IRFZ44N mit einem einfachen BC547 NPN Bipolartransistor steuern kann. Der Schaltplan dazu schaut folgendermaßen aus:
ESP32_LED-stripe_IRFZ44N _schematic.png

Allerdings hat diese Lösung auch einen Nachteil. Durch den BC547 wird das Signal invertiert. Das kann man zwar ganz leicht durch Ändern der Logik in der Software lösen, aber es besteht immer noch das Problem, dass beim Einschalten die LEDs kurz leuchten würden, bis der ESP32 den Ausgang auf einen definierten Wert setzt.

Fazit

Das Ergebnis zeigt ganz klar, dass der IRF3708 oder der IRLZ44N am besten dazu geeignet sind, einen LED Streifen zu steuern. Warum immer noch in vielen Foren der TIP120 empfohlen wird, kann ich nicht ganz verstehen. Natürlich gibt es noch eine Unzahl anderer MOSFETs, die dafür geeignet sind. Grundsätzlich sollten es Logic-Level-MOSFETs sein, die aber auch schon bei 3,3 Volt funktionieren und nicht erst bei 5 Volt, wie es beispielsweise beim Arduino der Fall ist. Im Zweifelsfall hilft ein Blick in das Datenblatt.

Konversation wird geladen