Funkel_01

Auf der Suche nach einer sinnvollen Anwendung, um teilentleerten Lithium-Knopfzellen noch den Rest an Energie auszusaugen, bevor man sie in´s Recycling gibt, habe ich mir eine kleine Schaltung zusammengefrickelt. Meist funktionieren Geräte mit halbleeren Batterien nicht mehr richtig oder stellen den Betrieb ganz ein. Aus Fernbedienungen für Funksteckdosen oder Innenraumthermometern fallen immer mal wieder Knopfzellen wie die CR2032 an, die noch mehr als die Hälfte an Energie enthalten. Mit diesem Projekt kann der Rest der Ladung noch sinnvoll verbraten werden, beispielsweise als Signalgeber an der Stelle, wo man den Autoschlüssel zuletzt hingelegt hat… Weiterhin kann die Schaltung im Modellbau Anwendung finden. Weil ich mit dem Prototypen zufrieden bin, habe ich auch gleich noch ein Layout dafür gezeichnet, um die Serienfertigung anzustoßen ;-).
Konkret geht es hier um einen winzigen Mikrocontroller, der mit 3 Pins 6 LEDs ansteuert. Wie das? Nun, das Prinzip ist nicht neu und nennt sich „Charlieplexing“, was eine besondere Form des „Multiplexing“ ist, falls dieser Begriff geläufiger ist. Hierbei nutzt man die Tatsache, dass ein Controller einen Pin auf 0 (also Masse) auf 1 (also Plus) oder hochohmig (nichts von alledem) schalten kann. Dadurch kann man mehrere LEDs parallel an die Pins anschalten, genauer gesagt: antiparallel und so mit einer geschickten Ansteuerung immer die gewünschte LED leuchten lassen. Bei 2 Pins, kann man maximal 2 LEDs steuern, bei 3 Pins sind es schon 6 LEDs und bei 4 Pins gar 12 LEDs…

So sieht das ganze Konstrukt aus. Als Controller werkelt ein Microchip ATTiny10 (früher ATMEL), ein Winzling im SOT-23 Gehäuse mit 3 nutzbaren I/O-Pins.

Die Bauteilewerte sind:
C1: Keramik, Tantal oder Polymer, 10µF 6.3V (1206)
C2: Keramik 100nF/16V (0402)
R1: 10kOhm (0402)
R2…R4: jeweils 150 Ohm bis 330 Ohm, je nach LED und Spannung (0402)

Die Schaltung funktioniert von 2V bis 5.5V, wobei bei niedrigen Spannungen nur rote LEDs in Frage kommen, die eine Flussspannung um 1.6V haben. Blaue und weiße LEDs lassen sich erst ab etwa 4V Eingangsspannung verwenden. Es sollten immer gleiche LEDs mit der selben Farbe für einen Aufbau verwendet werden, da es sonst prinzipbedingt Leuchtunterschiede gibt.

Der Controller ist, aufgrund seines kleinen Speichers von nur 1kByte, in Assembler programmiert. Über das jeweils in den Controller geladene Programm kann man mit den LEDs, je nach Anwendung , die lustigsten Blinkeffekte ausgeben. Hierbei kann man entscheiden, ob das Ganze wie in meinem Fall sehr lange aus einer Batterie blinken soll und somit sehr wenig Strom verbrauchen soll, oder ob es als Effekt in einer Umgebung arbeitet, wo die Spannung ohnehin immer zur Verfügung steht. Der Kreativität sind nur duch den kleinen Speicher Grenzen gesetzt.

Die Platine ist 14.7 x 13.5mm klein, also recht kompakt. Das Auflöten der Teile erfordert eine spitze Pinzette, wahrscheinlich eine Sehhilfe und zwei ruhige Hände ;-). Die Platinen kann man recht günstig bei Online-Anbietern bestellen, ich habe mit AISLER gute Erfahrungen gemacht, was Qualität, Schnelligkeit und Preis angeht.

EAGLE Dateien:
CharlieBlinker_T10.zip

Programm zum Aufspielen mit Microchip Studio 7:
Funkel01_Test1.zip

Für das Programmieren des Controllers ist ein Programmer mit TPI-Programmierschnittstelle notwendig (ATMEL ICE, STK600, AVR-ISP mkII, AVR-Dragon) oder ein entsprechend programmierter Arduino. Um den ATTiny10 programmieren zu können, muss die Betriebsspannung 4.5…5.0V betragen.

Hier ein kurzes Video von der Funktion oben verlinkten Programms, als Signalgeber mit minimalem Stromverbrauch. Der Controller schläft 4 Sekunden, rotiert die LEDs durch und schläft wieder. Im Schlaf mit eingeschaltetem Watchdog verbraucht der Zwerg nicht einmal 10µA.

Das erste Programm, Stromaufnahme gemittelt nur etwa 200µA

Lauflichtblinker
Hier ein Programm für einen Blinker wie in einem modernen Auto. Dieses Progamm ist kein Stromsparprogramm, der Controller ist dauerhaft aktiv. Alle LEDs können quasi zeitgleich leuchten.

Funkel_01_Strip_Light_Flasher


Zufallsgenerator
Hier ein Programm, bei dem jede LED durch einen Zufallsgenerator angesteuert wird. Wie auf der alten Enterprise im Maschinenraum ;-).

Funkel_01_Randomizer


Spannungsgesteuerter Bargraph
Dieses Programm gibt die Höhe der angeschlossenen Betriebsspannung als Leuchtbalken aus. Im Programmkopf können Parameter für die ADC-Startspannung und die Schrittweite des jeweils höheren Leuchtpunktes eingestellt werden. Als Anwendung kommen beispielsweise ein Schnelltester für LiPo- oder LiIon-Akkus oder ein Spannungswächter in Frage. In diesem Fall sollten rote LEDs verbaut werden, da sie die niedrigste Flussspannung haben, die in diesem Beispiel für die Messung der Betriebsspannung in einer Dunkelpause als Referenz genutzt wird. Somit werden keine zusätzlichen Bauteile benötigt.

Funkel_01_VC-Bargraph


Eieruhr
Dieses Programm enthält einen Countdow-Zähler für 6 Minuten. Die aktuelle Zeit wird durch die Länge des Leuchtbands angezeigt, die obere Minute blinkt. Jede Minute wird das Leuchtband um eine LED kürzer. Ist die Zeit abgelaufen, wird ein schnelle „Knight-Rider-Leuchteffekt“ für 10 Sekunden angezeigt, danach geht der Controller in den Tiefschlaf mit unter 0.1µA Stromaufnahme. Daher kann die Schaltung dauerhaft an der Batterie verbleiben. Die Zeit kann mit einem Taster zwischen GND und Reset-Pin (RST Lötauge auf der Platine) neu gestartet werden. Im Programmkopf kann ein Parameter eingegeben werden (Standardwert: 199), um die Ganggenauigkeit der Sekunde einzustellen.

Funkel_01_Countdown-Timer


Weitere Programme mit anderen Lichteffekten und Funktionen werden folgen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.