Fahrrad-Standlicht-Tuning mit PIC 12C672

Steady-light made by Asista, closedVor ein paar Jahren habe ich für die Fahrräder meiner beiden Kinder ein paar Standlicht-Batteriegehäuse der Firma Asista gekauft, und eines dann mit einer Computersteuerung versehen. Davon handelt der nachfolgende Bericht.

Die mit vier Mignon-Primärzellen oder -Akkus bestückbaren Gehäuse kosteten damals (ca. '96) etwa DM 15, 7 EUR), das ist für eine solche Funktion vergleichsweise billig.  Allerdings handelt es sich auch nicht um viel mehr als eine Primitivschaltung auf einer 3x5cm-Platine in einer runden Schachtel von ca. 9 cm Durchmesser. Dieses Gehäuse ist dafür vorgesehen, unterhalb eines Seitenläufers an derselben Befestigungsschraube montiert zu werden. Die Befestigung liefert den Massekontakt, ein Kabel geht zum Dynamo, und das vorher am Dynamo angebrachte Kabel wird mit einer einfachen Rändelschraube an der Gehäuserückseite (im Bild nicht sichtbar) befestigt.

Die Elektronik schaltet die Leuchtmittel (Frontscheinwerfer parallel zu Rücklicht) zwischen Dynamo und dem Batteriepack um. So lange der Dynamo Spannung liefert, wird diese zu den Lampen durchgeleitet. Wenn der Dynamo steht, werden die Batterien für etwa 10 bis 15 Sekunden an die Lampen angelegt. Dies ist zu kurz für einen Ampelstop, aber schon eine geringfügige Bewegung triggert eine weitere gleichlange Leuchtphase.

Vorteile: das Teil ist billig, sehr einfach zu montieren (keine Kabelneu- oder Umverlegung nötig), es verwendet einen weit verbreiteten Batterie- resp. Akkutyp, und es bedarf keiner zusätzlichen Schalter, die montiert werden müssen und eine Fehlerquelle darstellen. Nachteile (abgesehen vom ziemlich primitiven Design von Gehäuse und Anschlüssen): das Zeitverhalten ist nicht einstellbar und - problematischer - es liefert keine Unterstützung bei langsamer Fahrt oder Teilausfall des Dynamos, also in den Situationen, in denen der Dynamo zu wenig Strom liefert.

Mein Sohn beschwerte sich nun, daß diese Standlichtanlage regelrecht Batterien "fräße". In einem Fall waren neue Zellen in weniger als einer Woche leer. Statt nun einen Ersatz zu kaufen, entschied ich mich dafür, dies als eine Gelegenheit zu nutzen, meine eigene Version eines Umschalters zwischen Dynamo und Zellen zu entwickeln. Eine Rolle spielte dabei auch, daß die Teile kaum noch zu bekommen waren, als ich ein zweites für meinen anderen Sohn kaufen wollte, als der anfing, zur Schule zu radeln. Asista schien dieses Produkt nicht mehr herzustellen resp. zu vertreiben, jedenfalls war es im Handel nicht mehr zu finden, also hatte ich ohnehin keine Wahl.

Die Originalplatine von Asista nutzt einen Kondensator, um den Wechselstrom vom Generator zur Lampe zu transportieren. Mein Design ist etwas konservativer: ich benutze ein Reedrelais (siehe aber weiter unten) und schalte damit entweder den Dynamo oder die Zellen auf die Lampen.  Die Aistaplatine misst 2,5*5 cm und steckt in einer Halterung am Boden des Gehäuses, unter den Batterien. Da ich schon ein kompakteres Leiterplattendesign für eine bei anderer Gelegenheit entwickelte, noch unfertige Standlichtschaltung hatte, war es lediglich nötig,  einen Zentimeter leere Platinenfläche anzustückeln, um eine genau passende Platine zu bekommen..

Asista Standlicht, geöffnetGehäuse, geöffnet. Von links nach rechts sehen wir: den Bedientaster, einen kleinen Piezolautsprecher, meine Platine, und, außerhalb des Gehäuse, die Originalplatine.

Die Originalplatine verbindet den Dynamo über einen 1000µF/12V-Kondensator (polarisiert!) mit der Lampe, im Bild der blaue Elko ganz rechts. Darüberhinaus enthält sie zwei weitere Elkos, fünf Transistoren, zwei keramische Kondensatoren, vier Dioden und sechs Widerstände.
 


PCB of my circuit, already installedMeine Schaltung basiert auf einem PIC 12C672-Microcontroller der Firma Microchip (dies ist ist dies ein kompletter kleiner Computer in einem 8-Pin-Dual-Inline-Gehäuse aus Plastik), einem 5V-Reedrelais in einem DIL-Gehäuse, zwei Kondensatoren, zwei Widerständen und einer optionalen Diode zum Schutz gegen Verpolung der Batterien.


piezo buzzer and switch, on the rightDie Implementation der originalen Funktion (Umschalten in Abhängigkeit vom Dynamo) verbraucht drei der insgesamt sechs verfügbaren I/O-Pins. Deswegen habe ich einen weiteren mit der Schalterseite des Relais verbunden, als eine Art einfacher Batteriekontrolle, einer ist an einen Piezolautsprecher angeschlossen, einer an einen Taster (beide auf der rechten Seite im Bild links).



Schaltplan Standlicht

schaltung.gif (13914 Byte)

Anmerkungen

Da die Treiberleistung eines einzelnen PIC-Pins nicht ausreicht, war es nötig, die Relaisspule mit zwei Outputpins zu treiben.. Ein Wechsler benötig etwa doppelt so viel Strom wie ein einfacher Schalter..

JP4 (in der Schaltung mit LED beschriftet) dient abweichend vom ursprünglichen Konzept als Outputpin für den Piezolautsprecher zur akustischen statt optischen Rückmeldung. Ein Widerstand ist hier nicht nötig, er wird durch eine simple Drahtbrücke ersetzt.

D2 schließt bei Verpolung kurz und schützt so den - im Vergleich zu Batterien - teuren Prozessor, ohne einen Spannungsabfall zu verursachen. Im Betrieb nicht unbedingt nötig, aber beim Testen praktisch.

Der Konnector JP1 ist auf der tatsächlichen Platine weggelassen, wie im Original löte ich die Kabel einfach auf ziemlich groß gehaltene Kupferflächen der Platinen. Es ist im Gehäuse einfach nicht genug Platz für Pfostenstecker normaler Bauart.

Aus demselben Grund habe ich das Relais ohne Sockel eingelötet. Auch ohne Sockel war nur noch ca. ein halber Millimeter Spielraum zwischen der Unterseite der Batterien und der Oberseite des Relais. Dies ist etwas unglücklich, da diese Relais nicht billig sind.

JP2, der Anschluß für den Taster, kommt ohne Pull-Up-Widerstand aus. Würde man die Funktionalität mit dem billigeren, pinkompatiblen 12C509 realisieren wollen, wäre es nötig, einen solchen zu verwenden. Der 12c672, den ich verwendet habe, ist zwar teurer, aber er hat interne, zuschaltbare Pull-Up-Widerstände. Davon abgesehen unterstützt der C-Compiler, den ich angeschaft habe, nur den 14-bit-Core des neueren Prozessors.

Der Spannungsteiler plus Zenerdiode auf der linken Seite der Schaltung ist Overkill - ein 20k-Widerstand tut es auch.

Die Platine

board.gif (26024 Byte)

 


Software

Die erste Version der Software dupliziert i.W. die Orignalfunktion. Eine Beschreibung eines besseren Programms (und ein Bericht über den "Feldtest") folgt im Januar.

Soweit meine Beschreibung von Ende 1998.


Modifikationen und Erfahrungsbericht, April 2002

Nachdem ich mit den an meinem Rad montierten Gerät einige Testfahrten unternommen hatte, mußte ich leider feststellen, daß der Kontaktdruck des Reedrelais nicht ausreicht, um unter Fahrradbedingungen einen sicheren Kontakt zu gewährleisten. Dies führt dazu, daß nach einigen zehn Minuten mit Licht die Relaiskontakte festgeschmort sind oder gar keinen Kontakt mehr geben. Nachdem ich so die zwei vorhandenen Reed-Relais zerstört hatte, habe ich ein vorhandenes, billiges kastenförmies 6V-Relais normaler Bauart mit Heißkleber in den noch freien Raum unterhalb des Batteriepacks eingeklebt, und über einen fliegend verkabelten Transistor mit dem Ansteuerpin verbunden. In dieser Version funktioniert das bis heute zuverlässig.

Einen weiteren Schwachpunkt stellten die nicht sonderlich korrosionsbeständigen Batteriekontakte dar. Unregelmäßige Versorgung durch Kontaktprobleme, die bei der primitiven Originalschaltung nur durch gelegentliches Flackern auffallen, führen bei der Prozessorlösung zu einem Prozessorreset oder zu Fehlfunktionen. Nach einigen erfolglosen Versuchen, den Kontaktdruck zu erhöhen, habe ich vier NiMH-Zellen mit Lötfahnen fest eingelötet und gegenüber dem Taster eine Ladebuchse angebracht. Seither läuft der Prozessor im Standby-Modus monatelang durch, nur durch die Selbstentladung der Zellen limitiert.

 

Funktionen der Firmware

Einknopfbedienung

Sämtliche Funktionen werden über einen einzigen Taster durch kurze und lange Tastendrücke gesteuert, dabei erfolgt eine akustischen Rückmeldung über den Piezolautsprecher. 

Betriebszustände

Nach einer gewissen Zeit geht das Standlicht in einen Standby-Modus, das Licht ist ausgeschaltet, der Prozessor verbraucht weniger Strom als die Selbstentladung der Zellen ausmacht. Drücken des Tasters weckt den Prozessor auf, aber erst eine bestimmte Folge von Tastendrücken entsperrt das System und schaltet das Standlicht ein.

Im aktiven Betrieb kann das Standlicht per Tastendruck zwischen zwei Betriebsarten umgeschaltet werden: Standlichtbetrieb und Dauerlicht.

Standlicht heißt: das Licht geht für ein paar Minuten an, wenn der Dynamo nicht mehr genügend Strom liefert, aber sofort wieder aus, wenn er es tut. Kurz vor Ablauf der Standlichtleuchtdauer wird das Licht zur Vorwarnung für einen Sekundenbruchteil dunkel getastet. Einige Minuten nach Ablauf des Standlichts geht die Anlage in den gesperrten Standyby-Modus über.

Dauerlicht heißt: das Licht leuchtet eine durch eine Programmkonstante vorgegebene Zeit lang (vorgesehene Erweiterung: Einstellbarkeit der Leuchtdauer), derzeit 10 Minuten. Auch hier erfolgt vor Ablauf eine Vorwarnung, aber der Dynamo hat keinen Einfluß. 

Daneben gibt es noch einen Warnblinkmodus, in der Licht im Sekundentakt ein- und ausgeschaltet wird.

Da das ganze Betriebsprogramm bei weitem nicht lang genug ist, die 2 K-Worte des 12C672 zu füllen, habe ich mir den Spaß gemacht, als Quittungston für das Einschalten den charakteristischen Pfiff des Startrek-Kommunikators über den Piezo-Lautsprecher auszugeben.

Aktueller Stand

Da die meisten Probleme mechanischer Art waren, gab es wenig Anlaß, nach '98 noch an der Software weiterzuarbeiten; die meisten angedachten Verbesserungen hätten ein Redesign der Hardware erfordert.

Ingesamt haben sich die Idee und die Ausführung bewährt.


Copyright © 1998, 2002  by Wolfgang Strobl, Alle Rechte vorbehalten

Originalartikel (english), zur Fahrradseite.