Lüfterregelung temperaturabhängig zwei Kanäle

Aus Deutsches DMXC-Wiki
Version vom 4. Januar 2015, 07:51 Uhr von Sgaensler (Diskussion | Beiträge) (→‎Zweipunktregelung: Denkfehler - fan Wert ist indirekt proportional zur Ausgangsleistung, also fan = 0 für maximale Leistung)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
2 Kanal Lüfterregelung, temperaturabhängig
Entwickler Stefan Gänsler
Aktuelle Version 0.1
Datum 30.03.2013
Status fertig
Lizenz GPLv3
Kontakt bitte klicken
Download

Beschreibung

Ziel:

  • Beruhigung zweier Lüfter ohne Gefährdung der Elektronik (somit temperaturgeregelt)
  • Realisierung mit vorhandenen Bauteilen als Feierabend-Projekt
  • Spannungsversorgung des Mikrocontrollers aus Spannung des ersten Lüfters (>= 7 V); Bauteile von Kanal 2 können ohne Seiteneffekte weggelassen werden
  • Regellogik: T < 25 °C: Lüfter komplett aus. T > 50 °C Lüfter komplett an. Dazwischen wird eine stufenlose Zweipunktregelung realisiert.

Projekt war von der Code-Qualität und -Dokumentation nicht zur Veröffentlichung gedacht, auf Wunsch von lighter habe ich es hiermit veröffentlicht. Support oder Garantie kann nicht gegeben werden.

Entwurfsgrundlagen

  • Lüftersteuerung soll bzgl. Temperatursensoren Fail-Safe sein. Wenn beim Starten kein Temperatursensor erkannt wird (oder dieser im Betrieb abgesteckt wird), läuft der entsprechende Lüfterkanal einfach voll.
  • bei Inbetriebnahme laufen die Lüfter die ersten 5 Sekunden voll, dient v.a. der optischen Fehlererkennung bei defektem Lüfter
  • gemächliche Regelcharakteristik um Schwingen des Regelkreises zu eliminieren (eine Temperaturmessung pro Sekunde, Änderung der Lüftergeschwindigkeit erst wenn Temperaturdifferenz > 1 °C)
  • beim Einschalten eines Lüfters läuft dieser erst 2 Sekunden voll, damit er anläuft
  • PWM Grundfrequenz von 30 kHz, da Einbau in Audiosystem erfolgte

Bauteilliste

Bezeichnung
Reichelt-Bestellnr.
Bezeichnung
Preis
C1, C2, C4
KERKO 100N
Abblock-Kondensator
0,21 €
C3
RAD FC 470/16
Stabiliserungskondensator
0,23 €
JP1 - JP7
SL 1X36G 2,54
Stiftleisten
0,15 €
R1, R2
METALL 39,0K
Widerstände
0,16 €
NTC1, NTC2
NTC-0,2 10K
NTC Temperaturfühler
0,66 €
T1, T2
IRLR 2905
N-MOSFET, TTL Pegel kompatibel
1,10 €
U$1
ATTINY 45-20SU
Atmel ATtiny45-20SU
1,05 €
IC1
µA 7805
Spannungsregler 5V
0,27 €


Gesamt:
2,73 €

Preise: Stand 02.01.2015

Reichelt Warenkorb

zzgl. Basismaterial + Anschlussleitungen/Stecker

Platine

Fertiggestellte Platine, Lötseite
Achtung: Platzierung der ISP Steckleiste und des Spannungsreglers mit dem Board aus dem Projektarchiv auf der anderen Seite der Platine
Fertiggestellte Platine, Bauteilseite

Quellcode

Zweipunktregelung

Fancontrol.c:149 und analog Fancontrol.c:169

 fan1 = (32.0 / (237 - 98) * temp1 - 22.561);

Stellt die Gerade der Zweipunktregelung dar.

  • 22,561 gibt den minimalen Wert der Lüftergeschwindigkeit an. Dieser Wert muss experimentell bestimmt werden. Dies ist der fan1 Wert, bei welchem der Lüfter sich in allen Anwendungsfällen sicher noch langsam dreht - anlaufen muss er bei diesem Wert nicht mehr, dafür wird automatisch gesorgt.
  • 32,0 gibt die Steigung der Zweipunktregelung an. Muss so gewählt werden, dass am oberen Wert (50 °C bzw. ADC Messwert 98 ein Ergebnis von >= 0 herauskommt)
  • 237 ist der ADC Messwert bei 25 °C (berechnet)
  • 98 ist der ADC Messwert bei 50 °C (berechnet)

Fuses Mikrocontroller

So konfigurieren, dass der Mikrocontroller mit internem Oszillator auf 8 MHz läuft

Müsste Low = 0xE2 und High = 0xDC sein.

Temperaturmessung

Temperaturmessung findet einmal pro Sekunde statt, und wird mit T_n = (T_(n-1) + T_mess) / 2 geglättet

Platzierung der Temperatursensoren

Plazierung des mit Schrumpfschlauch elektrisch isolierten Temperatursensors (Auswölbung am oberen Ende des Kühlkörpers) mit Kabelbinder am Kühlkörper
  • an der heißesten Stelle des zu überwachenden Bereichs (Lüfter läuft erst ab 25 °C an - wenn der Temperatursensor aufgrund eines fehlenden Luftstroms diese nicht erreicht, obwohl an anderen Stellen des Bereichs eine kritische Temperatur herrscht, ist der Temperatursensor falsch montiert)
  • idealerweise außerhalb des direkten Luftstroms des Lüfters (Vermeiden von Schwingungen der Regelschleife)
  • üblicherweise an Rand des Kühlkörpers (Anbringung mit Kabelbinder genügt, thermischer Kontakt ist ausreichend gegeben)
  • Zuordnung Temperatursensor 1 -> Lüfter 1 muss logischerweise eingehalten werden

Verbesserungsvorschläge

  • reines SMD-Layout entwickeln
  • Quellcode überarbeiten + dokumentieren
  • Bug im Quellcode: Wenn beim Start kein Temperatursensor erkannt wird, läuft der Kanal auch nach Anstecken des Temperatursensors weiterhin mit voller Leistung
  • Bug im Quellcode: 2 Sekunden Totzeit bei Anlaufen des Lüfters blockieren Temperaturmessung und Regelung des jeweils anderen Kanals