Hardware

Schaltplan

Schaltplan

Die gesamte Schaltung wird an 12 Volt betrieben. Die benötigte Spannung des ATMega8 von 5V wird durch einen Spannungsregler erzeugt. Es wird der interne Oszillator verwendet, da das Einhalten einer bestimmten Verarbeitungsgeschwindigkeit hier nicht notwendig ist. PC4 und PC5 sind die Eingänge des A/D-Wandlers. Die Potis und NTCs (temperaturabhängige Widerstände) bilden jeweils einen Spannungsteiler zum Einstellen von zwei gewünschten Soll-Temperaturen, die dann an PC4 und PC5 gemessen werden. An PC2 und PC3 können optional LEDs angeschlossen werden. Die LEDs werden nur zum Testen bzw. zur Anzeige verwendet. Sie sind natürlich sehr sinnvoll, wenn man die Schaltung das erste Mal aufbaut. Falls man sich eine zweite Regelung baut, kann man sie aber auch weglassen. PB1 und PB2 werden als PWM-Ausgänge benutzt (Pulsbreitenmodulation). Je nach notwendiger Lüfterdrehzahl wird ein entsprechendes Tastverhältnis eingestellt, was in einer Regelung der Spannung hinter den Transistoren resultiert. Diese Spannung wird mit zwei Elkos geglättet.

Ich empfehle, den Programmieranschluß wie in den anderen Schaltungen auf meiner Homepage ebenfalls zu bestücken, da es das Testen doch sehr vereinfacht im Gegensatz zum Flashen an einer getrennten Schaltung und Umstecken des Mikrocontrollers.

Falls die Lüfter im PC verwendet werden und die Lüfterdrehzahl vom PC aus auslesbar sein soll, kann das Tachosignal der Lüfter direkt am Motherboard angeschlossen werden. Die Spannungsversorgung der gesamten Schaltung inkl. der Lüfter sollte von einem Stromversorgungsstecker für Laufwerke abgenommen werden.

Falls man nur einen Lüfter regeln möchte, kann man die Bestückung jeweils der zweiten LED, NTC, Trimmer, Transistor etc. einfach weglassen. Insgesamt gelten jeweils die Pins am Mikrocontroller mit höherer Nummer für den zweiten Lüfter.


Bauteile

Hier die Pinbelegung einzelner Bauteile.

übliche Farbcodierung bei Papst-Lüftern
blau = Masse
rot = +12V
weiß = Tachosignal
Spannungs-
regler
78L05
Transistor
BD135


Fuse-Bits, Flashen, Testen

Die Fuse-Bits des Mikrocontrollers bleiben auf dem Defaultwert stehen. Insbesondere wird damit der interne Oszillator mit 1 MHz verwendet. Diese Geschwindigkeit und die relative Ungenauigkeit des internen Oszillators reichen für den Einsatzzweck völlig aus.

Die EEPROM-Bytes haben folgende Bedeutung:

Byte 0 Betriebsmodus
FF = Fehlermodus
00 = ADC Testmodus Kanal 1
01 = ADC Testmodus Kanal 2
02 = Lüfter Testmodus Min
03 = Lüfter Testmodus Max
04 = Normalbetrieb
Byte 1 Regelgeschwindigkeit für Lüfter 1
Ein Regelschritt dauert x * 200ms
10 = Mittlere Geschwindigkeit = 1 Regelschritt pro Sekunde
kleinere Werte führen zu schnellerer Regelung
größere Werte führen zur langsameren Regelung
Byte 2 Regelgeschwindigkeit für Lüfter 2
Byte 3 Minimalspannung für Lüfter 1
als Startwert kann 0x0A probiert werden
Byte 4 Minimalspannung für Lüfter 2
Byte 5 Maximalspannung für Lüfter 1
als Startwert kann 0x40 probiert werden
Byte 6 Maximalspannung für Lüfter 2

Testen im Fehlermodus

Zunächst sollte man nur das Programm flashen und den EEPROM nicht beschreiben. Dann stehen alle Bytes im EEPROM auf 0xFF. Das Programm erkennt den nicht beschriebenen EEPROM und geht in den Fehlermodus, was ein abwechselndes Leuchten der LEDs zur Folge hat. Somit kann man testen, dass die Ablaufgeschwindigkeit korrekt ist. Die LEDs müssen im Sekundentakt abwechselnd leuchten.

Testen im ADC Testmodus

Als nächstes beschreibt man die ersten 7 Bytes des Flashs mit 00 00 00 00 00 00 00. Dies macht man mit dem Befehl

sp12 -wea 0x00:0x00 -wea 0x01:0x00 -wea 0x02:0x00 -wea 0x03:0x00 -wea 0x04:0x00 -wea 0x05:0x00 -wea 0x06:0x00

