- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 11

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

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    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 18:55 Uhr)

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    ...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...

  3. #3
    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 19:55 Uhr)

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    ...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

  5. #5
    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.

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    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

  7. #7
    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 01:23 Uhr)

Ä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, 13:36
  2. automatische Heizungsreglung
    Von daniel.weber im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 3
    Letzter Beitrag: 27.03.2008, 06:56
  3. automatische Toröffnung?
    Von spec im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 16.12.2007, 08:44
  4. automatische videoleinwand
    Von ohmmega im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 6
    Letzter Beitrag: 23.11.2006, 13:18
  5. Automatische Zielerfassung
    Von vdw im Forum Sensoren / Sensorik
    Antworten: 31
    Letzter Beitrag: 16.04.2006, 20:14

Berechtigungen

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

12V Akku bauen