[DIY] Arduino Power Box

Status
Es sind keine weiteren Antworten möglich.

sterne-jaeger

Aktives Mitglied
Liebe Freunde der Nacht,
ich möchte euch mein neuestes Bastelprojekt vorstellen, mit dem ich die Helligkeit meiner Flatbox remote steuerbar gemacht habe. Die meisten am Markt erhältlichen Regler haben den Nachteil, dass die Helligkeit mit einem manuellen Drehregler einstellbar ist. Alternativ dazu gibt es Komplettlösungen wie die Pegasus Power Box, aber die können viel mehr und sind daher kein Schnäppchen. Also war mein Ehrgeiz geweckt, es selbst zu bauen...

Mein erster Ansatz war, das PWM-Signal mit einem Raspberry Pi zu erzeugen und über eine H-Brücke (z.B. einen L298N-basierten Motortreiber) das PWM-Signal auf 12V legen. Das funktioniert, solange man das PWM-Signal direkt über die Hardware des Raspberry Pi erzeugt. Verwendet man die per software erzeugten PWM-Signale, dann flimmern die Flatboxen - das Signal ist einfach zu unsauber.

Noch kleiner geht es, wenn man Arduinos zur Generierung von PWM-Signalen einsetzt. Es hat sich herausgestellt, dass zumindest ein Wemos Mini D1 in der Lage ist, an zwei seiner Ports ein sauberes PWM-Signal mit einer 20kHz-Frequenz zu erzeugen - genau das, was ich für Flatbox brauche. Und so sieht die Lösung aus:

IMG_5497.JPGIMG_5496.JPG
Dieses kleine Kästchen besitzt zwei PWM-Kanäle und zwei 12V-Anschlüsse, die über einen Arduino gesteuert werden können. Mit etwas Elektronik-Grundwissen kann man diese Box selbst bauen, die Bauteile kosten schätzungsweise 25€. Die wesentlichsten sind:
  • ein Arduino, z.B. ein Wemos D1 Mini Pro
  • eine L298N H-Bridge
  • 1-2 AOD4148 MOSFET Module mit Optokoppler
  • ein paar 12V Steckerbuchsen
  • diverse Kleinteile (Leiterplatte, Steckleisten, Litzen, ...)
Die komplette Software dafür ist im INDI-Projekt frei verfügbar, die Anleitung dafür gibt es hier. Sie besteht aus der Firmware für den Arduino und einem INDI-Treiber, mit dem die Power Box remote gesteuert werden kann. Wer nicht den INDI-Treiber verwenden will, kann auch per Skript den Arduino direkt über den USB-Port ansteuern.

Was haltet ihr davon?

Schöne Grüße
Wolfgang
 
Gibt es einen bestimmten Grund für die H-Brücke? Grade die L298 sind doch bipolar und gönnen sich Dropoutspannung und damit Verlustleistung. Für wenige cent gibts beim Elektroverticker (OK, Lieferkosten) MOSFET, ich würde denk ich mit NX3008N... (20V/350 mA) anfangen. Speziell wenn man mit Akku unterwegs ist und jedes mA sparen will oder wenn es klein sein soll..

Gruß
Hendrik
 
Da gibt's in der Tat einen guten Grund - ich habe nicht wirklich ne Ahnung von Elektronik :) Es hat mit der H-Brücke funktioniert, ich habe mir aber schon ein paar MOSFETs kommen lassen, weil mir die H-Brücke zu klobig war. Das der L298 bipolar ist hab ich gar nicht gewusst. Ich wollte mal eine Schaltung mit dem IRF 3708 probieren.
Auf jeden Fall danke für den Hinweis, Hendrik!
 
Hallo Wolfgang,
sehr interessantes Thema, kannst du mal den Schaltplan posten?
Ein Frage hätte ich noch: Um Interferenzen bei den Flats zu umgehen, steuere ich einen Mosfet mit 270kHz an, da alles andere mir zu wage erschien. Dazu noch eine Gleichrichtung aus einem L-D-C Glied, und der Anteil der Frequenz wird auf ein Minimum reduziert.
Bisher auch mit kurzen Belichtungszeiten von bis zu 30ms keine Auffälligkeiten.
Wie schaut es bei deinen 20kHz aus?
 
Da gibt es nicht viel zu zeigen, ich benutze den L298H als direkt auf einem Entwicklerboard (den da). Den PWM-Port des Arduino ist direkt an das Board angeschlossen. 20kHz bei Belichtungszeiten von ca. 0,5 sec sind völlig problemlos.

Ich bin gerade dabei, eine Schaltung mit einem IRF 3708 aufzubauen, ganz simpel mit 100 Ohm Vorwiderstand am Gate und einen 47k-Widerstand als Pulldown. Falls die 3,3V nicht reichen, plane ich einen Transistor noch zum Schalten des Gates zu verwenden.

Was hältst Du davon?

VG
Wolfgang
 
Ich bin gerade dabei, eine Schaltung mit einem IRF 3708 aufzubauen, ganz simpel mit 100 Ohm Vorwiderstand am Gate und einen 47k-Widerstand als Pulldown. Falls die 3,3V nicht reichen, plane ich einen Transistor noch zum Schalten des Gates zu verwenden.
Ich denke du musst dir kaum Sorgen wegen der 3.3V Gatespannung machen, Fig. 13 deutet an das er dann zwar noch keine einstellige mOhm, sondern niedrig zweistellige hat und du damit den L298 schon guuut überbietest. Und ohne "Typical" davor, was auch gut ist.
 
Ich bin gerade dabei, eine Schaltung mit einem IRF 3708 aufzubauen, ganz simpel mit 100 Ohm Vorwiderstand am Gate und einen 47k-Widerstand als Pulldown. Falls die 3,3V nicht reichen, plane ich einen Transistor noch zum Schalten des Gates zu verwenden.

Was hältst Du davon?
Hallo Wolfgang,
ich habe die Gate-daten überflogen, du hast bei dem CMOS eine Gate-Kapazität von 2,4nF lt. Datenblatt, mit deinen 100Ohm Gatewiderstand, könnte es knapp werden. Ein GPIO darf max. 16mA ziehen, theoretisch im Schaltmoment kommen da mind. das Doppelte zusammen, ergo du musst auf mind. 220Ohm
rauf, besser wäre noch 330Ohm, da hat Tau einen Wert von ~0,8µs, reicht also für 20kHz.
 
Update von meiner Seite: ich hab's mit dem MOSFET allein probiert, damit kriege ich kein sauberes Rechteck-Signal hin bei 20kHz. Daher versuche ich es jetzt mit einem vorgeschalteten Treiber, dem MCP 14E7-E/P.

@Boris: danke für den Hinweis, schau ich mir noch an. Weisst Du, ob diese LED-Treiber auch höhere Frequenzen können? Ich würde gerne auf mindestens 20kHz gehen, evtl. auch mehr.
 
Soweit ich das verstehe solltest du bei diesen LED Treibern den Analogeingang zum dimmen verwenden. Das sind Schaltregler mit einer hohen Schaltfrequenz, der PWM Eingang darf keine sehr hohe Frequenz haben, er schaltet den ganzen Regler ein und aus. Über den Analogeingang wird aber direkt der Strom reguliert. Mit einem Tiefpass (Widerstand + Kondensator) kann man aus PWM eine Gleichspannung zum ansteuern machen.
Gruss, Boris
 
Ein neuer Zwischenstand: die bestellten MCP 14E7-E/P MOSFET-Treiber haben den ersten Testlauf leider nicht überlebt :confused:. Ich vermute stark, sie mögen es nicht, wenn man den Eingang ohne Vorwiderstand auf 12V legt...
 
Laut Datenblatt verträgt der MCP14E7 am Eingang die Versorgungsspannung VDD + 0,3V. Hast Du denn 12V als Versorgungsspannung benutzt?

Ich bastle auch gerade an so einem Dimmer mit MOSFET-Treiber. Funktioniert schon gut, bin nur noch am optimieren der Störungen. Ein ideales Rechteck wirst Du aber nicht hinbekommen.

So sieht bei mir die Schaltung aus:
SnipLEDFlatpanel.JPG


Wenn Du R1 kleiner dimensionierst, wird das Signal rechteckiger, aber dafür nehmen Über- und Unterschwinger deutlich zu. Wichtig sind die Kondensatoren an der Stromversorgung des Treibers, die geht sonst beim schnellen Umschalten böse in die Knie.

Wenn alles fertig ist, stelle ich Schaltung, PCB-Layout und Arduino-Code auf GitHub.

