Projekt: 12 V LEDs mit MOSFET und PWM dimmen

Hallo zusammen,

ich habe ein Projekt, bei dem Taschenlampen LEDs, die mit 12 V laufen und ca. 1.6A ziehen mit PWM gedimmt werden sollen.

Dazu habe ich einen IRFZ44N Mosfet eingebaut. Das ganze funktioniert mit einem MOSFET und einer Lampe super. Es sollen aber insgesamt 10 LAMPEN mit 10 MOSFETS unterschiedlich angesteuert werden. Ich verwende einen Arduino Mega, und (sofern es mit dem Arduino klappt) ein PWM-Board PCA9685. Die Schaltpläne hier sind nun nur symbolisch.

Im Endeffekt befeuern 2 12-V Netzteile je 5 Lampen und es gibt je ein 5V-Netzteil für den Arduino und für das PWM Board.

Folgendes Test-SetUp habe ich dazu aufgebaut:

void setup()
{
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
}

void loop()
{
  analogWrite(3, 255); 
  analogWrite(5, 0); 
  delay(2000); 
  analogWrite(3, 0); 
  analogWrite(5, 255);
  delay(2000); 
}

Die Schaltkreise sind mit Tinkercad erstellt und die Simulation macht auch genau das, was es soll. Die Lampen leuchten abwechselnd.

In meinem echten Aufbau funktioniert die unterschiedliche Ansteuerung allerdings nicht. Mit einer Lampe ist alles in Ordnung. Aber bei 2 Lampen, egal ob sie an unterschiedlichen Netzteilen hängen oder nicht, leuchten entweder beide Lampen komplett durch oder sie leuchten beide mit dem Befehl für die erste Lampe.

Habt Ihr dazu eine Idee, was da schief gelaufen sein könnte?

Viele Grüße und schonmal danke für Eure Antworten,
Nougat

Was falsch läuft ist dein Geheimnis.
Vermutlich verbirgst du es vor dir selber, ohne es zu wissen und damit auch vor uns.
Verwendest du eine Beta Version der IDE?

Was mir auffällt:
Es fehlen die Gate Strombegrenzungen (die PCA9685 Bords haben diese drauf 200R)
pinMode() ist hier flüssiger als Wasser, überflüssig.

Also passt die Verkabelung laut Schema erst mal und du denkst, das macht auch nichts, wenn ich weitere Lampen daranhänge?

Ich verwende Version 1.8.19. Ich weiß nicht, ob das eine Beta Version ist.

Das heißt, jeweils noch einen 200 Ohm Widerstand zwischen Gate und Arduino Pin klemmen?

Das habe ich nicht gesagt, sieht aber prinzipiell ok aus.
Ist nur die Frage, ob das mit der Realität übereinstimmt?
Denn: Deine Absicht sehe ich. was du wirklich tust, nicht.

Ob eine, oder 10 sollte egal sein, wenn du keinen Bock schießt.

Wenn Beta dran steht ist auch Beta drin.
Steht Beta dran? Nein!
Ist es eine Beta Version? Nein!

Habe ich nicht gesagt!
Wiederholung: "Es fehlen die Gate Strombegrenzungen".

Und ja, für einen realistischen Vergleich/Test könntest du 200R verwenden.

Vielen Dank schonmal für die Antworten.

Wenn es in dieser Theorie soweit in Ordnung ist, ist das für mich schonmal gut zu wissen. Weil selbst bei diesem Teil war ich mir unsicher.

Jetzt kann ich die Praxis überprüfen, das geht allerdings erst frühstens heute Abend.

Was genau machen denn die Gate Strombegrenzungen?

Sie begrenzen den Strom bei der Umladung der Gate Kapazität.
Das ist gut für den µC/UNO, denn der "soll" nur mit max, 20mA belastet werden.
(auch wenn es mehr aushalten würde)

Sie begrenzen die Flankensteilheit, sorgen so für weniger Störungen (z.B. damit dein Nachbar noch Radio hören kann, wenn bei dir das Licht an geht)

Ja, du verwendest zur Steuerung der Leds unterschiedliche Pins.

Was vielleicht ein wenig schlampig wirkt/ist, aber nix ausmacht.

You do not need to call pinMode() to set the pin as an output before calling analogWrite() .

Ja stimmt, danke.
Und das "Schlampige" irritiert ungemein.

Mich auch.
Ungemein!

Ich frage mich dann immer, was ist sonst noch "so" gebaut. Aber das dürfen wir ja nicht sehen.

Wie auch immer:
Dieses ist mal wieder ein abschreckendes Beispiel für "magische Zahlen" in Programmen.

Nur Sorgfalt, Wissen und Disziplin führen in den Erfolg.

Schonmal vielen Dank für Eure Antworten...
Irgendwie finde ich den Ton hier schon etwas unfreundlich... Tatsächlich habe ich beim Code zuerst den Pin 4 statt 5 benutzt, dann habe ich gesehen, dass beim Arduino UNO der 4. Pin kein PWM Pin ist, das habe ich dann im Code im Loop angepasst, und im Setup vergessen. Da die Simulation trotzdem richtig gelaufen ist, habe ich diesen Fehler nicht bemerkt.

Ich werde sobald ich nicht mehr auf der Arbeit sitze, sondern meinen Aufbau fotografieren kann, gerne ein Bild meines Aufbaus schicken.

Da mir das Wissen fehlt, da ich kein Elektroniker bin, frage ich hier nach, wie das, was ich machen möchte, richtig geht.

Ging mir beim mitlesen ebenso. Ich weiß aber auch, das dies nicht gewollt ist.

Ok, auch hier sind nicht alle Elektroniker. Aber eins ist wichtig, wir können nicht auf deinen Bildschirm schauen, daher benötigen wir soviel wie möglich Infos von dir. Und diese möglichst genau.

Der IRFZ44 ist kein Low Level MOSFET. Der schaltet bei 5V nicht voll durch.
Nimm den IRLZ44.

Welchen Arduino verwendest Du denn nun? den MEGA oder den UNO?

Der Arduino MEGA hat PWM an folgenden Pins: 2 - 13, 44 - 46

Der Code und die Schaltung müßten das machen was Du willst. Ich weiß nicht wo der Fehler liegt.

Grüße Uwe

Ich gehe mal davon aus, dass sich das Problem erledigt hat.
Oder auch nicht......

Wie auch immer, das ist jetzt der dritte Thread, welcher ohne Rückmeldung abstirbt. Es ist also davon aus zu gehen, dass wir niemals erfahren werden, was schief gelaufen ist, oder noch schief läuft.

Bemerkenswert:
Die arme gequälte Seele fühlt sich "unfreundlich" behandelt!
Zeigt aber selber ein ausgeprägtes antisoziales Verhalten.
Herrje....

Na immerhin ging das nicht nur mir so. Wenn es nicht gewollt ist umso besser.

Tut mir leid, ich konnte die letzten Tage nicht online sein. Jeden Morgen um 8 auf Arbeit und danach zu dem Projekt und bis 1 Uhr nachts dran arbeiten, lässt einem nicht so viel Zeit. Wie ihr vielleicht raushört, da gibt es eine Deadline für das Projekt.

Ich nutze einen Arduino MEGA, habe den UNO nur in der Simulation genommen, da Tinkercad keinen MEGA hat.

Die Verkabelung war schematisch richtig, ich habe in meinem Aufbau auch alle Fehler ausbügeln können und habe vorgestern Nacht rausgefunden, warum die Lampen alle zusammen geleuchtet hatten und nicht auf die einzelnen Befehle gehört haben.
Die MOSFETS waren alle zusammen auf dem gleichen Kühlkörper (aus Alu) befestigt. Zwar mit nicht-leitender Wärmepaste, aber mit einer Metallschraube festgeschraubt, also doch wieder leitend verbunden.
Beim Test nur mit dem Breadboard waren die MOSFETS natürlich nicht verbunden und alles lief einwandfrei. Ich habe überlegt, ob es hilft, den Kühlkörper auch an GND bzw. an V- des Netzteils zu klemmen, aber bei einem Test hat dann gar nichts mehr funktioniert. Ich muss nun überlegen, ob ich die Kühlkörper wirklich brauche und wenn ja, wie ich das dann trotzdem hinkriege.