Nach Einschalten geht der Mikrocontroller in den ADC Testmodus für Kanal 1. Es wird jetzt der Spannungswert für den ersten Fühler von 0..1023 gemessen. Die LED 1 gibt den Wert, geteilt durch 10, aus. Der Regel-Sollwert ist bei 512. Durch Drehen des Potis sollte es nun möglich sein, einen Meßwert zu erzeugen, bei dem die LED weniger als 51 mal und auch mehr als 51 mal leuchtet. Dazu sollte man den Temperaturfühler in den Fingern halten, damit er eine etwas höhere Temperatur bekommt. Wenn das klappt, funktioniert somit die Messung. Die Regelung ist auf Temperaturen ab 30° ausgelegt. Wenn man noch niedrige Solltemperaturen vorgeben will, kann man dies durch Einsatz eines hochohmigeren Trimmers ermöglichen. In jedem Fall ist wieder der Sollwert bei Messung von 512 (also 51 LED-Blinks) erreicht.

Dasselbe kann man im ADC Testmodus für Kanal 2 machen. Es wird dann die Temperatur an Fühler 2 gemessen. Die LED 1 gibt wieder den Meßwert an. Der Testmodus 2 ist mit folgendem Befehl einzustellen:

sp12 -wea 0x00:0x01 -wea 0x01:0x00 -wea 0x02:0x00 -wea 0x03:0x00 -wea 0x04:0x00 -wea 0x05:0x00 -wea 0x06:0x00

Lüfter Testmodus Min

Für den "Lüfter Testmodus Min" ist Byte 0 auf 2 zu setzen. Byte 3 und 4 könenn für den ersten Versuch z.B. auf 0x0A gestellt werden. Nach Einstellen des Lüfter Testmodus mit

sp12 -wea 0x00:0x02 -wea 0x01:0x00 -wea 0x02:0x00 -wea 0x03:0x0A -wea 0x04:0x0A -wea 0x05:0x00 -wea 0x06:0x00

sollten beide Lüfter jeweils 8 Sekunden mit der Maximalgeschwindigkeit (Ausgang dauerhaft eingeschaltet, es ist nicht die eingestellte Maximalgeschwindigkeit im EEPROM gemeint) laufen, danach 8 Sekunden mit der eingestellten Minimalgeschwindigkeit. Die Minimalgeschwindigkeit muss jetzt so eingestellt werden, dass die Lüfter nicht aufhören zu drehen. Es ist nicht wirklich notwendig, dass der Lüfter mit dieser Minimalspannung auch aus dem Stand anlaufen, da erstens im Normalbetrieb die Lüfter immer erst kurz mit Maximalgeschwindigkeit anlaufen und zweitens selbst im Falle des Stehenbleibens die Temperatur steigen würde, so dass die Lüfter letztlich doch anlaufen würden. Mit einem getesteten Papst 4412 F/2GLL ergab sich ein sinnvoller Minimalwert von 0x0A.

Lüfter Testmodus Max

Auch die Maximalspannung muss eingestellt werden. Durch den eingesetzten Elko und abhängig vom eingesetzten Lüfter ist nämlich schon bei einer mittleren Pulsbreite des PWM Signals (z.B. genauso lang eingeschaltet wie ausgeschaltet) die maximale Drehzahl erreicht. Damit die Regelung von der Geschwindigkeit sinnvoll reagiert und nicht im "Sättigungsbereich" längere Zeit festhängen kann, sucht man die Maximalgeschwindigkeit im "Lüfter Testmodus Max". Dieser ist mit

sp12 -wea 0x00:0x03 -wea 0x01:0x00 -wea 0x02:0x00 -wea 0x03:0x00 -wea 0x04:0x00 -wea 0x05:0x10 -wea 0x06:0x10

einstellbar, wobei Byte 5 + 6 den Maximalwert für die PWMs angibt. In diesem Testmodus wird abwechselnd auf den eingestellten Maximalwert und den technischen Maximalwert (dauerhaft ein) geschaltet. Die LEDs leuchten entsprechend dazu. Wenn kein Unterschied zwischen den beiden Spannungen zu bemerken ist, ist der gewählte Wert zu hoch. Es muss der Wert gefunden werden, bei dem die Lüfter bei ausgeschalteter LED von der Geschwindigkeit her gerade nicht merklich langsamer werden.

Normalbetrieb

Der Normalbetrieb ist durch Setzen von Byte 0 auf 4 einzustellen. Im folgenden Befehl sind Byte 3 bis 6 durch die gefundenen passenden Geschwindigkeiten zu ersetzen:

sp12 -wea 0x00:0x04 -wea 0x01:0x0A -wea 0x02:0x0A -wea 0x03:0x0A -wea 0x04:0x0A -wea 0x05:0x40 -wea 0x06:0x40

Da im Normalbetrieb die Regelung stattfindet, kann man nun Byte 1 und 2 verschieden einstellen und das Regelverhalten beobachten. Eine mittlere Regelgeschwindigkeit, die den gesamten Regelbereich in ein paar Minuten durchläuft, ergibt sich bei Werten von 30 bis 60. Die Regelgeschwindigkeit hängt maßgeblich von dem Abstand von Maximal- und Minimalspannung ab.

Die LEDs zeigen durch gepulstes Leuchten an, welche Spannung an den PWMs eingestellt ist. Dabei zeigt eine nur kurz blitzende LED an, dass die (im EEPROM konfigurierte) Minimalspannung eingestellt wurde. Eine fast dauerhaft leuchtende LED zeigt an, dass gerade die (im EEPROM konfigurierte) Maximalspannung eingestellt wird.