maltepöggel.de

AVR Flashlight Controller

700mA Konstantstrom Treiber für Taschenlampen mit einer Lithium Zelle

Ich gehöre zu den Leuten die hin und wieder Taschenlampen aus China bestellen.

Für kleines Geld bekommt man so einiges an Technik: Ein stabiles Aluminiumgehäuse mit Gummidichtungen, einer Hochleistungs-LED, passender Treiberelektronik - zumeist versorgt aus einer oder mehreren 18650er Lithium Akkus.

Bild: Eine der China Lampen

Da ich eigentlich immer eine der Lampen dabei habe sprach es sich im Laufe der Zeit auch in meinem Freundeskreis herum. Es kam zu einem regelrechten Taschenlampenwettrüsten, und somit auch dazu dass mir Lampen mit weniger guter Treiberelektronik in die Hände fielen. Höchste Zeit zum Basteln!

Ein solcher Treiber kann oft mehr als nur den LED Strom zu begrenzen. Ein Mikrocontroller sorgt dafür das zwischen verschiedenen Helligkeitsstufen oder Blinkmustern umgeschaltet werden kann. Der Treiber ist in Form einer kleinen Platine hinter der LED befestigt. Beides zusammen ist in einem Messingblock, welcher auch gleichzeitig die Wärmeabfuhr der Leuchtdiode sicherstellt, befestigt und mit einem Gewinde im Kopf der Lampe verschraubt. Auf der Rückseite ist die Kontaktfeder zum Pluspol befestigt, der Minuspol ist mit dem Messing-Einsatz verlötet.

Bild: LED und Treiber der Taschenlampe

Vor einiger Zeit bekam ich dann eine Ultrafire TH-T60 mit defektem Treiber geschenkt. Ein Platinenbruch sorgte dafür dass die LED nur leuchtete wenn der Kopf nicht ganz fest zugeschraubt war. Bei einem mehrlagigen Layout mit Bauteilen dicht an dicht nichts, was sich mit wenig Aufwand finden und reparieren lässt. Bei weiterer Analyse stellte ich außerdem fest, dass in dieser Lampe nicht mal auf Konstantstrom geregelt wurde. Mikrocontroller, Mosfet - Strom begrenzt sich allenfalls durch den Innenwiderstand des Akkus. Das bestätigt die Aussage, dass die Helligkeit anfangs sehr hoch war, jedoch schnell abnimmt. Somit werden auch die vom Hersteller angegebenen 975(!) Lumen nur über einen kurzen Zeitraum erreicht.

Um die Leuchtdiode zu schonen, und eine länger gleichbleibende Helligkeit zu bieten, habe ich mir für meinen Eigenbau Controller den Konstantstrom LED Treiber MIC4802 ausgesucht. Dieser ist ein Linearregler mit programmierbarer Strombegrenzung und PWM Eingang. Schaltregler fallen für den Betrieb mit nur einer Lithium Zelle raus, die Durchlassspannung der LED liegt nur wenig unter der Akkuspannung.

Schaltbild

Wie vorhin schon erwähnt bieten einige Taschenlampen Dimm- und Blinkfunktionen. Dazu kommt ein ATTiny45 zum Einsatz, der mit dem PWM Eingang des MIC4802 verbunden ist. Der Mikrocontroller muss den Umschaltwunsch mittels kurzen Unterbrechungen in der Stromversorgung erkennen. Dazu habe ich mir folgenden Trick ausgedacht: Der Controller bekommt seine Betriebsspannung über eine Shottky Diode und einen Kondensator. Der Reset Pin ist jedoch über einem Widerstand direkt mit der Betriebsspannung verbunden. Bricht nun die Spannung kurz ein, bekommt der Controller einen Reset Impuls. Ein Flag im MCU Control Register bietet die Möglichkeit, festzustellen ob es sich um einen externen Reset oder den Power On Reset handelt.

Bild: LED und Treiber der Taschenlampe

Immer wieder gibt es Kritik zu Helligkeitsstufen und Blinkfunktionen. Der eine findet drei Stufen zu wenig, der andere braucht das Stroboskop nicht. Um diese Probleme zu lösen habe ich verschiedene "Modesets" in der Firmware hinterlegt:

  1. Helligkeit in 3 Stufen
  2. Helligkeit in 5 Stufen
  3. Helligkeit in 7 Stufen
  4. Helligkeit in 5 Stufen, Stroboskop, SOS
  5. Helligkeit in 5 Stufen, Blinken, Stroboskop, kurzer Blitz
  6. Helligkeit in 5 Stufen, Blinken, Stroboskop, kurzer Blitz, SOS, Alipine Distress, auf- und ab Faden, spukiges Flackern (Pseudozufallszahlengenerator)

Um das Modeset zu wechseln, muss 20 mal in Folge der Modus umgeschaltet werden (kurz antippen, Pausenzeit kurz halten) und anschließend länger als 2 Sekunden gewartet werden. Die Lampe blinkt entsprechend des Sets x mal auf und bleibt dann dunkel. Nach komplettem ausschalten ist das Modeset aktiv.

Die Taschenlampe kann wahlweise immer mit der hellsten Stufe starten, oder aber den letzten Modus fortsetzen. Dieses kann mit 25 mal antippen und anschließend warten (wie oben) umgeschaltet werden und wird 7 (Zustand speichern) oder 8 (Start mit voller Helligkeit) maligem aufblinken quittiert.

Eine Spannungsüberwachung sorgt dafür dass sich die Taschenlampe beim Unterschreiten der Entladeschlussspannug abschaltet. Die Abschaltspannung kann in der main.h an den jeweiligen Akkutyp (zB LiIon oder LiFePO4) angepasst werden.

Die doppelseitige Platine wurde wie immer selbst geätzt. Sie wurde anschließend mit einer Laubsäge ausgesägt und mit einer Schlüsselfeile eingepasst. Oben links die entlötete Originalplatine, rechts beide Layer der neuen Platine.

Bild: Alte und neue Platine

Durchkontaktierungen lassen sich mit beidseitig verlötetem Draht auf einfache Weise herstellen. Die Widerstände und einige Kondensatoren haben 0603er SMD Gehäuse.

Bild: Treiberplatine

Der MIC4802 hat ein sogenanntes "Exposed Pad", ein Pad auf der Unterseite welches die Wärme abführen soll. Auf die Platine wird etwas Lötzinn aufgetragen, dann der Chip auf die vorgewärmte Platine aufgelegt und per Heißluft verlötet. Dabei sollte der Chip ein wenig versetzt aufgelötet werden, da sonst das Pad mit der unter dem Chip durchgeführten Leiterbahn zum PWM Pin einen Kurzschluss erzeugt. Die verbleibenden 8 Pins lassen sich anschließend per Hand löten.

Zu guter Letzt nur noch ein paar mechanische Arbeiten. Kontaktfeder auflöten, Masse der Platine mit dem Messingeinsatz verlöten, Reflektor und LED zusammensetzen, Fertig!

Bild: Reflektor, LED und Kontaktfedern

Im Bild übrigens eine WF-501B mit blau eloxiertem Gehäuse. Diese hat zwar ab Werk schon einen brauchbaren Treiber, dafür aber nicht so viele Funktionen.

Bild: Zusammenbau

Video - Erste Tests

Und nun viel Spaß beim Basteln!

Downloads zum Projekt
Links zum Thema
Lizenz