-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Ideen für automatische PC-Lüfterdrosselung?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    05.01.2010
    Beiträge
    35

    Ideen für automatische PC-Lüfterdrosselung?

    Anzeige

    Moin,

    Ich hab mir in den Kopf gesetzt selbst eine uC-gesteuerte Lüftersteuerung für den PC zu bauen, da ich mit den kaufbaren Fertigdingern nicht wirklich zufrieden bin.
    Da wollte ich einmal fragen, ob da schon jemand Erfahrungen mit gemacht hat und mir ein paar Tipps geben kann.

    Im Groben habe ich mir das so gedacht:

    • die Lüfter werden über eine Spannungsverringerung gedrosselt (bekomme leider keine PWM-Lüfter in 200mm, was natürlich viel einfacher zum Regeln wäre). Sollte ja auch später bei PWM-Lüftern klappen, da die auf 100% laufen sollten, wenn das 4. PWM-Kabel kein PWM-Signal erhält und man sie dann normal über die Spannung drosseln kann
    • Es gibt 3 Modi: Manuell, Automatik und "Volle Leistung", welche sich über einen Wippschalter mit 3 Stellungen einstellen lassen
    • bei "Volle Leistung" wird die Drosselung der Lüftersteuerung komplett umgangen und einfach nur die 12V vom Netzteil den Lüftern zugeführt
    • bei "Manuell" kann man die Drehzahl der Lüfter per Poti einstellen (ich dachte da an einen Spannungsteiler und dann Auslesen per ADC)
    • bei "Automatik" wird das PWM-Signal vom CPU-Lüfter-Anschluss am Mainboard angezapft, ausgewertet und dementsprechend die Drosselung der Gehäuselüfter eingestellt. Die ganzen Kaufdinger machen das ja über Temperatursensoren, aber ich würde es schon gut finden, wenn auch die Gehäuselüfter ordentlich mitdrehen, wenn die CPU ausgelastet wird, da die wesentlich zu dessen Kühlung beitragen
    • ich würde gerne meine 4 Lüfter einzeln steuern können, da es mal 200mm und mal 120mm Lüfter sind. Daher dachte ich an 4 einzelne Module, wo jeweils ein Attiny44A über Timer0 das Tachosignal auswertet und die Spannung regelt.
    • an einen Atmega644 für eine Warnung per Speaker bei Lüfterausfall, zum Auslesen der Mainboard-PWM und ggf. zum Kommunizieren per RS232 mit dem PC und Ansprechen eines LCDs hatte ich da auch schon gedacht
    • beim Hochfahren des Rechners müssten alle Lüfter ungedrosselt laufen, da die Spannung zum Anlaufen der Lüfter recht groß sein kann

    Jetzt hätte ich da aber vor Allem die Frage, wie sich die Spannung am besten per uC regeln lässt. So wie ich das jetzt herausfinden konnte, hätte ich da 2 Optionen:
    1. ein leistungsstarker Transistor mit einem RC-Tiefpass am Ende und PWM vom uC an der Basis. Da stelle ich mir jedoch gerade die Frage, ob man da das Tachosignal überhaupt noch auslesen kann, da der Strom ja nur Stoßweise kommt.
    2. einen regulierbaren Spannungsregler wie den LM317. Da habe ich dann aber wohl das Problem, dass der nie voll auf 12V aufgedreht werden kann und ich da auch erst wieder eine Spannung erzeugen muss, um diesen zu steuern. Einen DAC haben die einfachen uCs von Atmel ja leider nicht.

    Hat da vielleicht jemand ein paar Tipps, wie man kostengünstig per uC eine änderbare Spannung erzeugen kann, die auch so ca 5 Watt verträgt? Muss ja auch nicht so super genau sein.
    Oder habe ich da sonst noch Probleme übersehen?

    MfG

    Dunuin

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    672
    Hallo,

    5 AVR für 4 Lüfter, und davon noch ein Mega644 finde ich völlig überdimensioniert. Ich würde sagen da reicht ein Mega8. Und der langweilt sich dann immernoch die ganze Zeit.

    Zur Ansteuerung: Ein DAC ist wohl völlig überdimensioniert. Ich schätze der Hauptgrund für eine Regelung der Geschwindigkeit der Lüfter wird der Geräuschpegel sein. Aber ich denke mal der ändert sich gar nicht sooo stark, dass man eine stufenlose Regelung braucht. Vielleicht reichen schon 4 Stufen? Du müsstest einfach mal mit 4 verschiedenen Spannungen testen wie laut sich das anhört und ob sich mehr Stufen überhaupt rentieren. Diese 4 Stufen könnte man dann über 2 Ausgänge schalten. (binäre Addition)

    Viele Grüße
    Andreas

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.07.2009
    Beiträge
    405
    Scheint mir ein wenig zu viel Aufwand für den geringen Funktionsumfang -

    Eigentlich machst Du nichts anderes als einen manuellen Modus hinzu zu fügen.

    Warum im Automatikbetrieb, so wie Du ihn dir vorstellst, nicht einfach das Signal vom Mainboard 1 zu 1 auf die Lüfter schalten?

    Zum LM317
    Hier die Ansteuerung nicht mit einer stufenlos verstellbaren Spannung vornehmen sondern zB. mit einem ULN2803 verschiedene Widerstände (Spannungen) schalten. So hast Du zwar keine stufenlose Verstellung der Drehzahl aber ein paar feste Drehzahlstufen reichen ja auch.
    Für die Maximaldrehzahl einfach den LM317 umgehen (Vollastmodus) und die 12V direckt auf den Lüfter.

    Ansonsten - Tiefpass mit nachgeschaltetem OP und Leistungstransitor.

    Edit
    war zu langsam -
    Mist - nicht trödeln sondern zügig schreiben -

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    05.01.2010
    Beiträge
    35
    Zitat Zitat von dussel07 Beitrag anzeigen
    Warum im Automatikbetrieb, so wie Du ihn dir vorstellst, nicht einfach das Signal vom Mainboard 1 zu 1 auf die Lüfter schalten?
    Weil die 4-poligen PWM-Lüfter eine eingebaute Drosselung haben, welche über den Duty Circle von dem PWM-Signal des Mainboards gesteuert wird.
    Meine 200mm Lüfter sind da aber leider normale 3-polige Lüfter, welche keine eingebaute Drosselung besitzen und sich nicht per PWM regeln lassen.
    Daher wollte ich gerne den Duty Circle vom Mainboard-PWM auslesen (0-100%) und darauf basierend dann die Lüfter selbst per Spannung drosseln.

    Am liebsten wäre mir halt die Variante mit der Spannungserzeugung per PWM, wenn man da irgendwie ein stabile Spannung hinbekommt, so dass auch eine Messung des Tachosignals noch funktioniert. So ein Attiny44 für unter 2€ hätte nämlich 2 Timer und auch einen ADC. Da könnte man dann den ersten Timer nehmen, um die Drehzahl des Lüfters per Tachosignal auszulesen, man hätte noch den 2. Timer um 1 oder 2 PWM-Signale mit bis zu 31kHz zu erzeugen und halt den ADC um per Spannungsteiler die Stellung des Potis auslesen zu können. Da könnte dann so ein Attiny44 pro Lüfter die ganze automatische und manuelle Steuerung übernehmen, sofern man diesen per Atmega noch übermittelt, wie es gerade bei der Mainboard-PWM mit dem Duty Circle steht.
    Geändert von Dunuin (16.07.2011 um 19:55 Uhr)

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    672
    ...mit ein bischen Nachdenken bei der Programmierung macht das ein Tiny in einem Timer für alle 4 Lüfter, und langweilt sich immer noch dabei...

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    05.01.2010
    Beiträge
    35
    Ich habe noch einmal nachgedacht und mir nun folgendes überlegt.

    Das Ganze besteht aus 3 verschiedenen Modulen.

    A.) Lüfterregulierungs-Einheit
    Hier dachte ich an einen Attiny261 der auf 8 (oder vielleicht auch 16) MHZ läuft und die Spannung von 3 Lüftern per PWM erzeugt und auch dessen 3 Tachosignale auswertet.
    Mit Timer1 erzeuge ich 3 8bit PWM-Signale ohne Prescaler im FastPWM-Modus. Dann sollte ich ja auf knapp über 31 kHz kommen, wo die Resonanz nicht hörbar sein sollte (wenn der Mensch nur bis zu 20 kHz hören kann). Hinter jedem PWM-Ausgang kommt dann ein Tiefpass und ein Leistungstransistor um die Rechtecksignale auszugleichen.
    Den Watchdogtimer nutze ich dann zur Zeitmessung und den Timer0 nur Tachosignalmessung. Dazu gehe ich mit jedem der 3 Tachosignale an einen Transistor, welche dann alle das Tachosignal auf T0 leiten, sobald ich über 3 Pins am uC Strom auf die Basen gebe. So kann ich dann die Tachosignale multiplexen und Timer0 zählt die jeweilige Drehzahl im vom Watchdog gemessenen Intervall.

    B.) PWM-Mess-Einheit
    Da ich ja die Gehäuselüfter passend zum Steuersignal von Grafikkarten- und CPU-Lüfter regeln will, muss ich ja den Dutycirce von den Steuersignalen herausfinden. Hier ist mir noch nichts so wirklich gescheites eingefallen.
    Zum einen könnte ich wohl über den Input Capture Mode eines Counters den Dutycircle auslesen, aber das müsste wirklich schnell sein, da das Steuersignal bei, glaube ich, zwischen 30 und 40 kHz liegt und alles ausgewertet und gespeichert sein muss, bevor die nächste Messung reinkommt.
    Meine 2. Idee wäre nun gewesen das umgekehrt wie bei der Lüfterregulierung zu machen. Ich nehme das Steuersignal über einen Optokoppler und jage es durch einen Tiefpass und Spannungsteiler und messe dann per ADC die Spannung aus.

    C.) Steuereinheit
    An der Steuereinheit (Atmega644P habe ich noch rumliegen) sollen dann ein Text-LCD, ein Speaker sowie etliche Taster dranhängen zur Ein-/Ausgabe. Die Steuereinheit regelt dann alles und arbeitet als I²C-Master. Sie empfängt dann die Ergebnisse von den Lüfter-Steuersignalen (PWM-Mess-Einheit dann als I²C Slave) und die Umdrehungen pro Minute (Lüfterregulierungs-Einheit auch I²C Slave) und sendet diesen auch den Dutycircle, den die Lüfterregulierungs-Einheiten ausgeben sollen.
    So müsste man dann das ganze auch gut erweitern können, wenn es mehr als 3 Lüfter zu regulieren gilt. Bei meinen 4 Lüftern müssten dann also 2 von den Lüfterregulierungs-Einheiten rein.

    Düfte das so in etwa klappen oder habe ich da noch einen Denkfehler?
    Geändert von Dunuin (09.10.2011 um 20:55 Uhr)

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    672
    ...ich bin immer noch der Meinung dass dazu ein einziger Atmel mehr als ausreichend ist.

    Hast du dir mal den Aufwand überlegt alle drei zu programmieren und zu debuggen? Wenn du die Kommunikation entwickelst musst du ständig zwischen mindestens zwei Programmen umschalten und auch noch umstecken. Das habe ich bis jetzt einmal gemacht, und das nervt gewaltig und führt zu Fehlern.

    Ich würde auf die AVR's vertrauen und alles mit einem Chip lösen.

    Die Aufgabe hört sich wirklich zu "popelig" an, um damit mehrere µC zu bemühen.

    Viele Grüße
    Andreas

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    05.01.2010
    Beiträge
    35
    Naja, ich brauch da halt mindestens 4 PWMs, einen Counter für die Drehzahlmessung der 4 Lüfter und und dann noch einen Timer, welcher die 2 Dutycircles ausliest. Dann gehen noch 5 Pins fürs Display, 1 Pin für den Speaker, 4 Pins für die Knöpfe und 5 Pins fürs Multiplexen wegen Lüfterdrehzahl und Steuersignal drauf. Das da wird das ganze mit einem Atmel schon ziemlich eng, besonders wenn man bedenkt, wieviel da parallel gemacht werden muss. Ansprechen des LCDs etc dauert ja auch etwas.

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    672
    Wenn dir die Pins bei einem MegaAVR nicht reichen, dann weiß ich auch nicht. Da kannst du das LCD ja sogar mit 8 Pins anschließen!

    Was die Ressourcen angeht: Die Timer müssen halt gut durchdacht werden und sind dann IRQ-ausgelöst. Da ist das LCD-ansprechen überhaupt nicht relevant. Wenn was zeitkritisches ansteht muss das per IRQ erfolgen, dann wird das alles kein Problem.

    Ich würde einen kurzen Timer planen, in dem dann die PWM-Signale erzeugt werden. Einfach den Timer auf die gewünschte Frequenz z.B. 30 Hz berechnen und 4 if-Abfragen, ob der Pin High gesetzt werden soll für den entsprechenden PWM-Ausgang. Wenn der Timer dann resetet wird, alle Ausgänge wieder auf Low.
    Dann kommt noch ein weiterer Timer als Zähler für deine Duty-Cycles. Diese legst du am besten an die INT0 und INT1 Eingänge und liesst dann beim IRQ immer nur den Zählerstand ab. Fertig.
    Bis jetzt wird quasi noch keine Prozessorlast erzeugt.

    LCD + Taster macht dann der AVR gähnend im Hauptprogramm und langweilt sich geschätzt 80% in Warteschleifen.

    Was du mit dem Multiplexen meinst, weiß ich nicht genau, sollte aber egal wie auch noch locker zu realisieren sein.

    Viele Grüße
    Andreas

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    05.01.2010
    Beiträge
    35
    Zitat Zitat von Bumbum Beitrag anzeigen
    Dann kommt noch ein weiterer Timer als Zähler für deine Duty-Cycles. Diese legst du am besten an die INT0 und INT1 Eingänge und liesst dann beim IRQ immer nur den Zählerstand ab. Fertig.
    Bis jetzt wird quasi noch keine Prozessorlast erzeugt.
    Aber ich will ja den Duty-Cycle haben, also das zeitliche Verhältnis zwischen einem hohen und tiefen Pegel, da bringt es mir doch nicht viel, wenn ich messe, wieviele Interrupts in einem Zeitraum ausgeführt werden. Das Steuersignal läuft auch mit rund 25 kHz und wenn des nun eine Auflösung von 8 Bit hat und ich z.B. einen Duty-Cycle von 1% auslesen will, dann muss der Timer im Capture Mode ja schon Veränderungen im 3,2 MHZ Takt feststellen können. Da wird das ganze schon echt zeitkritisch, weil bei jedem Flankenwechsel ja noch der Wert des Timers gespeichert und der Duty-Cycle ausgerechnet werden muss, bevor der nächste Takt kommt.

    Und dann ist da auch wieder das Problem, dass so ein Atmega ja nur 3 Timer hat, wovon dann 2 Timer durch die PWM belegt sind (geht ja nur 2x PWM pro Timer).
    Geändert von Dunuin (11.10.2011 um 02:23 Uhr)

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Automatische Stromversorgung
    Von AndreasMüler im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 4
    Letzter Beitrag: 14.08.2010, 14:36
  2. automatische Heizungsreglung
    Von daniel.weber im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 3
    Letzter Beitrag: 27.03.2008, 07:56
  3. automatische Toröffnung?
    Von spec im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 16.12.2007, 09:44
  4. automatische videoleinwand
    Von ohmmega im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 6
    Letzter Beitrag: 23.11.2006, 14:18
  5. Automatische Zielerfassung
    Von vdw im Forum Sensoren / Sensorik
    Antworten: 31
    Letzter Beitrag: 16.04.2006, 21:14

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •