5VLueftersteuerung/Anzeige mit AVR


Motivation

Ich besitze einen Longshine Switch LCR 883R SW802. Dieser bietet für wenig Geld 10 VLANs und 8x 10/100MBit Ethernet-Ports sowie 2x1000Mbit Uplink-Ports. Leider ist der eingebaute Lüfter von der billigsten Sorte und lärmt ständig unter Vollast. Dieser Lüfter wird vom Board miit +5V betrieben. Damit schied der Einsatz herkömlicher 12V Lüfterregelungen aus der PC-Technik aus.

Durch Zufall fand ich im Internet eine Schaltung für eine Lüftersteuerung mittels AVR, welche neben der Temperaturregelung auch eine Anzeige der Temperatur beinhaltet. Die Messung erfolgt tels NTC, die Drehzahl-Regelung mittels PWM wird mittels AnalogComperator mit 4 Zonen(Vergleiche) realisiert.

Obwohl obige Schaltung auch "nur" für 12V ausgelegt war, habe ich die Idee für mein Projekt weiterentwickelt und mit folgenden Eckpunkten designed:

Hier möchte ich meine Selbstbau-Lösung für eine Lüftersteuerung dieses Switches mittels AVR beschreiben.

Umsetzung

Herausgekommen ist eine kleine Schaltung, die an Einfachheit wohl kaum noch zu unterbieten ist. Basis ist ebenfalls ein AVR 90S2313 (oder auch ATTiny2313). Ihm zur Seite steht ein LM75 Temperatursensor, welche die Temperaturwerte über I2C "im Klartext" an den AVR meldet. Bei dem Preis war es mir zu doof, mich mit dem AnalogComperator und den Kennlinien der NTCs rumzuärgen, da die Genauigkeit des LM75 für den Einsatzzweck ausreichend ist. RX/TX werden bei Bedarf und bei der Erstprogrammierung mit einem RS232-Schnittstellenwandler (wie auf dem STK500) verbunden. Ein Port ist für die PWM-Ausgabe über einen Transistor zuständig. Die verbleibenden Ports des AVR werden für die 7/3 Bargraph-Anzeige verwendet. Der Quarz ist eigentlich nicht nötig, aber für eine sichere serielle Verbindung habe ich ihn doch genommen.

Das PWM-Signal wird durch einen Leistungstransistor verstärkt, da bei blockierenden Rotor schon mal 200mA vom Lüfter gezogen werden. Außerdem wird das PWM-Signal durch einen Elko geglättet.

Bild1 Schaltung

Ursprünglich wollte ich auch noch die reale Drehzahl des Lüfters mit einen Hallsensor einlesen, aber dafür hätte ich den Lüfter modifizieren, einen weiteren Draht ins Gehäuse führen und einen Port der Anzeige Opfern müssen.

Bei der Programmierung muss man darauf achten, das die PWM-Spannung nicht zu niedrig wird, so das der Rotor stehen bleibt, weil man sonst u.U. den Rotor nur mit der vollen Spannung wieder zum laufen bringt. Deshalb habe ich im Programm einen Minimalwert vorgesehen, der nicht unterschritten werden soll.

Regelung

Zunächst muss man eine Solltemperatur festlegen, die nicht überschritten werden soll, z.B. 40 °C. Das ist der Mittelwert und entspricht auf der Bargraph-Anzeige der Grenze zwischen den roten und den grünen LEDs. Das PWM-Signal wird durch Timer0 erzeigt und hat damit eine Range von 0-255/255 Steps. Durch Tests wurde die Begrenzung nach unten( Minimalwert s.o.) mit 63 festgelegt. Beim Start des Prozessors wird ersteinmal von Vollast ausgegangen, d.h. 100% Drehzahl. liegt die Aktuelle Temperatur nun unter dem Schwellwert, wird das PWM-Verhältnis in Schritten von 4 Steps vergrößert, so das die Spannung am Elko und damit die Drehzahl sinkt. Das wird so lange wiederholt, bis entweder der Mindestwert erreicht wird oder die Temperatur wieder überschritten wird.

Bau

Das ganze wurde mit einer Lochrasterplatine klassisch realisiert und in ein kleines Gehäuse eingebaut. Der LM75 wurde auf eine SMD-DIL8 Adapterplatine mit dem Blockkondensator und den Kabeln gelötet und mit Schrumpfschlauch umwickelt durch die Bodenöffnung für den Lüfter im Rahmen in das Gehäuse gefädelt.

Fuse Settings

Beim Laden der Firmware ist daraum zu achten, das die Fuses richtig gesetzt sind. Im Vergleich zum altehrwürdigen AT90S2313 besitzt der ATTiny2313 mehr Fuses. So ist darauf zu achten, das der ClockDivisor(CKDIV8) und der Watchdog ausgeschaltet sind.
Für die Clockoptionen empfehle ich bei installiertem Quartz die Einstellung "External Crystal 3-8mhz, Startup Time 14Ck+65ms". Das ist zwar langsam, aber sicher.

Bilder

Bild2 Lochraster-Platine

Einbau in das Gerät

Bild3 Einbau des Sensors in das Gerät.

Fertiges Gerät

Bild4 Fertige Lüftersteuerung

Download:
Schaltplan, Board und Quellcode auf GitHub (zur privaten Nutzung)

Index
Disclaimer
© 2007+ Thomas Dreßler
Alle Rechte vorbehalten
letzte Änderung 18.03.2015