shs
20.11.2016, 19:51 |
High-Power RGB LEDs an Arduino (Elektronik) |
Hallo Forum!
Ich melde mich mit einem vermutlich einfachen Anfängerfehler.
Ich möchte 8 High-Power RGB LEDs mit einem Arduino dimmen. Jedes dieser High Power Panels[1] ist auf 10 W und 12 V ausgelegt.
Da ich 8 parallele Panels habe, fließt ein Strom von 7,2A. Das ist zwar ziemlich viel, aber ich habe die Leitungen und Bauteile entsprechend ausgelegt, sodass es keine Probleme deswegen geben sollte.
Meine Schaltung dafür ist im Anhang als Bild.
Die 12V Versorgung kommen direkt von einem 12V Netzteil mit ausreichend Leistung(>100W).
Zum dimmen der einzelnen Kanäle verwende ich N-Channel MOSFETS(IRFB-3607) [2]. An Gate ist mein PWM-Signal angeschlossen, welches mit einem 10k Widerstand auf Ground gezogen wird.
Die LEDS sind alle parallel geschalten. Jeweils zwei LEDs teilen sich einen Widerstand, der laut Verkäufer bei 1.5 Ohm liegen soll.("Forward Voltage:9-12V(if use DC 12,Recommended Series a about 1.50 ohm resistor to use)" Für die 8 LED-Panels mit jeweils 3 Kanälen habe ich somit 12 Widerstände.
Nach meinem Verständnis öffnet die positive Flanke des PWMs am Gate des MOSFETs den Stromfluss, und es fließt Strom durch die LEDs. Der Pull-down Widerstand sorgt dafür, dass die Ausgänge des Arduino definiert auf 0 sind, wenn ich keine positive Flanke ausgebe.
Probleme:
- Die High-Power LEDs flackern im Betrieb.
- Eigentlich sollten die LEDs mit zunehmendem Duty-Cycle heller werden, allerdings werden sie dann immer dunkler. Bei 100% sind sie ganz aus, bei 0% aber auch.
- Die LEDs leuchten zu schwach. Selbst das hellste Licht(komischerweise bei 1% Dutycycle) ist noch sehr schwach.
- Wenn man nur einen Kanal steuert, dann funktioniert das ein bisschen(zwar noch mit den obigen Problemen, aber eine Farbe lechtet). Wenn ich jetzt aber alle Kanäle mit den PWM-Ausgängen verbinde, dann leuchten nicht alle LEDs, sondern trotzdem nur eine und eine andere noch ganz schwach.
Fazit/Ideen:
- Da ich ein ganz einfaches Testprogramm dafür geschrieben habe, weiß ich, dass es kein Software-Problem ist. Ich denke aber, in meiner Schaltung ist ganz schön der Wurm drin.
- Ich vermute, dass ich nicht die richtigen MOSFETs verwende, aber im Datenblatt sahen die eigentlich für meine Anwendung gut aus, da sie die Ströme aushalten sollten, und trotzdem schnell schalten müssten.
Datenblatt: "High Speed Power Switching
Hard Switched and High Frequency Circuits"
Kann es sein, dass meine Gate-Spannung zu niedrig ist? Der MOSFET würde so als zu großer Vorwiderstand funktionieren und begrenzt den Strom, sodass ich nicht die entsprechende Helligkeit sehe?
- Ich vermute auch, dass es nicht so gut ist, wenn ich je 2 LED-Panels auf einen Vorwiderstand schalte
- Ich denke auch, dass mein Pull-Down Widerstand schlecht dimensioniert sein könnte. 10k sind ja nur ein Daumenwert der auf Erfahrungen beruht.
- Ich bin hier einmal davon ausgegangen, dass die Schaltung für High Power LEDs und für normale LEDs vom Prinzip her gleich funktionieren müsste, liegt hier vielleicht ein grundlegender Fehler?
Hier schon mal vielen Dank fürs Lesen! Für jeden Impuls bin ich sehr dankbar!
Beste Grüße!
Referenzen:
[1] Ebay-link zu LED-Panel: https://tinyurl.com/h97lxv6
[2] MOSFET: https://www.reichelt.de/IRFB-IRFI-Transistoren/IRFB-3607/3/index.html?ACTION=3&GROUPID=2892&ARTICLE=90243
 |
xy

20.11.2016, 20:07
@ shs
|
High-Power RGB LEDs an Arduino |
» IRFB3607
Ist ungeeignet, da kein Logikpegel-MOSFET.
» Die LEDS sind alle parallel geschalten.
Schlechte Idee, gib jeder einen eigenen Vorwiderstand. |
Offroad GTI
20.11.2016, 21:34 (editiert von Offroad GTI am 20.11.2016 um 21:37)
@ shs
|
High-Power RGB LEDs an Arduino |
» Kann es sein, dass meine Gate-Spannung zu niedrig ist?
Gut möglich. Wie schon angemerkt wurde, sind sie aber soundso nicht geeignet.
Auf deinem "Schaltplan" ist keine Verbindung vom GND des Arduino zu den Source-Anschlüssen der MOSFETs erkennbar. Eine GND-Schleife könnte das Fehlverhalten erklären (Stichwort sternpunktförmige Masseverbindung - kannst du ja mal googeln ).
Hast du ein Oszilloskop?
Ein Bild vom Aufbau kann auch nicht schaden. |
shs
21.11.2016, 01:12
@ Offroad GTI
|
High-Power RGB LEDs an Arduino |
» » Kann es sein, dass meine Gate-Spannung zu niedrig ist?
» Gut möglich. Wie schon angemerkt wurde, sind sie aber soundso nicht
» geeignet.
Danke für den Hinweis! Ich tausche die MOSFETS aus.
» Auf deinem "Schaltplan" ist keine Verbindung vom GND des Arduino zu den
» Source-Anschlüssen der MOSFETs erkennbar. Eine GND-Schleife könnte das
» Fehlverhalten erklären (Stichwort sternpunktförmige Masseverbindung
Auch das ist ein guter Punkt. Ich werde die beiden Massen von Arduino und 12V Netzteil mal miteinander verbinden. Allerdings werde ich einen Widerstand zwischen Source Pin von MOSFET und GND Pin von Arduino schalten müssen, da ja sonst 7,2A/2 = 3,6A über den Masse-Pin von Arduino laufen. Ich bin mir nicht sicher, wie gut der Arduino Masse-Pin das verträgt.
» Hast du ein Oszilloskop?
Leider noch nicht, ich werde mir erst eins zulegen müssen. Das ist aber schon geplant, das könnte eine gute Gelegenheit sein, endlich mal eins zu kaufen.
» Ein Bild vom Aufbau kann auch nicht schaden.
Morgen abend kann ich mal ein Bild hochladen, vielleicht bringt das dann noch etwas mehr Licht ins Dunkel.
Vielen Dank für die nützlichen Tipps soweit ! |
Offroad GTI
21.11.2016, 07:38
@ shs
|
High-Power RGB LEDs an Arduino |
» Ich werde die beiden Massen von Arduino und
» 12V Netzteil mal miteinander verbinden.
Nein, (in diesem Fall) nicht die "Netzteil Massen". Das Bezugspotential für die MOSFETs sind deren Source Anschlüsse, und genau dort sollte der Sternpunkt liegen.
» einen Widerstand zwischen Source Pin von MOSFET und GND Pin von Arduino schalten
» müssen
Und das schon gar nicht. Die GND-Verbindung muss so niederohmig wie möglich sein.
» da ja sonst 7,2A/2 = 3,6A über den Masse-Pin von Arduino laufen.
Nein, der Strom fließt dorthin zurück, wo er hergekommen ist, zum 12V Netzteil.
» Ich bin mir nicht sicher, wie gut der Arduino Masse-Pin das verträgt.
Wenn du die GND Verbindung über das Arduino-Board schleifen würdest, sicherlich nicht sonderlich gut.
Wird der Arduino eigentlich auch aus dem 12V Netzteil versorgt, oder ist dies ein separates? |
simi7
D Südbrandenburg, 21.11.2016, 08:03 (editiert von simi7 am 21.11.2016 um 08:07)
@ shs
|
High-Power RGB LEDs an Arduino |
» » Auf deinem "Schaltplan" ist keine Verbindung vom GND des Arduino zu den
» » Source-Anschlüssen der MOSFETs erkennbar. Eine GND-Schleife könnte das
» » Fehlverhalten erklären (Stichwort sternpunktförmige Masseverbindung
»
» Auch das ist ein guter Punkt. Ich werde die beiden Massen von Arduino und
» 12V Netzteil mal miteinander verbinden. Allerdings werde ich einen
» Widerstand zwischen Source Pin von MOSFET und GND Pin von Arduino schalten
» müssen, da ja sonst 7,2A/2 = 3,6A über den Masse-Pin von Arduino laufen.
» Ich bin mir nicht sicher, wie gut der Arduino Masse-Pin das verträgt.
Der Strom zur Arduino-Masse ist lediglich so hoch wie die Summe der drei Gateströme.
» » Hast du ein Oszilloskop?
Ob das was bringt, da fehlt ja noch einiges an Grundverständnis.
Ich hätte erstmal kleinere Brötchen gebacken und mit weniger Strom angefangen. Eine LED hätte erstmal zum testen gereicht.
Wie hoch ist denn die Frequenz an den Gates?
Wenn du jetzt einfach die Masseverbindung herstellst und sonst nichts änderst kann es leicht passieren dass deine Lichteffekte sich bessern, dass aber ebenso die Transistoren abfackeln.
Also dringend erstmal mit anderen MOSFETs und weniger Last testen. |
shs
21.11.2016, 20:46 (editiert von shs am 21.11.2016 um 20:47)
@ Offroad GTI
|
High-Power RGB LEDs an Arduino |
» » Ich werde die beiden Massen von Arduino und
» » 12V Netzteil mal miteinander verbinden.
» Nein, (in diesem Fall) nicht die "Netzteil Massen". Das Bezugspotential für
» die MOSFETs sind deren Source Anschlüsse, und genau dort sollte der
» Sternpunkt liegen.
Okay, wenn ich das richtig verstanden habe verbinde ich GND vom Arduino mit Source der MOSFETs. Die Gate-Source Spannung ist damit auch tatsächlich die, die ich mit meinem logischen High-Pegel erreichen will. Das ist schonmal sehr informativ und hilfreich, danke dafür!
» » einen Widerstand zwischen Source Pin von MOSFET und GND Pin [...]
» Und das schon gar nicht. Die GND-Verbindung muss so niederohmig wie möglich
» sein.
Okay.
» » da ja sonst 7,2A/2 = 3,6A über den Masse-Pin von Arduino laufen.
» Nein, der Strom fließt dorthin zurück, wo er hergekommen ist, zum 12V
» Netzteil.
Wenn ich die Schaltung so habe, dass ich Source der MOSFETs mit Ground von Arduino verbinde, was hindert dann den Strom zur einen Hälfte durch den Arduino zu fließen, und zur anderen Hälfte zurück zum Netzteil? Vorrausgesetzt, dass sowohl Arduino als auch Netzteil das gleiche Bezugspotential haben natürlich.
» » Ich bin mir nicht sicher, wie gut der Arduino Masse-Pin das verträgt.
» Wenn du die GND Verbindung über das Arduino-Board schleifen würdest,
» sicherlich nicht sonderlich gut.
»
» Wird der Arduino eigentlich auch aus dem 12V Netzteil versorgt, oder ist
» dies ein separates?
Zum Testen bekommt der Arduino seine Spannung von meinem Laptop. Der Laptop hängt aber am gleichen Netz wie das Netzteil. Ich ahne, dass es dadurch ein weiteres Problem geben könnte?
» Wie hoch ist denn die Frequenz an den Gates?
Die standard PWM Frequenz beim Arduino Mega sind 500Hz. Das sollte doch gering genug sein, um nicht zu HF-Problemen zu führen, und groß genug um LEDs zu dimmen oder?
» Wenn du jetzt einfach die Masseverbindung herstellst und sonst nichts änderst kann es leicht passieren dass deine Lichteffekte sich bessern, dass aber ebenso die Transistoren abfackeln.
Die MOSFETS sind doch für hohe Ströme ausgelegt, ich denke das sollten sie schon aushalten.
» Also dringend erstmal mit anderen MOSFETs und weniger Last testen.
Den Hinweis werde ich mir zu Herzen nehmen, auch für folgende Projekte. Ich werde mir eine kleine Testplatine bauen mit einem einzelnen LED-Panel.
Danke schonmal für eure Hilfe! Sobald ich bessere MOSFETS habe gebe ich ein Update!
 |
Offroad GTI
21.11.2016, 21:52 (editiert von Offroad GTI am 21.11.2016 um 21:55)
@ shs
|
High-Power RGB LEDs an Arduino |
» Okay, wenn ich das richtig verstanden habe verbinde ich GND vom Arduino mit
» Source der MOSFETs. Die Gate-Source Spannung ist damit auch tatsächlich
» die, die ich mit meinem logischen High-Pegel erreichen will. Das ist
» schonmal sehr informativ und hilfreich, danke dafür!
Ganz genau darum geht es.
» Wenn ich die Schaltung so habe, dass ich Source der MOSFETs mit Ground von
» Arduino verbinde, was hindert dann den Strom zur einen Hälfte durch den
» Arduino zu fließen, und zur anderen Hälfte zurück zum Netzteil?
» Vorrausgesetzt, dass sowohl Arduino als auch Netzteil das gleiche
» Bezugspotential haben natürlich.
Fließen ist das Stichwort. Wenn vom Netzteil aus 7A richtung LED fließen, fließen die auch wieder zu selbigem zurück.
Der Strom kann ja schlecht aus dem Netzteil durch die LED und dann zur Hälfte zurück zum Netzteil und zur anderen Hälfte über den Arduino zum Laptop fließen. Es heißt ja nicht umsonst StromKREIS - gell
» Zum Testen bekommt der Arduino seine Spannung von meinem Laptop. Der Laptop
» hängt aber am gleichen Netz wie das Netzteil.
Meinst du mit "Netz" jetzt nur eine 230V Steckdose?
Falls ja, ist das nur ein Problem, wenn die Netzteile nicht potentialgetrennt wären.
» Die standard PWM Frequenz beim Arduino Mega sind 500Hz. Das sollte doch
» gering genug sein, um nicht zu HF-Problemen zu führen, und groß genug um
» LEDs zu dimmen oder?
Rechtecksignale sind immer HF-behaftet, da sie sehr steile Flanken haben (siehe Fourier-Analyse, oder auch nicht, würde wohl für den Anfang etwas zu weit führen ). Sollte aber kein Problem sein.
» Die MOSFETS sind doch für hohe Ströme ausgelegt, ich denke das sollten sie
» schon aushalten.
Der Strom ist nicht das Problem, sondern die zum (niederohmigen) durchsteuern notwendige Gate-Souce Spannung. 5V sind für den Typ etwas wenig. Schalten werden sie zwar, aber sie könnten dabei auch recht warm werden.
Kannst es ja einfach mal testen, indem du 5V U_GS anlegst und einen LED Strang schaltest. Die Verlustleistung ergibt sich dann ja durch den Drainstrom multipliziert mit der Drain-Souce Spannung.
Beim Schaltbetrieb gibt es noch zusätzliche Verluste, ist bei 500Hz (also praktisch noch DC) kein Problem.
Bei höheren Strömen und oder Schaltfrequenzen kann der MOSFET dann nicht mehr so einfach mit den Arduino direkt geschalet werden.
Einen entsprechenden Treiber könntest du aber dennoch vorsehen, um den Lerneffekt zu maximieren  |
shs
22.11.2016, 19:08
@ Offroad GTI
|
High-Power RGB LEDs an Arduino |
» Der Strom kann ja schlecht aus dem Netzteil durch die LED und dann zur
» Hälfte zurück zum Netzteil und zur anderen Hälfte über den Arduino zum
» Laptop fließen. Es heißt ja nicht umsonst StromKREIS - gell
Okay, ja das macht schon Sinn :D
» Meinst du mit "Netz" jetzt nur eine 230V Steckdose?
» Falls ja, ist das nur ein Problem, wenn die Netzteile nicht
» potentialgetrennt wären.
Ja ich meine damit die 230V Steckdose, genau.
» » Die standard PWM Frequenz (...) sollte doch
» » gering genug sein, um nicht zu HF-Problemen zu führen (...) oder?
» Rechtecksignale sind immer HF-behaftet, da sie sehr steile Flanken haben
» (siehe Fourier-Analyse, oder auch nicht, würde wohl für den Anfang etwas zu
» weit führen ). Sollte aber kein Problem sein.
Fourier-Analyse ist mir ein Begriff und dein Argument macht Sinn. Die steilen Flanken führen zu sehr hohen Frequenzanteilen im Signal, was man daran erkennt dass zur Rekonstruktion des Signals mit sin/cos sehr hochfrequente Sin/Cos hinzuaddiert werden müssen um einen "Sprung" zu erhalten. Deshalb ist meine Schlussfolgerung über die reine PWM-Frequenz falsch gewesen, check! Danke!
» » Die Verlustleistung ergibt sich dann ja durch den
» Drainstrom multipliziert mit der Drain-Souce Spannung.
» Beim Schaltbetrieb gibt es noch zusätzliche Verluste, ist bei 500Hz (also
» praktisch noch DC) kein Problem.
» Bei höheren Strömen und oder Schaltfrequenzen kann der MOSFET dann nicht
» mehr so einfach mit den Arduino direkt geschalet werden.
» Einen entsprechenden Treiber könntest du aber dennoch vorsehen, um den
» Lerneffekt zu maximieren 
Okay verstehe, wenn der MOSFET noch teilweise sperrt fällt eine gewisse Spannung ab die dann mit dem I_DS eine ggf zu hohe Verlustleistung ergibt. Bedeutet für mich, Test mit kleinerer Last und v.A. geeignetem MOSFET.
Mit höheren Strömen ist vermutlich der Strom gemeint, der die Gate-Kapazität auflädt. Die Schaltzeit sollte natürlich kleiner sein als die Periodendauer des PWMs. Deswegen meinst du, dass man bei größeren Strömen und Frequenzen den MOSFET nicht mehr mit dem PWM des Arduino steuern kann, da dessen Spannung und besonders dessen Kurzschlussstrom nicht reicht um in sehr kurzer Zeit das Gate zu laden. Deswegen nimmt man einen Treiber, der den entsprechenden Strom und die Spannung liefern kann die benötigt wird. Habe ich das so richtig verstanden?
Falls ja, würde ich dann einen Treiber-IC nehmen der zu meinem neuen MOSFET passt.
Besten Dank für die hervoragenden Infos und die Hilfe, ich bin wirklich begeistert  |
Offroad GTI
22.11.2016, 19:57
@ shs
|
High-Power RGB LEDs an Arduino |
» Ja ich meine damit die 230V Steckdose, genau.
Die haben ja alle Netzteile gemein...
» Fourier-Analyse ist mir ein Begriff und dein Argument macht Sinn. Die
» steilen Flanken führen zu sehr hohen Frequenzanteilen im Signal, was man
» daran erkennt dass zur Rekonstruktion des Signals mit sin/cos sehr
» hochfrequente Sin/Cos hinzuaddiert werden müssen um einen "Sprung" zu
» erhalten.
Ganz genau.
» Okay verstehe, wenn der MOSFET noch teilweise sperrt fällt eine gewisse
» Spannung ab die dann mit dem I_DS eine ggf zu hohe Verlustleistung ergibt.
» Bedeutet für mich, Test mit kleinerer Last und v.A. geeignetem MOSFET.
Testen kannst du schon mit denen, die du hast. Wenn der Rauchwolken von sich gibt, war er nicht geeignet
» Mit höheren Strömen ist vermutlich der Strom gemeint, der die
» Gate-Kapazität auflädt.
Nö, schon allgemein höhere Lastströme, aber stimmt schon, um das Gate schnell umzuladen, braucht es hohe Spitzenströme seitens des Treibers.
» nicht mehr mit dem PWM des Arduino
» steuern kann, da dessen Spannung und besonders dessen Kurzschlussstrom
» nicht reicht um in sehr kurzer Zeit das Gate zu laden.
» einen Treiber, der den entsprechenden Strom und die Spannung liefern kann
» die benötigt wird. Habe ich das so richtig verstanden?
Genau.
» Falls ja, würde ich dann einen Treiber-IC nehmen der zu meinem neuen MOSFET
» passt.
Viel anzupassen gibt es da nicht.
Zwei komplementäre (Kleinsignal) Bipolatransistoren als Gegentaktendstufe wären schon mal ein guter und günstiger Anfang, bedarf allerdings noch eines Pegelwandlers. Dafür kann entweder ein weiterer Bipolatransistor herhalten, oder ein Optokoppler. Letzterer hätte den Vorteil, dass du den Arduino vom Lastkreis entkoppelst und die sternpunkförmige Masseverbindung nicht mehr nötig ist. Und auch sonst kommen keine Störungen (auf direktem Wege) zurück. |
shs
12.01.2017, 21:49
@ Offroad GTI
|
High-Power RGB LEDs an Arduino |
Also um das ganze jetzt abzuschließen. Die neuen Transistoren und die Masseverbindung von Source zu Masse des Arduino haben ausgereicht. Das Ergebnis ist sehr zufriedenstellend!
Die Erkenntnisse haben mir jetzt auch bei zwei weiteren Schaltungen geholfen, nochmals also vielen Dank an alle die mir geholfen haben! |