Lüfterregelung temperaturabhängig zwei Kanäle: Unterschied zwischen den Versionen
Aus Deutsches DMXC-Wiki
KKeine Bearbeitungszusammenfassung |
(→Zweipunktregelung: Denkfehler - fan Wert ist indirekt proportional zur Ausgangsleistung, also fan = 0 für maximale Leistung) |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 97: | Zeile 97: | ||
Stellt die Gerade der Zweipunktregelung dar. | 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. | * 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 | * 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) | * 237 ist der ADC Messwert bei 25 °C (berechnet) | ||
* 98 ist der ADC Messwert bei 50 °C (berechnet) | * 98 ist der ADC Messwert bei 50 °C (berechnet) | ||
Zeile 103: | Zeile 103: | ||
=== Fuses Mikrocontroller === | === Fuses Mikrocontroller === | ||
So konfigurieren, dass der Mikrocontroller mit internem Oszillator auf 8 MHz läuft | So konfigurieren, dass der Mikrocontroller mit internem Oszillator auf 8 MHz läuft | ||
Müsste '''Low = 0xE2''' und '''High = 0xDC''' sein. | |||
=== Temperaturmessung === | === Temperaturmessung === | ||
Zeile 109: | Zeile 111: | ||
== Platzierung der Temperatursensoren == | == Platzierung der Temperatursensoren == | ||
[[Image:Fancontrol-NTC.jpg|thumb|right|250px|Plazierung des mit Schrumpfschlauch elektrisch isolierten Temperatursensors (Auswölbung am oberen Ende des Kühlkörpers) mit Kabelbinder am Kühlkörper]] | [[Image:Fancontrol-NTC.jpg|thumb|right|250px|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 nicht erreicht, obwohl an anderen Stellen des Bereichs eine kritische Temperatur herrscht ist der Temperatursensor falsch montiert) | * 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) | * 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) | * üblicherweise an Rand des Kühlkörpers (Anbringung mit Kabelbinder genügt, thermischer Kontakt ist ausreichend gegeben) |
Aktuelle Version vom 4. Januar 2015, 07:51 Uhr
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
zzgl. Basismaterial + Anschlussleitungen/Stecker
Platine
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
- 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