ich möchte einen 12V DC Lüfter per Arduino in der Drehzahl runterregeln und dabei dieses Mal möglichst wenig Aufwand in Richtung Lochrasterplatine, Mosfets, Drosseln usw. betreiben. Denn es gibt doch heutzutage im Bereich des "Zubehörs für Entwicklerboards" für fast alles ein kleines Platinchen mit Schraubklemmen und Stiftleiste, für ganz wenige Euro...
Aber ich treffe hier wohl auf die Schnelle nicht die richtigen Suchbegriffe... könnt Ihr mir irgendwas nennen?
Also:
12V Eingang, Ausgang für den Lüfter 7...12V
Strom 300mA reicht dicke
entweder ein Mosfet am Arduino-PWM-Pin, gefolgt von Drossel und Elko, damit der Lüfter halbwegs glatte Spannung bekommt, aber muß halt mit den nur 500Hz PWM zurechtkommen, also ziemlich große Drossel und Elko.
oder ein per Analogsignal steuerbarer DCDC-Wandler
oder ein per SPI oder I2C steuerbarer DCDC-Wandler
Da häng ich mich mal dran, weil mir da auch etliche Dinge zu einfallen würden...
Die üblicherweise verwendete Methode ist, einen normalen DCDC zu benutzen und dem dann am Feedback ein wenig Fremdspannung (bzw. Strom) zu geben, via PWM mit einem RC-Filter z.B.
Das zu dimensionieren ist nicht so ganz einfach, aber das Prinzip schon.
Man braucht halt Kenntnisse über den verwendeten Chip, dessen Datenblatt, die bestückten Widerstände und ein wenig Rechnerei...
Wenn du einen PC-Lüfter mit 4 poligen Anschlusskabel nutzt, brauchst du nichtmal eine Zusatzplatine, dann kann der Arduino das ganz alleine machen. Dafür gibt es einige Beispiele im Netz.
Da ist vielleicht der Lüfter ein paar Cent teurer, aber du bauchst keine weitere Hardware und es funktioniert quasi out of the box :-)
Ok, es war klar, daß es viele Möglichkeiten gibt, zum Ziel zu kommen.
Aber gerade weil es so viele Möglichkeiten gitb und wahrscheinlich auch irgendwie das kleine Platinchen, das mir vorschwebt, bleibe ich bei folgenden Einschränkungen:
Der DC-Lüfter ist schon vorhanden, eingebaut und kann nur über moderat reduzierte glatte DC-Spannung in der Drehzahl reduziert werden. Bißchen Welligkeit macht sicher nichts, aber harte PWM ohne Glättung würde ihn wohl durcheinanderbringen.
Ungern Gefrickel an normalen DCDC-Wandlermodulen z.B. mit LM2596. Lieber ein "deppenfreundliches" Modul mit Anschlußklemmen, und einem Steuereingang.
Wenn's nichts gibt, mach ich es halt wie vor Jahrzehnten schonmal mit einer Conrad C-Control: Mosfet, Drossel, Elko. Hab ich einfach per Trial und Error und Beobachten der Welligkeit mit dem Oszi dimensioniert. Hat prima funktioniert, natürlich leicht gefiept mit den 500Hz. Ist aber eben Gefrickel.
Einmal schieb ich's noch hoch, dann gebe ich auf und bastel doch was auf Lochraster.
Habe jetzt ca. 600 Breakout-Boards bei Conrad überflogen.
Da sind einige Buck-Converter dabei, deren Spannung aber immer nur über ein Poti einstellbar ist.
Ferner natürlich ein paar Mosfet-Module oder auch Motortreiber oder Schrittmotor-Treiber. Da fehlt dann die Glättung, und bei 500Hz PWM-Frequenz vom Arduino gibt das keine verwertbare Versorgung für den Lüfter.
Ein Buck-Converter, dessen Spannung über ein Interface einstellbar ist, scheint als Breakoutbord nicht zu existieren.
Wird auf eine handgestrickte Treiberschaltung mit LC-Glättung rauslaufen. Hoffentlich piepst es nicht zu laut. 10-20kHz wären schon schöner als 500Hz.
Ich muß mich mal damit auseinandersetzen, aus der Arduino-Umgebung heraus auch an einem Pin schnelle Hardware-PWM rauszulassen. Auf den Arduino-Seiten gibt's dazu ein paar Infos. Die 500Hz, die ich für das normale AnalogWrite() in Erinnerung hatte, finde ich auch nicht mehr?
Schon vor Jahrzehnten konnte man mit 'nem simplen Linearregler à la LM317 und Transistoren und Widerständen im ADJ-Zweig eine verstellbare Spannungsquelle bauen.
Wenn eines der mit einem Poti verstellbaren Schaltreglermodule so aufgebaut ist, daß das Poti mit einem Ende an Masse angeschlossen ist, lässt sich der gleiche primitive Ansatz verwenden.
Und wenn es anders angeschlossen ist, geht auch das hier:
Man nehme zwei Potis und schließe diese über ein Reedrelais mit Wechselkontakt statt des verbauten Potis an.
Damit lässt sich durch Ansteuern des Relais zwischen zwei Spannungen auswählen.
ich möchte einen 12V DC Lüfter per Arduino in der Drehzahl runterregeln
Nur runterregeln? Und wie kommt er wieder auf höhere Drehzahl?
Deine Kommentare, angefangen beim Eröffnungspost, lesen sich schon recht
merkwürdig.
Es tut mir aufrichtig leid, lieber Jörg, daß ich mit meinen Kommentaren Deine Gefühle verletzt habe. Bitte, bitte, teile mir mit, wie ich das wieder gutmachen kann.
In der Tat ist das ein Riesenproblem, über das ich mir noch gar keine Gedanken gemacht habe. Wenn ich es nun geschafft habe, den 12V-Lüfter mit einer per PWM und Glättung halbwegs brauchbaren Gleichspannung von ca. 7V zu versorgen und er dann langsamer läuft - wie, ja WIE? könnte er dann jemals wieder schneller laufen? Vielleicht indem ich die PWM wieder auf nahe 100% setze?
Oder ist es das Wort "regeln"? Nein, selbstverständlich STEUERE ich den Lüfter allenfalls per Versorgungsspannung so, daß er irgendwie langsamer läuft und dabei leiser ist und weniger Energie verbraucht. Selbstverständlich REGLE ich nicht die Drehzahl. Obwohl, einen Drehzahl-Ausgang hat er schon...
Das hier ist ein Forum, in dem überwiegend an Elektronik interessierte Leute unterwegs sind, die, wenn sie eine Erklärung bekommen, zu gewissen Transferleistungen fähig sind.
Für den Teil aus der Inklusionsecke, die mit Forderungen ankommen, daß man ihnen doch gefälligst die Schuhe zuschnüren soll (und frische Unterwäsche anziehen), aber exakt null Eigenleistung dafür aufbringen wollen, sieht das natürlich anders aus.
Das schwirrte mir auch im Kopf rum. Aber selbst wenn man die Beschaffung vielleicht auf 15-20€ runterdrücken kann, statt mit dem USB-Modul direkt an die TTL-Level serielle Kommunikation rangeht, das ganze ist Overkill.
Ich will ja nur einen Lüfter mit 2,4W Leistung auf niedrigere Drehzahl/Geräusch und einen Verbrauch von unter 1W bringen.
Ich will ja nur einen Lüfter mit 2,4W Leistung auf niedrigere
Drehzahl/Geräusch und einen Verbrauch von unter 1W bringen.
Hast Du mal ausprobiert, was passiert, wenn Du einen simplen (ausreichend dimensionierten) Serienwiderstand verwendest?
Den könntest Du mit einem Relais überbrücken.
Das ist zwar gegenüber einem richtig angesteuerten Lüfter eine Murkslösung, aber Du bestehst ja aus irgendwelchen Gründen darauf, den falschen gekauften Lüfter weiterbetreiben zu wollen.
Es geht nicht darum, daß man es ausschließlich einfach haben will, aber man greift gerne zur einfachen Lösung, wenn es sie gibt.
Und es geht um Abwägung des Aufwands.
Der Zeitaufwand, bis ich rausgefunden habe, ob und wie das Einstellpoti in so einem typischen Buck-Modul eingebunden ist, die Dimensionierung eines Spannungsteilers, der da die Information irgendwie einspeist... womöglich noch ein Digitalpoti einbauen, galvanisch getrennt und über Optokoppler angesprochen? Nein, das ist doch alles zuviel für die Anforderung. Und das hat alexcs gemeint.
Die Lösung PWM-Pin - Treibertransistor - Drossel - Elko ist ja schon relativ einfach und sparsam. Auf primitive Weise einen Buck-Converter zusammengeklöppelt. Wie gesagt, es geht um einen Verbraucher von max. 2,4W!
Es wäre aber schön gewesen, wenn es für ein paar Euro noch einfacher und klarer gegangen wäre: Ein kleines Breakout-Board, Schraubklemmen für die Leistungsseite, Stiftleiste für den Steuereingang, paar Löcher in der Platine zum Anschrauben.
Wenns das nicht gibt, wie gesagt, kommt die schon mehrfach beschriebene Lösung. Schade halt, daß dieser Ansatz zumindest mit meinen Programmierkenntnissen zunächst mit den 500Hz aus der Arduino-eigenen AnalogWrite() läuft und evtl. hörbar vor sich hin fiept.
Ich muß mich mal damit auseinandersetzen, aus der Arduino-Umgebung
heraus auch an einem Pin schnelle Hardware-PWM rauszulassen.
Wenn du auf die Arduinoversteckten Funktionen wie millis verzichten kannst, kannst du natürlich auch die Timer selber einstellen.
Dann geht wesentlich mehr.
Das hier ist ein Forum, in dem überwiegend an Elektronik interessierte
Leute unterwegs sind, die, wenn sie eine Erklärung bekommen, zu gewissen
Transferleistungen fähig sind.
Dazu lese ich den "Malen, nicht labern"-Text viel zu häufig.
Ich würde deiner Aussage zustimmen, ich erwarte das eigentlich auch hier, aber die Realität zeigt: klappt nicht.
Schade halt, daß dieser Ansatz zumindest mit meinen
Programmierkenntnissen zunächst mit den 500Hz aus der Arduino-eigenen
AnalogWrite() läuft und evtl. hörbar vor sich hin fiept.
PCA9685 ist via I²C. Gibt's garantiert ne Library zu, und wenn du das Datenblatt durchblätterst hoffst du das die Lib alle Funktionen unterstützt.
Noch ne Idee:
Ein DAC, der mit einem Power-Opamp ein "Einstellbares Netzteil" spielt.
Ein GP8403 ist ein Doppel-0-10V-DAC den man günstig bekommen kann.
Dazu ein LM675 o.ä. und ab geht's...
PCA9685 ist ein 16 Kanal PWM-Controller für LEDS.
Für mich 14 Kanäle zuviel. Ich will nur einen Lüfter und einen LED-Stripe steuern.
Und: Die Frequenz ist mit 1,6kHz gar nicht so viel geiler :-)
Aaaaber: Nebenbei habe ich den PCA9635 gesehen. Der hat 97kHz Grundfrequenz, dann nur mit 8Bit PWM-Auflösung statt 12, das macht aber gar nichts.
Dennoch, fehlt immer noch Mosfet, Drossel und Elko.
Dein Hinweis auf Drehzahlüberwachung ist gut, mache ich vielleicht wirklich. Ok, dann mit P-Kanal Mosfet in der Pluszuleitung zum Lüfter.
Ganz linear möchte ich nicht. Klar geht es um kleine Leistungen, trotzdem möchte ich nicht die Leistung des Lüfters von 2,4W auf 1W reduzieren und dabei doch wieder 0,5-1W an der linearen Regelung verbraten.
Sonst wäre noch eine Idee gewesen, die Masse eines 7805 per PWM-Pin vom Arduino und RC-Glättung anzuheben. Ergibt 5-10V.
PCA9685 ist ein 16 Kanal PWM-Controller für LEDS.
Für mich 14 Kanäle zuviel. Ich will nur einen Lüfter und einen
LED-Stripe steuern.
Nein.
PCA9685 ist ein 16-Kanal PWM-Controller.
14 Kanäle zuviel ja, aber dafür billig als Breakout verfügbar, verbreitet in der Arduinowelt und sehr flexibel.
Der ist eher nicht für LEDs weil ihm dazu viele Spezialitäten fehlen, aber er ist sehr flexibel.
Jeder Kanal kann nämlich bei einem beliebigen Zählerstand ein- und ausschalten (jeder getrennt!) und die Zählerfrequenz ist auch wählbar.
D.h. je nach Auflösung auf Einstellung wesentlich schneller oder eben feiner.
Der einzige Nachteil: Alle Kanäle laufen mit dem dem gleichen Zähler (aber jeweils zwei individuellen Vergleichern), d.h. Servos mit 50Hz anzusteuern und LED flimmerfrei geht nicht, weil dann alles 50Hz hat.
Aber ansonsten ist das Ding nicht umsonst so weit verbreitet.
Ja gut äh, das wäre bei der Arduino-AnalogWrite-Lösung ebenso, aber mit einem PCA hast du die PWM autonom in Hardware, besser aufgelöst, vielkanalig und besser konfigurierbar.
Zitat Beschreibung von NXP:
Each LED output has its own 12-bit resolution (4096 steps) fixed frequency individual PWM controller that operates at a programmable frequency from a typical of 24 Hz to 1526 Hz with a duty cycle that is adjustable from 0 % to 100 %
Dafür beim PCA9635:
Each LED output has its own 8-bit resolution (256 steps) fixed frequency individual PWM controller that operates at 97 kHz with a duty cycle that is adjustable from 0 % to 99.6 %
Letzterer ist auf Breakout-Board vielleicht nicht unmöglich, aber schwierig zu bekommen.
Und ja, stimmt der PCA9635 wäre nur eine Lösung für die zu langsame PWM-Grundfrequenz des Arduino. Der Rest muß trotzdem auf ne Lochraster. Und weil ich dann Breakout-Board und Lochraster hätte, werde ich es erstmal mit den 980Hz von Pin 5 + 6 probieren und mir das anhören. Wenn es nervt, versuche ich die Timer direkt anzusprechen - der Arduino hat sonst nicht viel zu tun. Bei höherer PWM-Frequenz wäre die Güte der LC-Glättung dann halt überdimensioniert, aber das macht ja nichts.
Stimmt, sorry.
Ich meinte, das auch der Endwert des Zählers einstellbar war...
Ich hab vor Jahren mal viel mit PWM und Timern experimentiert, und im Laufe der Zeit wohl PCA- und AVR-PWM vermischt.
Man wird nicht jünger...
Wenn man die Register des AVR selber beschreibt, sind problemlos PWM-Frequenzen von >30kHz drin!
Das ist nun wirklich nicht so kompliziert so einen Timer selbst einzurichten.
Als "Schraubmodul" nimmt man ein für Induktivitäten geeignetes (also mit Freilaufdiode) und ausreichend schnelles MOSFET-Schaltmodul. In Reihe zum Lüfter noch eine Spule. Wenn Du magst auch noch einen Elko parallel zum Lüfter. Fertig.
Dann ist aber schlecht mit Drehzahlmessung, weil die ja auch Massebezogen ist.
KAnn man, muss man aber tricksen...
Bei High-Side-PWM geht es aber ganz normal, sofern die Spannung >Umin ist, wo sich der Lüfter normal noch dreht.
Dann ist aber schlecht mit Drehzahlmessung, weil die ja auch
Massebezogen ist.
KAnn man, muss man aber tricksen...
Dafür muss man auch nicht mehr "tricksen" als man dies bei einer Schaltung mit P-Fet als Schalter müsste. Und die PWM für die Versorgung ist schneller als das Drehzahlsignal.
Schon vor Jahrzehnten konnte man mit 'nem simplen Linearregler à la
LM317 und Transistoren und Widerständen im ADJ-Zweig eine verstellbare
Spannungsquelle bauen.
Da kommen aber nie 12V raus.
Bei 5V PWM mit 100% kommen gerade einmal 6.25V raus.
Der OPV benötigt eine höhere Versorgungsspannung (dieser mindestens 12.5V) und eine Verstärkung von 2.15 bei 5V PWM bzw. 3.26 bei 3,3V PWM.
R2 ist überflüssig.
Ich grabe diesen Thread als TO mal wieder aus, obwohl es nicht mehr in die Richtung der Überschrift geht...
Nach langer Zeit setze ich mich endlich mal zuhause an den Bastektisch und will die Schaltung aufbauen, siehe Bild.
Am liebsten hier und heute mit Bauteilen aus der Grabbelkiste, bin aber doch zuwenig Vollblutelektroniker, daß ich das aus dem Bauch heraus dimensionieren könnte. Klar kann ich irgendwas einlöten und dann messen, aber dann muß ich halt ggf. wieder auslöten.
Gesetzt ist die Spule, ein ziemlicher Overkill für 50Hz-Dimmerschaltungen, hat 2200uH und 2,3A Strombelastbarkeit, liegt in der Hand wie ein Stapel 5-Mark-Stücke...
Die einzigen Elkos, die nicht schon uralt sind, haben 470uF, hab jetzt schonmal 2 parallel drauf, da gehen auch noch 2 mehr..
Jetzt stutze ich bei dem Widerstand, der das Gate des P-Fet hochziehen soll. An dem soll mir ja die Ansteuerschaltung nicht sinnlos 10mA oder mehr verbraten, andererseits soll das Gate trotz seiner Kapazität einigermaßen schnell geschlossen werden.
Der "schwächste" P-Mosfet, den ich hier finde, hat 1200pF Gate-Kapazität, das sind mit einem 1k-Widerstand schon eine Zeitkonstante von 6us, also in Richtung von 1% der typischen On-Zeit der PWM von 980Hz Grundfrequenz. Und doch verbraucht die Schaltung beim Durchsteuern des P-Fet schon 12mA...
Nicht daß ich jetzt auf jedes mA auchten muß, es ist kein Batteriebetrieb, aber wenn ich den dauernd laufenden Lüfter gerne von 2,4W auf 1W Verbrauch drossle, muß ich mir nicht mit der primitiven Ansteuerung wieder zusätzlich 120mW Verbrauch reinholen.
Was hättet Ihr denn für Ideen?
Es sind schon andere P-Fets mit z.B. 120pF Gate-Kapazität und immerhin noch 0,5 Ohm RDSon zu bekommen, aber halt nicht hier und heute..
Ich gleich nochmal, der Zeitkonstanten-Rechner hatte mir die Zeit für "Volladung" eine C gegeben, eigentlich sinds ja doch nur 1,2us für gut 60% Ladung.
Also vielleicht alles halb so wild, einfach den Widerstand sogar auf 2k setzen, mit den 60mW Verbrauch leben und gut ist?
Und nochmal ich:
Ist "Input Capacitance" überhaupt der richtige Wert im Datenblatt, nach dem ich da schaue?
Oder muß ich über "Total Gate Charge" gehen?
Vielen Dank.
Ist echt der Hammer, wie zuverlässig und schnell Du hier immer hilfst.
So, Freilaufdiode hab ich mir auch ungefähr so gedacht, geht klar.
Die Schaltung muß ich erst verdauen.
Also ohne Ansteuerung zieht der obere NPN-Kleinsignaltransistor das Gate fast bis an die Versorgungsspannung. Sein Basiswiderstand darf dank der Stromverstärkung wesentlich höher sein als der schlichte Widerstand, der bei meiner Schaltung das Gate nach oben gezogen hätte.
Bei Ansteuerung zieht der untere das alles nach Masse, aber dank der Diode hat der obere auf keinen Fall Basisstrom und kann nicht gegenhalten.
Der Strom, der nach Masse gezogen werden muß, geht nur über den Widerstand.
Ungefähr richtig? Dann baue ich das mal nach, mit 10k Basiswiderstand. Den Widerstand zum Gate hin mach ich 100 Ohm.
Eine letzte Meldung noch, denn eigentlich geht es ja schon gar nicht mehr um die Überschrift des Threads...
Aufgebaut, funktioniert.
Ein Showstopper war am Wochenende dann nicht die Freilaufdiode, sondern das Prolific USB zu TTL-UART Kabel. Erst das am Montag abend von der Arbeit mitgebrachte FTDI-Modul lief dann.
Die Ansteuerung verbraucht keinen Strom. Laut meinem Netzteil verbraucht die Schaltung ohne Last 0,24W, genauso wie im Reset-Zustand oder ohne PWM-Erzeugung.
(Komischerweise ist der Verbrauch mit angeschlossenem TTL-UART-Modul am Arduino Pro Mini dann bei über 1W. Das Modul hat nur über GND, RX und TX Verbindung. Laufen da echt 80mA in die beiden Datenleitungen? Oder ist das eine Masseschleife?)
Mit Lüfter als Last genehmigt sich das insgesamt 2,5W bei Vollast, und läßt sich schön auf 1W und sehr ruhigen leisen Lauf runterregeln.
Es ist auch keinerlei Fiepen von den 980Hz der PWM zu hören.
Die Welligkeit der Spannung am Lüfter ist etwa 100mV.
Jetzt werde ich später tatsächlich noch den Tacho-Ausgang des Lüfters auswerten und auf Drehzahl regeln, damit er nicht bei schlechter werdenden Lagern stehenbleibt. Aber das ist dann wirklich nicht mehr Gegenstand dieses Threads.
Eines ist mir noch aufgefallen: Die Gate-Ansteuerspannung hat Schwinger drin, siehe Bild. Woher könnte vor allem dieser zweite Schwinger kommen, wo eigentlich die Gate-Spannung längst glatt auf fast 12V hochgezogen war? Dieser zweite Schwinger wird bei sehr kurzen Off-Zeiten weggefressen, dann ist nur das erste Einschwingen beim Hochziehen des Gates da.
Beim Durchsweepen des PWM-Tastgrades fällt auch auf, daß die Ausgangsspannung nicht stetig mitwandert. In dem Bereich, wo bei steigendem Tastgrad der zweite Schwinger langsam verschluckt wird, hängt die Ausgangsspannung etwas fest.
Ist vielleicht das PWM-Signal vom Arduino schon unsauber?
Ein Showstopper war am Wochenende dann nicht die Freilaufdiode, sondern
das Prolific USB zu TTL-UART Kabel.
Es wurde hier schon etliche Male erklärt, wie man die ollen Prolific-Chips unter einem aktuellen Windows zum Laufen bringt (unter Linux laufen die sowieso).
Showstopper war also nicht das Kabel an sich, sondern nur deine Unfähigkeit, es zum Laufen zu bringen.
Laufen da echt 80mA in die beiden Datenleitungen? Oder ist das eine
Masseschleife?
Das kannst du messen.
Sagen wir mal, mit Mühe herausfinden. Mit Masseschleife meine ich, daß evtl. leicht verschiedene GND-Potentiale herumschwirren, die Strommessung des versorgenden Netzteils mit einem Shunt in der Masseleitung passiert usw. Müsste also ein anderes Netzteil probieren, oder für einen Versuch gar einen definitiv potentialfreien Akku ins Spiel bringen. Ist ja nicht schlimm, es geht offenbar nichts unmittelbar kaputt, und im normalen Betrieb ist der Programmieradapter ja nicht dran. Diese Erkenntnis war ohnehin nur im Plauderton innerhalb von Klammern vorgetragen. Kein Grund für eine oberlehrerhafte Kurzantwort.
Ist vielleicht das PWM-Signal vom Arduino schon unsauber?
Das kannst du messen.
Klar kann ich direkt am Arduino-Pin messen, eventuell reicht aber die Auflösung des OWON Oszilloskops nicht. Das Ereignis ist innerhalb der ca. 450us langen Off-Phase des PWM-Signals, ca. 150us nach der getriggerten Flanke, und ist vielleicht sehr kurz? Eher hatte ich mir hier Insider-Wissen über die PWM-Erzeugung im Arduino erhofft, da läuft ja doch sehr viel mit den Timern im Hintergrund/Untergrund, vielleicht wird die PWM gar softwaremäßig erzeugt? Weil wenn ich da irgendeine Störung direkt am Pin 5 messe, was kann ich da noch tun? Müßte die Situation ja doch akzeptieren. Das Akzeptieren würde leichter fallen, wenn hier irgendein alter Hase sagen würde: Das ist halt so, bügel das einfach mit ein paar pF da oder dort glatt.
Sagen wir mal, mit Mühe herausfinden. Mit Masseschleife meine ich, daß
evtl. leicht verschiedene GND-Potentiale herumschwirren, die
Strommessung des versorgenden Netzteils mit einem Shunt in der
Masseleitung passiert usw.
Hast du kein Multimeter, das die Stromstärke messen kann?
Kein Grund für eine oberlehrerhafte Kurzantwort.
Wir könnten die Messergebnisse diskutieren. Das ist bestimmt besser, als Vermutungen anzustellen und diese zu diskutieren oder gar voreilige Gehenmaßnahmen zu versuchen.
Ob S. schrieb im Beitrag #7980781:
etwas über seine
Unfähigkeit
zu einem freundlichen Ton.
Tja, auch diese Begebenheit habe ich im Plauderton nebenbei erwähnt und auch die schlichte Lösung, einen ordentlichen Adapter zu verwenden. War keine Frage, kein Wehklagen dabei.
Und es war so: Dieses Adapterkabel hatte ich am Büro-Rechner (Win11) durchaus mit den üblichen Methoden, mit dem 3.3.2.105 Treiber zum Laufen gebracht, deshalb hatte ich es ja nach Hause mitgenommen, weil es rein mechanisch ein bißchen praktischer war, kein herumfliegendes Platinchen dazwischen, sondern alles in den USB-Stecker integriert.
Zuhause (auch Win11) gings dann nicht, vielleicht hatte ich doch eine andere Anleitung genutzt, eine andere Treiberversion. Der direkte Vergleich mit der Lösung im Büro fehlte mir, jetzt hier im Büro fehlt mir der Vergleich mit der gescheiterten Lösung zuhause. Könnte ich Aufwand reinstecken, mir zuhause nochmal alle Infos aus dem Gerätemanager notieren, dann das Kabel wieder ins Büro zurückbringen, dann hier im Büro ausprobieren und bei Erfolg schauen, was denn da jetzt anders ist.
Mach ich vielleicht, lieber observer.
Dein Urteil, ob ich unfähig bin, ist mir sehr wichtig.
Eher hatte ich mir
hier Insider-Wissen über die PWM-Erzeugung im Arduino erhofft, da läuft
ja doch sehr viel mit den Timern im Hintergrund/Untergrund, vielleicht
wird die PWM gar softwaremäßig erzeugt?
Arduino analogWrite nutzt die Hardwaretimer.
Das Signal am Portpin ist sauber, evtl. Störungen kommen aus der Schaltung evtl. zurück, aber der Zacken ist nicht von Arduino, Software oder ATmega verursacht.
So, das PWM-Signal an Pin 5 ist natürlich sauber, zumindest innerhalb der Grenzen, die mein Handheld-Oszi darstellen kann.
Ohne Last ist auch die Ansteuerung bis zum Gate des FETs sauber.
Erst mit Last kommt diese "Reflexion", wie ich sie mal nennen will, rein.
Hat einen gewissen Abstand zu der Flanke, an der das Gate des P-Fet nach oben gezogen wird (also Beginn der Off-Zeit in der PWM).
Der Abstand hängt von der Last und vom Tastgrad ab.
Ich beschreibe das Verhalten bei abnehmenden Tastgrad von 100% bis 25%, bei der PWM-Grundfrequenz 980Hz. Tastgrad sweept nicht weiter runter als 25%, weil dann der Lüfter gar nicht mehr laufen würde.
Glühlampe 2,5W: Taucht bei einer Off-Zeit von 140us (Tastgrad 85%)erstmals auf und verschiebt sich dann bis 300us bei größeren Off-Zeiten von ca. 750us.
Glühlampe 5W: Kommt erst bei Off-Zeit 220us und schiebt sich noch bis 450us .
Lüfter, ca. 2,5W bei Vollast: Kommt schon bei 90us und schiebt sich bis 180us.
Es ist schon so, wie Jens schreibt, die Störungen kommen aus der Schaltung zurück, sobald Lastströme laufen. Naja, es funktioniert ja grundsätzlich, läuft so ruhig und braucht so wenig Strom, wie ich gerne möchte. Ich verfolge das nicht weiter, außer von Euch kommt jetzt noch der erleuchtende Input für mich.
Woher könnte vor allem dieser zweite Schwinger kommen,
wo eigentlich die Gate-Spannung längst glatt auf fast 12V hochgezogen
war?
Der Strom in einer Spule ändert sich nur langsam und proportional zur Spannung. Ist die Spannung über der (idealen) Spule 0V, so ändert sich der Strom auch nicht.
In dem Moment, in dem Dein Transistor abschaltet, fließt der Strom über die Diode weiter. Da über der Spule Spannung ist, nimmt auch der Strom ab. In dem Moment, in dem die Spule 'leer' ist, fließt kein Strom mehr und die Diode schaltet ab und wird damit zu einem Kondensator. Dieser Kondensator ist mit der Spule (Elko+Last übersehen wir mal) ein Schwingkreis, der nun anfängt zu 'klingeln'. Wenn die Leitungsführung nicht ideal ist und auch über Bauteilkapazitäten streut dies nun in Deine Schaltung ein.
Wenn Du an dem Punkt zwischen Diode, Spule und FET misst, wirst Du folgende Spannungen messen:
Transistor eingeschaltet: 12V
Transistor abgeschaltet: zunächst -0,7V (Diode leitet), danach gedämpfte Schwingung mit Mittelwert der Ausgangsspannung am Elko.
Eigentlich sollte die Spule oder die Frequenz ~100x größer sein, damit ein möglichst kontinuierlicher Strom fließt.
Bei Dir fließt zwischendurch gar kein Strom mehr durch die Spule. Nur der Elko puffert.
Deine Hardware könnte höhere Frequenzen, aber nicht mit den Arduino Funktionen.
Deine Hardware könnte höhere Frequenzen, aber nicht mit den Arduino
Funktionen.
Nuja, auch mit Arduino kann man den Timer selber programmieren. Ich bin gerade überfragt ob man dann noch analogWrite nutzen kann oder ob das den Timer auf Arduino-Standards zurückstellt. Ich glaube letzteres, bin aber nicht sicher.
millis() und micros() fangen dann das spinnen an, aber ansonsten geht das problemlos.
100x so schnell wird aber vmtl. der Chip und auch die FET-Schaltung nicht schaffen, und wenige kHz könnten dann dazu führen das man ein Pfeifen hört.
Aber das kann man ja ausprobieren.
Wenn Du an dem Punkt zwischen Diode, Spule und FET misst, wirst Du
folgende Spannungen messen:
Transistor eingeschaltet: 12V
Transistor abgeschaltet: zunächst -0,7V (Diode leitet), danach gedämpfte
Schwingung mit Mittelwert der Ausgangsspannung am Elko.
q.e.d. siehe Bild :-)
Danke für die anschauliche Erklärung.
Eigentlich sollte ich längst mit dem Forschen aufhören, so wie ich es ein paar Beiträge weiter oben schrieb, und die Schaltung und den Sketch mit einem Feuchtesensor, akustischem "Klatschalter" und einer weiteren ungefilterten FET-Stufe für eine LED-Leiste komplettieren.
Aber wenn es so Spaß macht, weil man so schön Hilfe bekommt und sich freut, daß man mit Ende 50 noch was dazulernen kann...
Bin also im lückenden Betrieb. Kapiert.
Ich denke, bei der Frage, ob ich dem Arduino eine höhere PWM-Frequenz entlocke, ziehe ich definitiv einen Schlußstrich. Und wie Ihr schon andeutet, gibt das weitläufige Lochraster-Layout wohl keine wirklich hohen Frequenzen her.
Und irgendwie will ich das Projektchen ja auch mal fertigbekommen.
Ein Gedanke wäre aber tatsächlich eine dickere Drossel. Mit den 2,2mH sind ja schon ca. 1/3 der Ausschaltzeit überbrückt. Da gäbe es z.B. den 10fachen Wert - 22mH - mit auch nur 580mOhm Gleichstromwiderstand für ~3€, und auch nicht viel größer als der Klopper, der jetzt drauf ist.
https://www.conrad.de/de/p/tdk-b82732r2102b030-b82732r2102b030-drossel-b82732-22-mh-2-2-a-1-st-2711359.html
Aber jetzt in der Weihnachtszeit hab ich keinen Bock auf die Bestellerei.
Später vielleicht mal.
Bis hierher vielen Dank,
viele Grüße und frohe Weihnachten
Tom.
Eigentlich will ich ja an dieser Stelle aufhören, aber möchte auch nichts unbeantwortet lassen.
Ich dachte naiverweise, daß sich die beiden Wicklungen (in der richtigen Richtung) seriell schalten lassen? Ich belaste sie ja nur mit einem Bruchteil ihres Nennstroms.
Hat es was mit der magnetischen Sättigung des Kerns zu tun?
Werden solche Spulen normalerweise im Gegentakt durchflossen, so daß sich der Fluß aufhebt - und nur im Fall einer Gleichtaktstörung zeigt die angegebene Induktivität Wirkung?
Die verwendete Drossel hat 2,3A Nennstrom, 2,2mH und 460mOhm Gleichstromwiderstand.
Die jetzt von mir ins Spiel gebrachten haben ähnliche Gleichtromwiderstände und Baugrößen. Tatsächlich müßte man vermuten, daß eine verzehnfachte Induktivität dann mit einer deutlich gestiegenen Baugröße einhergeht...
Werden solche Spulen normalerweise im Gegentakt durchflossen, so daß
sich der Fluß aufhebt - und nur im Fall einer Gleichtaktstörung zeigt
die angegebene Induktivität Wirkung?
Tatsächlich müßte man vermuten, daß
eine verzehnfachte Induktivität dann mit einer deutlich gestiegenen
Baugröße einhergeht...
Nicht unbedingt. Bei nur 500Hz kann man auch einen Kern aus Eisenblech verwenden, so wie bei kleinen Netztrafos. Man muss nur noch einen Luftspalt einbauen, dann geht das schon.
Allemal besser wäre natürlich eine deutlich höhere Schaltfrequenz.