standalone arduino - MOSFET PWM für Lüfterregelung

So, nun habe ich noch ein paar Sachen probiert.

Zum einen habe ich mal anstatt des Lüfters nur eine LED als Last betrieben. Damit läuft es einwandfrei, auch bei 25kHz.

Als Gate Widerstand habe ich mal noch anstelle der 390 Ohm 470 Ohm eingelötet.

Mittlerweile kann ich jetzt die Schaltung auch mit 20-25 kHz und angeschlossenem Lüfter betreiben, allerdings noch nicht wirklich zuverlässig. Aber immerhin gibt es nicht mehr jedes mal Probleme, wenn ein hoher PWM Wert erreicht wird. Das zeigt ja, dass es in die Richtige Richtung geht :slight_smile:

Ich habe mal noch ein Bild von der Unterseite meiner Platine gemacht. Schön ist sicherlich was anderes :blush:
Die rot markierten Leiter sind die Masse Bahnen. Auf der Oberseite habe ich auch noch eine Masse-Käbelchen verlegt, allerdings bekommt man da von einem Foto wohl keinen Überblick, da dort auch noch einige andere Kabel laufen...
Die gelbe Bahn ist eine 5V Leitung (Versorgungsspannung der Schieberegister). Ich hoffe, dass die beiden Leitungen nebeneinander keine Probleme machen. Allerdings liegt da ja keine dynamische Spannung drauf.
Außerdem habe ich mal noch die Pins des MOSFETs und des Bipolartransistors mit Grün markiert.
Hoffentlich ist das Bild kein Musterbeispiel wie man es nicht machen sollte... :roll_eyes:

Wenn es also mit kleineren Maßnahmen noch möglich ist die Masseführung zu verbessern, dann würde ich das mal noch probieren.

Wie gesagt, eigentlich könnte ich jetzt auch mit ~15kHz leben, damit scheint der Aufbau nun einigermaßen stabil zu funktionieren. Da ich aber gerne aus meinen Fehlern lerne und 25kHz eigentlich auch nicht gerade Hochfrequenztechnik sein sollte, würde ich auch noch Verbesserungsmaßnahmen durchführen (wenn ich nicht die Platine komplett neu aufbauen muss).

EDIT: Sorry, das Bild zu verkleinern habe ich im Eifer des Gefechts vergessen :blush:. Ich bin sonst auch kein Fan von solchen "Postern".
Habe einen neuen Anhang beigefügt.

Kann mir mal einer erklären warum hier immer Bilder mit 3000x2000 Pixeln Auflösung hochgeladen werden? Das viele Scrollen macht es schwieriger den Überblick über eine Schaltung zu bekommen, als wenn man ein Bild mit 1280x1024 oder so ähnlich hat. Mehr Details bekommt man mit der hohen Auflösung eh nicht, die meisten Bilder wirken dann eh schon verschwommen.

Ist eigentlich ein Problem der Forum-Webseite, die sollte die Bilder nicht nur als Daumennagel und volle Pixelgröße, sondern auch/besser mit "width=100%" oder so bereitstellen können. Das würde normalen Browsern viel helfen.

Meine Freunde gucken immer blöd, wenn ich mich über gemailte Bilder von xMB Größe mit dem Hinweis beschwere, ich wolle sie mir nur auf dem Bildschirm anschauen. (Schaff dir doch schnelleres Internet an)

michael_x:
Ist eigentlich ein Problem der Forum-Webseite, die sollte die Bilder nicht nur als Daumennagel und volle Pixelgröße, sondern auch/besser mit "width=100%" oder so bereitstellen können. Das würde normalen Browsern viel helfen.

Nicht ganz. Denn die width=100% ändern leider nix an der Größe der Bildatei. Wer z.B. mobil, weil unterwegs oder auf Arbeit im Forum mitliest, der hat dann ein Problem.
Ich betreue ehrenamtlich die IT eines größeren Tierschutzvereins. Dort kommen teilweise mehrere Mails pro Tag zu vermissten Tieren an. Viele der Leute scheinen da auch zu glauben das die Größe des Bildes direkt proportional zur Chance ist, das Tier wieder zu finden. Daher kenne ich die Mailproblematik auch recht gut :slight_smile:

dominikdh:
Mittlerweile kann ich jetzt die Schaltung auch mit 20-25 kHz und angeschlossenem Lüfter betreiben ....

Glückwunsch!

dominikdh:
Wenn es also mit kleineren Maßnahmen noch möglich ist die Masseführung zu verbessern, dann würde ich das mal noch probieren.