Nun teste ich, ob auch noch alles mit dem PWM Board funktioniert, und danach muss ich noch einen SD-Card Reader einbauen und MIDI-Files auslesen lassen. Ich habe 2 Bibliotheken momentan für die MIDI Files im Test: "MD-Midi Files" und "MIDI-Library". Wenn jemand eine Präferenz hat, teilt sie mir gerne mit. Ich bin für jede Unterstützung dankbar.

Mal das ganze Projekt und meine Person erklärt, für den, dens interessiert: (Achtung, es ist ein Abschlussprojekt für die KUNSTHochschule!)
Ja, Kunsthochschule, allerdings bin ich Mathematikerin und habe diverse Programmier-Erfahrung: u.A. einen "interaktiven Bildeditor für Osmose und Diffusion" bei dem ich sowohl das BiCGStab und FED Verfahren implementiert habe als auch die Oberfläche dazu. Ja, ich weiß, das kann Photoshop schon alles, aber das ist was, was mir mathematisch und programmiertechnisch wirklich Spaß macht. Damit möchte ich nicht angeben, sondern nur klarstellen, dass ich durchaus programmieren kann und weiß, was Sorgfalt beim Coden bedeutet, und ich weiß wie es ist, ohne Debugger zu programmieren.:upside_down_face:

Das Projekt selbst heißt Sonoskop:
Ich habe ein Keyboard, das MIDI ausgeben kann und 10 Röhren, die durch die Tasten des Keyboards angesteuert werden sollen.
Die Röhren sind weiße HT-Rohre mit bunten Folien darin und einem Taschenlampenkopf an einer Seite. Sie sind kugel- oder sternförmig angeordnet und hängen im Raum.

Von dem Keyboard gehe ich mit MIDI-Kabeln an eine kleine Platine, die die MIDI-Befehle an den Arduino weitergibt. Ich nutze nur die Tonhöhen und die Lautstärke in der gespielt wurde um die entsprechende Lampe mit der der Lautstärke entsprechenden Helligkeit anzusteuern. Sollte grad keine auf die Tasten drücken, soll ein Playback von der SD Karte (alles MNIDI-Dateien) starten und der Arduino soll diese MIDI Daten nutzen und an die Lampen sowie das Keyboard schicken (denn den Ton soll man ja trotzdem hören).

Die Steuerung der Lampen selbst funktioniert dann über das PWM-Board und die MOSFETS.

Das ganze läuft an der HBKsaar in Saarbrücken. Wer also aus dem Saarland ist und Lust darauf hat, sich das wirklich in Live anzusehen, ist gerne dazu eingeladen am kommenden Wochenende zum Sommer-Rundgang dort vorbeizukommen, dann wir die Arbeit ausgestellt. Wenn alles klappt, und ich die Zeit finde, erstelle ich auch ein Video und lade es bei Gelegenheit ins Netz.

An dem Video hätte ich Interesse :slight_smile: .

Ja, dachte ich's mir. Fehler im Aufbau der Schaltung.

Die meisten Kühlfahnen bzw metallischen Teile der Gehäuse von Halbleitern sind mit irgendeinem Pin verbunden. Außnahmen sind nur voll isolierte zB TO220F Gehäuse und gewisse Tyristoren bzw Triac die intern isoliert sind. zB https://www.es.co.th/Schemetic/PDF/FQPF9N50C.PDF Seite 9.
Zur Montage gibt es Isolierungen ( Glimmer, Silikongummi oder Aluminiumoxid-Keramik Platten) und isolierte Schraubdurchführungen bzw Unterlegscheiben für die schrauben.
Wärmeleitpaste braucht es trotzdem. Diese stellt aber keine Isolation dar.
Grüße Uwe

Die Arduinos können auch Schrittmotore und Servos ansteuern, außerdem Lichtstreifen pixelweise animieren, so Dein nächstes Kunstprojekt mehr mechanische und optische Bewegung vertragen könnte.

Mein Onkel ist Künstler und hat immer gleich viele Projekte im Kopf herumschwirren. MIDI habe ich von ihm kennengelernt, er hat in den 70er Jahren damit Synthesizer zum Klingen gebracht.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.