Fußbodenheizung
(DC-DC-Wandler)

Schaltplan


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:

alt






Bilder

Bestückungsseite

Ansicht des DC-DC-Wandlers von der Bestückungsseite. Dahinter die beheizbare Schuheinlegesohle.


Batterieseite

Ansicht des DC-DC-Wandlers von der Batterieseite. Hier werden drei eneloop Akkus der Firma Sanyo verwendet.


Heizdraht in der Sohle

Dieses Bild zeigt den in der Sohle eingebauten Heizdraht.


Downloads

Schaltlan (PDF)
DesigSpark Projekt Dateien
Software Quellcode