Das ist nicht so einfach zu beantworten, weil eine wichtige Info fehlt: Wo ist die Spannungsversorgung angeschlossen, wo sitzt der Spannungsregler?

Was mir auf alle Fälle sehr ungünstig erscheint, dass die Masse des MosFet von der Source über den Prozessor führt.
Hier würde ich versuchen einen direkte Masseverbindung der Source nach rechts auf den Massering zu ziehen.

Generell gilt: Vom Leistungsteil (MOSFET, Spannungsregler möglichst kurz und dick zur Masseklemme der Versorgung (bzw. des Elkos dort), vom Prozessor möglichst kurz zum Massefußpunkt des 5V Reglers.

Gunther

So, sieht gut aus :slight_smile:
Ich habe mal die Masse von der Source direkt nach rechts weg verlegt, nun läuft es absolut fehlerfrei :slight_smile:
Gerade lasse ich das Programm mal zu Testzwecken mit 50kHz laufen, bisher ohne Fehler!

Ich habe trotzdem mal noch in das Bild die Anschlussklemme der Spannungsversorgung (GND/+12v) und die Positionen der Spannungsregler (7808/7805) eingetragen. Da ich kein neues Bild gemacht habe, ist die Masseleitung vom MOSFET natürlich noch die Alte.
Wenn du also noch einen kurzen Kommentar zu der Masseführung hast, würde mich das schon interessieren. Wie gesagt, ich lerne gerne dazu :wink:

Die Anbindung der Spannungsregler an die Masse ist perfekt.

Idealerweise wäre der Mosfet auch links unter den Spannungsreglern.

Also alle Leistungsführenden Bauteile zusammen in eine Ecke, alle signalführenden Bauteile in die andere.
Damit vermeidet auch, dass hohe Ströme, oder schnelle, Störungen verursachende PWM, quer über die Platte laufen.

Etwas verbessern kannst du die Sache, wenn du den Masserahmen aus dickem Draht ausführst, z.B. 1.5mm² massiv, was aber beim Löten eher Probleme verursacht.

Am besten ist es immer die großen Ströme an einer Stelle zu konzentrieren, damit sie garnicht erst in den Aufbau reinkommen.

Grüße

Gunther

Ok, das macht Sinn.

Wenn ich das nächste mal etwas mit Frequezen > 60Hz mache, werde ich mir wohl erstmal noch etwas Theorie aneignen müssen. Habe doch gemerkt, dass mir da noch einiges an Wissen fehlte. Bin halt Maschinenbauer und kein E-Techniker ;).
Da wäre ich ohne deine Hilfe doch aufgeschmissen gewesen.
Also nochmals vielen herzlichen Dank!

Immer gerne.

vom programmieren verstehe ich leider nicht soviel wie von Hardware... :blush:

Und da mir hier auch schon oft geholfen wurde, gebe ich gerne was zurück.

Gunther

dominikdh:
Da Lüfter allerdings bei der relativ niedrigen PWM-Frequenz des Arduinos hörbare Pips-Geräusche von sich geben, will ich die Frequenz mit der PWM frequency library auf 25kHz hochsetzten. Damit klappt das feaden jedoch noch nicht, ab einem bestimmten PWM Wert bricht die Spannung wohl wieder zu weit ein, sodass der Atmega irgendwie hängen bleibt (jedoch nicht neu startet)...

Hier liegt vielleicht auch ein Problem begründet. 500Hz PWM Frequenz ist nicht zu wenig. Sondern schon zu viel für eine Lüftersteuerung. Du müßtest runter statt hoch. So um die 150Hz, dann sollte kein Lüfter mehr fieben. Zur größten Not kann man noch einen kleinen RC an den PWM Ausgang setzen um die Kanten zu glätten. Spätestens dann fiebt nichts mehr. Die feine Steuerung per PWM bleibt voll erhalten.

Hmm, ok.

Auf die 25kHz bin ich auf diversen Seiten gestoßen, u.a. auf der englischen Wikipedia.

Wenn ich mit der PWM Frequenz runter gehe und ein RC-Glied dahinter schalte, wäre es ja im Prinzip eine Drehzahlanpassung des Gleichstrommotors durch die Variation der Betriebsspannung, oder?
Dann wäre es ja ein anderer "physikalischer Ansatz", wenn ich das richtig verstehe...

Spricht denn etwas dagegen den Lüfter direkt mit einer höheren PWM Frequenz zu regeln? Leidet darunter auf Dauer der Lüftermotor?

dominikdh:
Spricht denn etwas dagegen den Lüfter direkt mit einer höheren PWM Frequenz zu regeln? Leidet darunter auf Dauer der Lüftermotor?