Viele Grüße,
Joachim
 
Hallo Joachim,
Danke für die Schaltung. In meinem Test habe ich VDD und IN_A direkt an die gleichen +12V angeschlossen - beides ohne Vorwiderstand.
 
Hallo!
Für kleinere Ströme bis ~5A tut es auch ein IRLL2705, kann direkt vom GPIO angesteuert werden. Der hier verwendete IRFZ44 ist doch ein wenig "oversized" mit 49A.
1656607086911.png
 
OK, ich bin einen Schritt weiter. Ich habe den Arduino an den Eingang des MCP 14E7-E/P gelegt (kein Vorwiderstand) und den Ausgang des Treibers gelegt. Folgendes Signal kommt raus:
IMG_5550.jpg


Hat einer von euch eine Erklärung, warum die fallende Flanke so langsam auf 0 geht? Der Ausgang des Treibers liegt direkt am Gate des MOSFET.

VG
Wolfgang
 
Bitte Mal Ausgangssignal von Treiber ohne Endstufentransistor messen,
 
Ja, sieht gut aus, die Verzerrung deines Signals kommt durch die hohe Gatekapazität des Leistungstransistors zustande. Der Treiber hat einen Ausgangswiderstand von rund 5 Ohm, mit rund 2,4nF Last verschleift es dein Ausgangssignal
 
Hm, OK, also anderen MOSFET? Oder ist der Treiber ungeschickt gewählt?
 
Ich nutze den selben Treiber, schau dir mal unter Last dein Ausgangssignal vom Mosfettransistor an, ist das schön Rechteckig, ist alles gut.
 
So schaut’s jetzt mit 4W Last aus:
4767946D-EA9B-4F98-AA4A-8C3C3992874D.jpeg
Mir fällt der Zacken beim Einschalten auf und das Schwingen, solange der MOSFET an ist. Die Last ist ein simpler 33 Ohm-Widerstand
Die Schaltung dazu:

1668950405490.png
 
Moin,

da fehlt 'ne RC-Beschaltung des Gate damit das Überschwingen aufhört. So hast Du einen Störsender...

CS
Jörg
 
Hallo Jörg, kannst Du das für Elektronik-Anfänger erklären? RC heißt irgendwas mit Widerstand und Kondensator, aber was genau :oops:
 
Moin,

richtig.

Beispiele zur Gate-Beschaltung Deiner MOSFET's findest Du wenn Du Dir im Netz das Datenblatt suchst. Ich habe das jetzt auch nicht komplett vor Augen, da müßte ich auch erstmal in meinen Unterlagen wühlen, dazu mache ich das nicht oft genug.

Das IC mit dem Du die Leistungsstufe ansteuerst schaltet anscheinend sehr schnell. Das macht die Überschwinger. Also muß da ein einfacher Tiefpaß zwischen, der diese Überschwinger tötet. Das geht am einfachsten mit einem Widerstand und ggf. einem kleinen Kondensator. Normalerweise, wenn Du den Typ Deiner Mosfets googelst findest Du das Datenblatt, da sind in der Regel Musterbeschaltungen drin.

CS
Jörg
 
da fehlt 'ne RC-Beschaltung des Gate damit das Überschwingen aufhört. So hast Du einen Störsender...
Die RC Schaltung hat er schon, der Treiber hat einen Ri ~4Ohm, eine Gate C von ~1,5n. Erschwerend kommt hinzu, dass es noch eine Gateinduktivität von ~7nH mitspielt, welche eine Störfrequenz als Reihenschwingkreis von ~200Mhz bestimmt. Das wirkungsvoll zu unterdrücken, wird kniffelig. Ist der zusätzliche Gatewiderstand (extern) zu hoch verschliefen die Flanken, ist ein Kondensator zu groß, passiert dasselbe. Hinzu kommt noch ein ggf. überlasteter Treiber.

Hilfreich ist ein LCD-Sieb, die Zeitbestimmenden Glieder L und C müssen natürlich der Frequenz angepasst werden. Ich habe das hier so berechnet, dass hier eine regelbare Gleichspannung raus kommt, die Schaltfrequenz beträgt allerdings hier ~200kHz. Durch die Diode wird sogar die gespeicherte Energie der Spule im gesperrten Zustand mit genutzt.
1668961386597.png
 
