Hallo Elektronik-Spezialisten,
ich möchte einen kleinen Gleichstrom-Motor in der Drehzahl regeln.
Konkret geht es um einen Lüfter, so wie er auch in PC-Netzteilen
verwendet wird. Das ist eines meiner ersten Projekte, und ich würde mich
über Unterstützung bei meinen Überlegungen echt freuen!!
Was gibt es da überhaupt für Möglichkeiten? Ich dachte gleich mal an
einen Mikrocontroller, deswegen bin ich auch hier in diesem Forum
gelandet. Bin nämlich günstig an einen ATmega-168 gekommen. Der ist
vielleicht etwas übertrieben für so ein kleine Aufgabe, aber ich würde
ohnehin gerne mal lernen wie so etwas funktioniert. Meine erste Idee:
mit dem µC eine PWM ausgeben, die im Mittel ja wieder eine
Gleichspannung unterschiedlicher Höhe ergibt. Dementsprechend müsste
sich der Lüfter je nach Spannung unterschiedlich schnell drehen?
Oder kann ich auch ganz einfach einen MOSFET in Reihe zu dem Lüfter
schalten und damit den Stromfluss steuern?
Ihr seht schon, ich bin noch ganz am Anfang mit diesem Vorhaben, aber
für euch sind das sicher einfache Fragen. Für Hilfe also im voraus
schonmal vielen Dank!
Mfg, GFunk
Warum willst du denn den Lüfter in der Drehzahl regeln? Um ihn leiser zu
machen? Das geht oft schief, weil das PWM-Getakte dann oft nerviger ist.
Temperaturgeregelte sind oft leiser.
Große PA-Endstufen verfolgen oft ein mehrstufiges Konzept. Sie haben
zwei Lüfter und schalten entweder keinen, einen oder alle beide an.
Kai Klaas
Wow, echt klasse wie schnell hier eine Antwort kommt ;-) Vielen Dank!
Also der Lüfter muss nicht leise sein. Ich betreibe ihn ja nicht im PC,
sondern so auf dem Tisch. Später will ich ihn dann mal in eine Kiste
einbauen, um darin die Temperatur konstant zu halten. Das Geräusch ist
da erstmal zweitrangig. Mir geht es auch momentan eher um Unterstützung
bei meinen Ideen was es überhaupt für Möglichkeiten gibt die Drehzahl zu
regeln.
Also irgendwie muss ich doch die Spannung an den Klemmen des Lüfters
einstellen? Was mir dazu einfällt ist ein Vorwiderstand, aber das ist
unpraktisch, weil ich will es ja elektronisch regeln (mit einem µC),
oder eben die PWM-Steuerung. Oder wie schon erwähnt: ich lege konstant
12V an den Lüfter und versuche irgendwie den Stromfluss mit einem
Transistor zu steuern falls das funktioniert.
Was sind das für temperaturgeregelte Teile von denen du sprichst?
ich hab mal auch so was benötigt, allerdings hab ich das mit einem NE555
gelöst.
http://www.atx-netzteil.de/pwm_mit_ne555.htm#Schaltung%202
Wenn du mit nem µC was machen willst, musst du dich mit dem
Programmieren beschäftigen und einiges beachten. Ich weiß auch nicht wie
fit du mit den µC´s bist.
Evtl. ist die Schaltung mit einem NE555 für dich besser.
Du hast bei der Schaltung ein Poti dran, mit dem du die Drehzahl steuern
kannst
ich hab ma da mehrere Platinen gebaut
Geht auch zum Steuern der Helligkeit von LED´s
mfG
ah, ok, der sieht nicht schlecht aus. Nur, wie kann ICH diesen Lüfter
regeln? Ich möchte nicht dass er sich selbst regelt, sondern schon etwas
flexibler sein, daher will ich es auch selbst bauen (abgesehen von dem
Lerneffekt bei meinem neuen Hobby hier ;-)
Also stelle ich meinen bisherigen Plan mal etwas präziser vor, wennglich
ich mich noch ganz am Anfang befinde und möglichweise nachher alles ganz
anders mache. Momentan ist da der ATmega168, von dem ich noch nicht weiß
wie er zu programmieren ist, aber das bringe ich mir gerade parallel
bei. An einem Analogeingang lege ich eine Spannung an, von 3V bis 3,5V
einstellbar über einfachen Spannungsteiler mit Poti. Hierüber will ich
eine Temperatur vorgeben (später soll statt dem Poti eine
Temperatursensor hin). Jedenfalls soll der Atmel dann eine PWM ausgeben
und den Lüfter entsprechend ansteuern. Bei unter 3V am Analogeingang
soll der Lüfter aus sein. Und bei 3,5V volle PWM. Habe gerade noch
gegoogelt und bei ebm-pabst Lüfter gefunden die direkt ein PWM-Signal
verarbeiten können. Hab aber nicht gefunden wie genau das funktioniert.
Ansonsten muss ich mir noch was überlegen wie die PWM auf den Lüfter zu
geben ist. Der Strom kann ja nicht vom Atmel kommen. Also muss ich da
noch einen Transistor vorsehen?
Mfg, GFunk
Ich habe gerade die Schaltung von meima genauer studiert. Wenn das so
funktioniert wäre es für mich echt die bevorzugte Lösung, zumal ich
tatsächlich noch keine Ahnung habe wie der Atmel zu programmieren wäre.
Aber irgendwie will ich das schon noch lernen, zumindest da ich ja jetzt
schonmal einen habe.
Nun werde ich versuchen die Schaltung von meima an meine Bedürfnisse
anzupassen und statt dem Poti einen temperaturabhängigen Widerstand
einbauen (pt100). Werde dann später mal den Plan hier reinstellen.
Bestimmt ergibt sich auch noch die eine oder andere Frage.
Aber zunächst vielen Dank an meima!! Super Plan!
btw: womit hast du den Schaltplan gezeichnet? sieht echt schön aus.
Das mit dem PT100 ist schonmal der richtige ansatz, wiso du den
allerdings als ersatz fürs poti siehst, verstehe ich nicht ganz...
sinnvoll wär docvh ein pt100 um die temperatur zu messen, und ein poti
(ich würd nen drehencoder bevorzugen) um die gewünschte temperatur
einzustellen...
ob es sinnvoll ist die drehzahl zu regeln wäre eine andere frage, da der
zusammenhang zwischen spannung und drehzahl nicht linear ist (drehzahl
ist von der spannung abhängig nicht vom strom...) ich würde nen 2-punkte
regler empfehlen, hätte den vorteil, dass du auch kein pwm benötigen
würdest, sondern den lüfter einfach über einen mosfet an und ausschalten
kannst...
@GFunk:
also der Plan ist leider nicht von mir. Schau mal auf den besagten Link.
Da steht unten eine kontaktangabe! ;-)
Freut mich, wenn ich dir helfen konnte ;-)
Mich würde dein Ideen auch sehr interessieren!
Schau dir mal die anderen Projekte auf der besagten Seite an, ist
interessantes dabei!
Also das ist doch alles nicht so einfach. Wie immer halt ...
Die Schaltung von meima (s.o.) eignet sich für mich doch nicht so recht.
Da kann ich zwar die Drehzahl einstellen, dann aber bleibt sie konstant
so wie eingestellt. Ich will aber die Temperatur bestimmen, und in
Abhängigkeit davon den Lüfter regeln, d.h. die Drehzahl ändert sich
ständig. Das ist doch ein klassischer Anwendungsfall für den µC.
Außerdem bin ich damit flexibel und kann in der Software auch eine
andere Temperatur einstellen.
Nun habe ich den festen Entschluss gefasst mit dem µC weiter zu machen.
Also im Anhang mal mein Plan: Der PT100 ändert seinen Widerstand mit der
Temperatur. Die sich einstellende Spannung über dem Spannungsteiler gebe
ich an einen Analogeingang, und kann damit im Programm die exakte
Temperatur bestimmen. Nun will ich in meiner Kiste konstant 30°C haben!
Also bei 31° gebe ich volle PWM aus, d.h. der Lüfter dreht mit maximaler
Drehzahl. Wenn die Temperatur sinkt, kann ich die Drehzahl verringern.
Bei 29° mache ich den Lüfter aus.
Den MOSFET übernehme ich aus der Schaltung von meima, finde ich ganz gut
so. Damit kann ich einen Standard-Lüfter verwenden, und brauche nicht so
einen mit PWM-Eingang von ebmpabst besorgen.
Sodele, wäre super wenn ihr meinen Plan noch kommentiert, damit ich
morgen mit der Programmierung beginnen kann (schätze das wird die größte
Herausforderung ...).
@David: Das mit der 2-punkt-regelung meinst du so wie ich es jetzt auch
geplant habe, oder? Das mit der Einstellung über Drehencoder habe ich
nicht ganz verstanden. Kannst du es vlt. nochmal erläutern?
Ich wünsche einen schönen Abend!
Mfg, GFunk
Hallo GFunk,
das was du oben beschrieben hast (Bei 31°C ein, bei 29°C aus) ist eine
Zweipunktregelung. Für einfache Zwecke (Ohne übermässige
Genaugikeitsanforderungen) reicht das aus und funktioniert auch ganz
gut. Wenn es genauer sein soll, müsste schon ein "richtiger" Regler her.
Bei den "gewöhnlichen" Lüftern aus PCs wirst du aber mit PWM
höchstwahrscheinlich ein Problem bekommen. Nicht unbedingt wegen dem
Pfeifen, sondern weil du die Lüfterinterne Steuerung damit
durcheinanderbringst. Das sind ja nicht einfache DC-Kollektormotoren,
sondern elektronisch kommutierte Synchronmaschinen (Oder sowas in der
Art). Jedenfalls ist eine gescheite Drehzahlsteuerung meistens nur per
Analogspannung möglich. Oder halt mit einem dafür ausgelegten Lüfter.
@GFunk
Ich lese aus deinem Beitrag das du mit µC noch keine Erfahrung hast.
Daher mein Tipp erst mal das Tutorial des Forums Schritt für Schritt
durchzuarbeiten und nicht gleich mit PWM zu beginnen. Die Tools muss
man ja auch erst mal in den Griff bekommen.
Mein Tipp:
Verwende einen PC-Lüfter mit 4 Pin Anschluss: dann brauchst du keinen
Mosfet und hast weniger Probleme mit der Ansteuerung.
Prinzipiell kannst du auch noch die Drehzahl bestimmen.
Sodele, das mit der Programmierung wird schon klappen. Ich brauch immer
ein konkretes Ziel um sowas zu lernen. Und in diesem Forum bin ich ja
genau richtig ;-)
Habe eben meinen Schaltplan nochmal angepasst. Eine 2-punkt-regelung
über +/-1° finde ich schon ziemlich genau. Der PT100 ändert seinen
Widerstand dabei um weniger als 1 Ohm. Nach meiner Berechnung kann das
der µC mit 10bit garnicht auflösen. Deshalb habe ich nun noch einen
Differenzverstärker davor gebaut. Der PT100 hat bei Raumtemperatur ca.
110 Ohm. Darauf stelle ich auch das Poti ein, und verstärke dann die
Differenz um den Faktor 82. Für meinen Fall ergibt das dann einen Hub
der analogen Spannung um ca. 0,6V bei einer Temperaturerhöhung von 1°.
Das sollte der µC erkennen.
Bezüglich Lüfter nehme ich dann halt doch so ein Modell von ebm-pabst
mit direktem PWM-Eingang. Habe nur keine Ahnung wie der anzuschließen
ist. Wozu ist denn der vierte Anschluss? Hier habe ich mal so Lüfter
gefunden:
http://www.pcsilent.de/de-pd-Papst-Luefter-4412-F_2GP-120mm-PWM-Luefter-Pabst-Luefter-PWM-Steuerung-633.html
Nur finde ich halt kein Datenblatt dazu...
Würde mich echt freuen wenn mir da noch jemand weiterhelfen kann! Und
Kommentare zu meinem bisherigen Schaltplan?
Mfg, GFunk
Hallo
der 4. PIN ist ein Tachosignal. Mit einem Pullup (Widerstand ca. 1k nach
+5V) bekommst du hier jede Umdehung einen digitalen Impuls. Das ist für
eine Drehzahlregelung optimal.
Temperaturmessung würde ich mit NTC und R in Reihe nach 5V machen. Ist
einfacher und normalerweise genau genug.
Mfg
Michael
Super, das waren genau die Dokumente die ich gebraucht habe.
Ich nehme dann so einen Lüfter mit 4 Pins, wobei ich das Tachosignal
vorerst mal nicht auswerten muss. Bei 100% PWM sollte er halt mit
Maximaldrehzahl laufen, aber das werde ich dann schon sehen. Anbei noch
mein Detail-Plan, wie ich den Lüfter anzuschließen gedenke.
Hardware steht dann soweit :-)
Nun geht's ans Programmieren ...
Vielen Dank an alle guten Ratgeber!
Mfg, GFunk
Nun habe ich mich eine gute Weile mit dem Tutorial zur Programmierung
des ATmega befasst. Wie ich das so sehe gibt es im wesentlichen zwei
Möglichkeiten: 1. Assembler (AVR Studio), 2. C-Code (WinAVR GCC).
Da ihr ja nun schon mein Vorhaben kennt, was würdet ihr mir denn
empfehlen? Welche Art der Programmierung eignet sich besser für so eine
PWM-Steuerung?
Mfg, GFunk
puuh, also da bin ich wieder
habe mich für C entschieden, und zwischenzeitlich das GCC-Tutorial
durch.
Ist klar soweit, und echt ganz cool. Also der Aufwand hat sich gelohnt
;-)
Habe inwzischen auch ein Programm das läuft, aber ein paar Fragen dazu.
Wäre das ok, wenn ich den Code hier mal reinstelle?
Und so allgemein: Wie erzeugt man denn kontinuierlich eine PWM in
Abhängigkeit vom eingelesenen Analogwert? Aktuell lese ich den Wert aus
dem ADC-Register und werte diesen dann in einer if-verzweigung
stufenweise aus. Aber das ist etwas umständlich und bei vielen Stufen
auch nervig. Der ADC läuft übrigens ständig (free-running). Da muss ich
nicht warten bis der eine Umwandlung fertig hat, oder?
Dann noch was zu dem Lüfter mit 4 Pins: Bei 0% PWM dreht der sich
trotzdem. Ist das normal?
Viele Grüße und einen schönen Abend,
GFunk