Nein, definitiv nicht.
Durch die PWM im nicht hörbaren Bereich (>20khz) hörst du das fiepen nicht mehr. Durch die PWM wird der Strom durch den Lüftermotor reduziert.
bei PWM 150Hz + RC Glied erzeugst du eine reduzierte gleichspannung (wobei der C dann schon sehr gross sein muß) nur das verschleifen der Flanken reduziert die zwar die Lautstärke, löst das Problem aber nicht grundsätzlich. PWM >20kHz ist der professionellere Weg, hat allerdings, wie du ja selbst gemerkt hast, auch manch tückische Auswirkung.... :wink:

Gunther

Ja, so habe ich es auch verstanden.

Trotzdem danke für die Anregung :slight_smile:

Hallo,

das wundert mich jetzt wirklich. Meine gekaufte Lüftersteuerrung "T-Balancer" arbeitet mit ca. 140Hz PWM einwandfrei.
Habe mal bei Intel nachgeschaut was die für Ihre 4Pin Lüftersteuerung vorschreiben ... Tatsache ebenfalls 25kHz.

Naja, je höher die Frequenz um so mehr sieht es für den angeschlossenen Verbraucher nach Gleichspannung aus. :wink:

Mich würde jetzt interessieren, ob man bei höherer Frequenz dann noch genauso gut gegen 0 regeln kann? Laut dem Dokument soll man nicht unter 15% gehen. Die Periodendauer ist bei 500Hz 2ms lang und bei 25kHz nur noch 40µs. Ich meine bei einer 8Bit Auflösung entpricht PWM 1 bei 500Hz noch 8µs und bei 25kHz nur noch 157ns. Recht kurzer Impuls.

Ihr werdet das schon richtig machen. :wink:

Mit dem weiter oben geposteten Programm hab ich den Lüfter auf- und abgefadet, auch auf bzw. über 0.
Da habe ich keine Probleme sehen/hören können. Was da dann allerdings effektiv beim Lüfter für ein Signal ankommt, kann ich dir leider nicht sagen, da ich kein Oszilloskop zur Verfügung habe. Das stimmt schon, ein Impuls von 157ns hört sich schon recht kurz an ;).

Gerade habe ich mal wieder das Display und die Temperatursensoren angeschlossen und an der Software etwas weiter geschrieben. Da kam schon wieder das nächste Problem XD
Sobald ich in der Software die PWM Frequenz hochgesetzt habe (auch ohne Ausgabe an einen Pin), haben die Werte der Temperatursensoren angefangen um +-5°C zu schwanken.
Für den einen Sensor habe ich softwaremäßig einen Tiefpassfilter (Mittelwertbildung über 10 Messungen) geschrieben. Das Ergebnis war soweit zufriedenstellend.
Außerdem habe ich an die Spannugnsversorgung des anderen Sensors mal noch testweise einen 100nF Kondensator an die Spannungsversorgung gehalten. Das scheint auch genügend zu filtern. Bin also gleich noch einmal löten :wink:
Wahrscheinlich würde sonst auch noch ein Tiefpass (RC-Glied) an dem Analog-Eingang des Atmegas helfen, oder? Nur für den Fall, dass das einer nachbauen will XD.

dominikdh:
Wahrscheinlich würde sonst auch noch ein Tiefpass (RC-Glied) an dem Analog-Eingang des Atmegas helfen, oder?

Richtig.
Nach Abtasttheorem muß die Grenzfrequenz des Tiefpasses kleiner der Abtastfrequenz sein, damit deine Softwarefilter überhaupt funktionieren.
fg = 1/(2PiR*C) Wenn du z.B. alle 100ms den AD-Wert einliest dann hast du eine Abtastfrequenz von
fa = 1/100ms = 10Hz.
das würde einen Tiefpass von 1µF und 16k erfordern, oder größer. Praktisch würde ich hier 10k nehmen und als C 4,7µF Elko parallel 100nF Kerko.
Fußpunkt der Kondensatoren möglichst nahe an der Controllermasse.

Erklärung: Wenn du dein Signal nicht glättest, dann springt der Wert am AD wild hin und her (im takt der PWM). Je nach dem, wann du den AD-Wert abfragst, kriegst du ein zufälliges Ergebnis, oder, schlimmstenfalls, wenn du im Takt der PWM abfragst, dann kann es passieren, dass du z.B. immer im Minimum der Signalschwingung abtastest, dann kriegst du einfach falsche Werte.

Gunther

Ja, das dürfte dann ein klassischer Alias-Effekt sein...

