Fußbodenheizung
(DC-DC-Wandler)
Einleitung
Kalte Füße gehören zu den unangenehmen Begleiterscheinungen
des Winters. Der Fach- und Ramschhandel bietet daher schon seit
langer Zeit Abhilfe in Form elektrisch beheizbarer
Schuheinlegesohlen. Sie bestehen aus einem Heizelement, das von einer
9 V-Blockbatterie gespeist wird. Das Heizelement hat einen
Widerstand von etwa 20 Ω,
erzeugt also eine Wärmeleistung von etwa 4 Watt. Eine
typische 9 V Blockbatterie hat eine Kapazität von 400 bis
600 mAh, ein guter 9 V Akku erreicht 300 mAh. Nach
einer guten halben Stunde ist der Akku also entladen, während
eine Zink-Kohle-Batterie vielleicht eine Stunde durchhält. Das
macht also keinen Spaß.
Was kann man tun? Die gespeicherte Energie eines voll geladenen 9 V
Akkus ist mit höchstens 2.7 Wh einfach zu niedrig und
außerdem sind wohl auch nicht immer 4 W Heizenergie nötig.
Als preisgünstige Alternative bieten sich NiCd bzw. NiMH Akkus
der Bauform AA an. 2 Ah bei 1.2 V sind gängige
Kapazitäten. Bei drei Stück dieser Akkus kommt man auf eine
gespeicherte Energie von etwa 7.2 Wh, also nahezu der dreifachen
Energie einer 9 V Blockbatterie. Leider erreicht man bei
Serienschaltung aber nur 3.6 V Spannung, also viel zu wenig, um
die Sohle zu erwärmen. Es muß also ein Spannungswandler
her, der die 3.6 V auf eine einstellbare Spannung zwischen etwa
4.5 V und 9 V hochsetzt. Das lässt sich recht leicht
mit einem diskreten Schaltregler bewerkstelligen. Wenn aber noch
einfache Bedienung und Abschaltung bei entladener Batterie gewünscht
werden, dann lohnt sich der Einsatz eines kleinen Mikrocontrollers.
Der nachfolgend beschriebene DC-DC Wandler diente mir zur
Einarbeitung in die Atmel 8-bit Mikrocontroller und in das kostenlose
PCB Layout Programm DesignSpark.
Alle Bauteile, außer dem Buzzer, sind bei der Firma Reichelt
erhältlich.
Schaltungsbeschreibung
Als Mikrocontroller dient der ATtiny44A
von Atmel. Er bringt alles mit, was für diese Anwendung benötigt
wird: 1.8 V bis 5.5 V Versorgungsspannung, interner
hinreichend stabiler Oszillator, automatischer Power-on Reset, 4 kB
Flash Programmspeicher, 256 Byte RAM, A/D-Wandler und Timer für
Pulsweitenmodulation. Das Gehäuse ist ein gut von Hand lötbares
14-pin SOP. Der Mikrocontroller wird über ein RC-Glied von 10 Ω
und 1µF versorgt (R3, C5). Damit ist er hinreichend von
eventuellen Spannungseinbrüchen beim Schalten des DC-DC Wandlers
entkoppelt.
Der DC-DC Wandler weist im Grunde keine Besonderheiten auf. Es handelt
sich um den klassischen Aufwärtswandler, wie er z.B. In
Wikipedia
beschrieben wird. L1 ist die Speicherdrossel, T1 der Schalttransistor
und D3 die Freilaufdiode. L2, C2 und C4 bilden ein Pi-Filter, das die
Welligkeit der Ausgangsspannung erheblich reduziert. Ausgangsspannung
und Batteriespannung gehen über einen Spannungsteiler an jeweils
einen AD-Wandler Eingang des Mikrocontrollers. Die Eingangsspannung
des DC-DC-Wandlers kann über T2 ein- und ausgeschaltet werden,
denn ansonsten wird die Batterie über L1, D3 und L2 ständig
belastet. Es ist keine Stromüberwachung implementiert, so daß
der DC-DC Wandler auch nicht wirklich kurzschlußfest ist.
Sollte dennoch ein Kurzschluß auftreten, wird die Sicherung FS1
durchbrennen, falls die Akkus einen genügend hohen Strom liefern
können.
Beim Betrieb ohne Last steigt die Ausgangsspannung bei gleichbleibendem
PWM Tastverhältnis immer weiter an, ggf. wird sogar die
Spannungsfestigkeit der Siebelkos überschritten. Die Regelung
durch den Mikroprozessor ist schnell genug, um die Spannung dennoch
in Grenzen zu halten. Eine einmal aufgebaute Spannung wird aber ohne
Last nur noch durch die Leckströme der Kondensatoren abgebaut,
was ziemlich lange dauern kann.
Über PA6 wird angezeigt, ob ein Spannungsversorgungsstecker eingesteckt
ist. Der interne pull-up Widerstand dieses Pins ist eingeschaltet und
zieht den Pin auf high, wenn ein Stecker eingesteckt ist. Ist er
herausgezogen, liegt PA6 auf low. Da PA6 auch zum Programmieren
verwendet wird, muß hier ein Stecker eingesteckt sein, wenn der
Programmieradapter angeschlossen ist. PA6 dient zum schnellen
Abschalten des Wandlers beim Abziehen des Steckers, um die oben
erläuterte Spannungsüberhöhung möglichst zu
vermeiden.
Die beiden Taster SW1 und SW2 dienen zum Ein- und Ausschalten sowie zum
Einstellen der Leistung. Der Betriebszustand wird über die
Leuchtdioden D1 und D2 angezeigt und ein Tastendruck bzw. die
entladene Batterie wird über Töne unterschiedlicher
Frequenz akustisch gemeldet. Als Buzzer wird ein kleiner
elektroakustischer Typ eingesetzt, der mit 3.3 V betrieben wird
und in Deutschland nur schwer erhältlich ist. Ich konnte eine
größere Anzahl direkt in China
zu sehr niedrigen Kosten bestellen und habe damit mutmaßlich
den Bedarf für mehrere Jahre gedeckt.
Softwarebeschreibung
Das Betriebsprogramm für den DC-DC-Wandler ist komplett in der
Programmiersprache C geschrieben und recht simpel. Im Hauptprogramm
wird eine Endlosschleife ausgeführt. Es werden zunächst die
Taster und der Status des Steckers abgefragt. Wurde ein Taster
gedrückt, wird die Sollspannung hoch oder heruntergesetzt. Es
sind fünf Leistungsstufen vorgesehen und zwar 0W
(ausgeschaltet), 1W, 2W, 3W oder 4W an 20 Ω,
entsprechend 0 V, 4.47 V, 6.32 V, 7.75 V und
8.94 V. Aufleuchten der
LED und ein Piepston bestätigen die Änderung. Anschließend
werden die momentane Batteriespannung und die Ausgangsspannung
gemessen und über 32 Messungen gemittelt. Wurde der Wandler
gerade eingeschaltet, wird zunächst die Spannungsversorgung des
DC-DC-Wandlers über T2 gepulst hochgefahren. Wegen des niedrigen
Durchlasswiderstandes von T2 bricht andernfalls die Batteriespannung
zu weit zusammen, zumindest wenn Akkus mit recht hohem
Innenwiderstand verwendet werden. Sehr zu empfehlen sind übrigens
die eneloop Akkus der Firma Sanyo, die es inzwischen mit bis zu
2500 mAh gibt.
Die Ausgangsspannung wird über eine einfache Proportionalregelung
auf den Sollwert nachgeführt. Das reicht für diesen Zweck
völlig aus, der Purist mag hier gerne eine PID Regelung
implementieren. Platz im Codespeicher scheint hinreichend vorhanden,
denn er ist gerade einmal zu 42% gefüllt, das RAM nur zu 13%. In
der Hauptschleife wird lediglich der neue PWM Wert ermittelt. Ein
Interrupt-Handler schreibt ihn in das entsprechende PWM Register.
Interrupt-Handler
Es sind insgesamt drei Interrupt-Handler implementiert. Ein Überlauf des
Timers 0 startet den TIM0_OVF_vect Handler. Da Timer 0 mit 31.25 kHz
getaktet wird, wird dieser Handler alle 32 µs gestartet.
Bei einem CPU-Takt von 8 MHz kann die CPU also nur etwa 250
Instruktionen zwischen zwei Interrupts ausführen. Der Code in
diesem Interrupt-Handler beschränkt sich daher auf das Schreiben
eines neuen PWM Wertes, falls die Ausgangsspannung nachgeregelt
werden muß. Dieses Schreiben erfolgt im Interrupt-Handler, da
man hier relativ sicher sein kann, daß der Counter gerade einen
Nulldurchgang hatte. Andernfalls kann es beim Schreiben eines
niedrigeren Wertes als des aktuellen passieren, daß der Timer
schon die obere Schwelle überschritten hat und bis zum Überlauf
weiterzählt.
Der zweite Interrupt-Handler, TIM1_COMPA_vect, wird vom Timer1
aufgerufen, wenn er gleich dem COMPA Wert ist. Er ist so eingestellt,
daß er eine 10 ms Zeitbasis zur Verfügung stellt. Der
Timer1 Interrupt wird benutzt, um definierte Wartezeiten zu erzeugen.
Außerdem werden hier die Taster und der Stecker abgefragt und
entprellt und die LEDs für eine definierte Periode
eingeschaltet. Hat das Hauptprogramm einen Piepston beantragt, wird
außerdem in diesem Interrupt-Handler der Timer1 so
umprogrammiert, daß OC1B über PA5 einen Ton generiert.
Der dritte Interrupt-Handler, TIM1_COMPB_vect, wird von Timer1
aufgerufen, wenn er gleich dem COMPB Wert ist. In diesem Interrupt
Handler wird die Anzahl der Impulse für den Buzzer gezählt.
Er bestimmt also die Dauer des Tons. Ist die vorgegebene Anzahl
abgelaufen, wird hier wieder auf die 10 ms Zeitbasis
umgeschaltet.
Zu beachten ist, daß TIM1_COMPA_vect und TIM1_COMPB_vect
alternativ aufgerufen werden. Das bedeutet, daß eine
Zeitmessung bzw. das Entprellen der Tasten um die Zeit verzögert
wird, in der ein Ton ausgegeben wird. Da aber keine
Präzisionsmessungen gemacht werden, scheint das akzeptabel zu
sein.
Wirkungsgrad
Der DC-DC-Wandler erreicht einen Wirkungsgrad von über 90%. Nachfolgend die am Prototypen gemessenen Werte:
Bilder
Ansicht des DC-DC-Wandlers von der Bestückungsseite. Dahinter die beheizbare Schuheinlegesohle.
Ansicht des DC-DC-Wandlers von der Batterieseite. Hier werden drei eneloop Akkus der Firma Sanyo verwendet.
Dieses Bild zeigt den in der Sohle eingebauten Heizdraht.
Downloads
Schaltlan (PDF)
DesigSpark Projekt Dateien
Software Quellcode