Änderungen
Aus Hackerspace Ffm
/* Software */
Die Software wurde mit dem Arduino Framework geschrieben.
Da die Hardware keinen RC-Tiefpass vorsieht muss die Messung des LED-Stroms mit der PWM synchronisiert werden, d.h. die Messung des LED-Stroms muss während des High-Teils des PWM Zyklus durchgeführt werden. Damit dies problemlos funktioniert wird der Timer1 so eingestellt, dass sich eine PWM-Frequenz von ~245Hz ergibt und somit bereits bei vergleichsweise niedrigen Duty Cycles ausreichend Zeit für die Strommessung übrig bleibt. Die Messung des Stroms erfolgt im Overflow-Interrupt des Timer1. Ab einem Duty-Cycle von ca. 20/255 ergeben sich stabile und korrekte Messwerte. Der gemessene Wert kann nun in den momentanen Maximalstrom der LED umgerechnet werden und über den vorgegebenen Soll-Strom in den neuen Duty-Cycle umgerechnet werden. Der LED Strom wird in etwa im Internvall von alle 4 Sekunden gemessen. Nach jeder Messung wird der PWM Duty cycle neu berechnet. Ebenso wird im gleichen Intervall auch Anschließend erfolgt die Messung der Batteriespannung gemessen. Bei unterschreiten eines Schwellwerts wird die Lampe abgeschaltet. ''('''Hinweis''': Der Teil des Codes der sich mit der Berechnung des PWM Duty Cycles sowie der Spannungsüberwachung beschäftigt verwendet derzeit noch Fließkommazahlen (double). Dies ist ineffizient und führt zu größeren Binaries. Ich werde diesen Teil des Codes in der Zukunft noch auf Integer umschreiben, danach sollte auch ein Tiny25 funktionieren...)''
Beim Taster wird zwischen kurzen (50-500ms) und langen (>500ms) Tastendrücken unterschieden.
''TODO: Sketch hochladen''
== Aufbau ==
''Bilder vom Aufbau folgen...''