Da ich aber mit den Kondensatoren an der Spannungsversorgung der Sensoren bereits sehr saubere Messdaten erhalte und mir auf der Platine an der entsprechenden Stelle leider der Platz ausgeht, werde ich mir wohl den Tiefpass sparen (müssen/können).

In dem Fall hätte ich aber trotzdem noch eine Frage, vielleicht brauche ich ja mal in Zukunft noch einen Tiefpass :wink:
Wie man auf das Produkt von R*C kommt, ist mir dank deiner Erklärung klar. Dass man dann natürlich keine Kapazität von 1F nimmt, leuchtet auch ein. Die Werte, die du dann für R=16k? und C=1µF angegeben hast, sind dann "Erfahrungswerte"? Man könnte ja auch, um die Gleichung zu erfüllen, beispielsweise R=8k? und C=2µF wählen...

Außerdem habe ich schon länger die Frage, wann man welche Bauart von Kondensator wählt. Wenn man hohe Kapazitäten braucht, bleiben natürlich nur noch Elkos.
Ist die von dir vorgeschlagene Parallelschaltung aus Elko und Kerko, da Kerkos schneller arbeiten und somit höhere Frequenzen besser glätten?

Wenn du mir das in 1-2 Sätzen erklären kannst, würde ich mich freuen. Ansonsten lässt sich dazu sicher auch was im Internet finden, du hast mir ja schon schließlich sehr viel geholfen! :slight_smile:
Wenn du mir außerdem ein Buch empfehlen kannst, in dem entsprechendes Wissen vermittelt wird, würde mich das auch interessieren. Schön wäre, wenn es eher praxisorientiert zur Planung von Schaltungen geschrieben ist.

dominikdh:
Ja, das dürfte dann ein klassischer Alias-Effekt sein...

Da ich aber mit den Kondensatoren an der Spannungsversorgung der Sensoren bereits sehr saubere Messdaten erhalte und mir auf der Platine an der entsprechenden Stelle leider der Platz ausgeht, werde ich mir wohl den Tiefpass sparen (müssen/können).

In dem Fall hätte ich aber trotzdem noch eine Frage, vielleicht brauche ich ja mal in Zukunft noch einen Tiefpass :wink:
Wie man auf das Produkt von R*C kommt, ist mir dank deiner Erklärung klar. Dass man dann natürlich keine Kapazität von 1F nimmt, leuchtet auch ein. Die Werte, die du dann für R=16k? und C=1µF angegeben hast, sind dann "Erfahrungswerte"? Man könnte ja auch, um die Gleichung zu erfüllen, beispielsweise R=8k? und C=2µF wählen...
Gunther: Richtig. 8k/2µF ginge auch. Oder 1,6k/10µF. Nimm die Werte die du hast. Man sollte nur darauf achten das die Widerstände nicht zu groß sind. Alles was über 50k geht sollte man vermeiden,sonst wirds zu empfindlich, besser unter 20k.

Außerdem habe ich schon länger die Frage, wann man welche Bauart von Kondensator wählt. Wenn man hohe Kapazitäten braucht, bleiben natürlich nur noch Elkos.
Ist die von dir vorgeschlagene Parallelschaltung aus Elko und Kerko, da Kerkos schneller arbeiten und somit höhere Frequenzen besser glätten?
Gunther: Ebenso richtig. (Du weißt ja schon alles... ;))
Kondensatoren arbeiten nur in einem bestimmten Frequenzbereich als Kondensatoren. Elkos werden bei höheren Frequenzen einfach zu Spulen, weil der induktive Anteil der Wicklung größer wird als der Kapazitätswert. Deshalb findet man oft eine parallelschaltung von Kondensatoren verschiedener Größenordnungen.(ich kann mich an einen EMV-Filter an einer KFZ Versorgungsleitung erinnern, der bestand aus 8(!) abgestuften parallelen Kondensatoren, von PicoFarad bis MicroFarad)

Wenn du mir das in 1-2 Sätzen erklären kannst, würde ich mich freuen. Ansonsten lässt sich dazu sicher auch was im Internet finden, du hast mir ja schon schließlich sehr viel geholfen! :slight_smile:
Wenn du mir außerdem ein Buch empfehlen kannst, in dem entsprechendes Wissen vermittelt wird, würde mich das auch interessieren. Schön wäre, wenn es eher praxisorientiert zur Planung von Schaltungen geschrieben ist.
Gunther: Sorry, Bücher kenne ich keine.

Super, danke!
Dann begebe ich mich mal wieder an die Programmierung :wink:

Schöne Grüße
Dominik