Zuletzt bearbeitet:
Hallo Wolfgang,
zunächst einmal würde ich an der Stromversorgung des MCP ein oder zwei Blockkondensatoren von + nach Masse anbringen. Auf jeden Fall einen fetteren Kondensator (z.B. einen 4,7uF Elko, Polarität beachten!) und vielleicht noch zusätzlich einen kleineren Kondensator (z.B. 100nF). Die genauen Werte sind nicht so wichtig, irgend etwas in der Größenordnung. Du kannst auch einfach zunächst einmal mit dem Oszi nachsehen, ob direkt an den Stromversorgungs-Pins beim Umschalten die Spannung kurz einbricht. Ich habe damit bei einer ähnlichen Schaltung die Störschwinger deutlich reduzieren können.

Mit einem kleinen Widerstand zwischen Treiber-Ausgang und MOSFET-Gate (z.B. 100 Ohm oder etwas weniger) kannst Du zusätzlich die Anstiegszeit beim Umschalten etwas bremsen. Damit habe ich die Störschwinger ebenfalls reduzieren können, allerdings geht das etwas auf Kosten des sinnvoll verwendbaren PWM-Wertebereichs (wenn der MOSFET nur für sehr kurze Zeit ein oder ausgeschaltet ist).

Viele Grüße,
Joachim
 
Die RC Schaltung hat er schon, der Treiber hat einen Ri ~4Ohm, eine Gate C von ~1,5n. Erschwerend kommt hinzu, dass es noch eine Gateinduktivität von ~7nH mitspielt, welche eine Störfrequenz als Reihenschwingkreis von ~200Mhz bestimmt. Das wirkungsvoll zu unterdrücken, wird kniffelig. Ist der zusätzliche Gatewiderstand (extern) zu hoch verschliefen die Flanken, ist ein Kondensator zu groß, passiert dasselbe. Hinzu kommt noch ein ggf. überlasteter Treiber.

Hilfreich ist ein LCD-Sieb, die Zeitbestimmenden Glieder L und C müssen natürlich der Frequenz angepasst werden. Ich habe das hier so berechnet, dass hier eine regelbare Gleichspannung raus kommt, die Schaltfrequenz beträgt allerdings hier ~200kHz. Durch die Diode wird sogar die gespeicherte Energie der Spule im gesperrten Zustand mit genutzt.
Den Anhang 293635 betrachten
Moin,

Danke, das ist ein Service *Weihrauchfaß schwenkt* ...

CS
Jörg
 
Hi,

was mich wundert, warum nehmt ihr eigentlich keine fertigen Module?
Da gibt es ja welche mit MOSFET und PWM und sind sehr günstig.

Also ich löte nicht mehr selbst. ;)

(und diese Urzeit Bridge ist ja nur noch für educational Zwecke ;) )

Gruß
Peter
 
Hallo Peter,

zunächst werden die billigen Module exakt die gerade hier diskutierten Probleme zeigen (die bestehen nämlich auch oft nur aus einem MOSFET und ein paar Widerständen, dazu vielleicht noch eine LED, welche für viele Anwendungen überflüssig ist). Deshalb kommt es einfach auf die Anwendung und die Anforderungen an.

Für ein simples Heizband mit ein paar Herz PWM-Frequenz sind die Module sicher prima. Aber bei höheren Frequenzen und dem Wunsch nach wenig Störimpulsen hast Du es dann damit schwerer, selbst Verbesserungen vorzunehmen. Meinen LED-Panels möchte ich gerne negative Spannungsspitzen ersparen und wenn im Gestrüpp der vielen Datenverbindungen eine Störquelle weniger herumspukt, halte ich das auch für keinen Fehler.

Ich löte gerne selbst
  • da ich dann maßgeschneiderte Schaltungen zusammenstellen kann, mit nicht mehr und nicht weniger als gewünscht
  • da eine Platine mit allen Schaltungsteilen meist kompakter ist, als zusammengesetzte Fertigmodule (wobei ich durchaus auch fertige Module einsetze, wo mir eine eigene Schaltung zu aufwendig ist (z.B. ein Arduino/Raspi Pico Modul oder einen DC-DC-Schaltregler).
  • weil’s (mir) Spaß macht ;)

Viele Grüße,
Joachim
 
Status
Es sind keine weiteren Antworten möglich.
Zurück
Oben