Moin,
ich habe letztens meine Küche etwas umgebaut und dabei entschieden, die
Leuchtstoffröhre über der Spüle gegen einen LED-Streifen zu tauschen.
Aus naheliegenden Gründen wollte ich dort keinen mechanischen Schalter
haben. Zuerst habe ich mit einem Lichtsensor (Reflexlichtschranken-
Prinzip) geliebäugelt. Aber das ist schwer zuverlässig zu bekommen.
Dann fiel mir ein, daß es ja diese famosen Qtouch, TouchSense etc. Libs
gibt. Nach etwas Experimentieren bin ich auf Tims Implementierung von
QtouchADC im Beitrag "TinyTouchLib - Touchbutton library für Attiny" gestoßen.
Der Prototyp auf dem Steckbrett funktionierte auf Anhieb. Und weil noch
so viel Platz im Flash war, habe ich statt eines einfachen Schalters
gleich einen Dimmer reinprogrammiert.
Die Funktion ist ähnlich wie man es von den althergebrachten
Touchdimmern a'la SLB0586 kennt: kurzes Berühren des Sensors schaltet
das Licht an bzw. aus. Langes Berühren startet den Dimmvorgang.
Per #define in main.c sind verschiedene Dimm-Modi wählbar:
1 | #define TURN_ON_MAX_BRIGHT 1
|
Wenn das auf 1 gesetzt ist, wird beim Einschalten des Lichts die
maximale Helligkeit gesetzt und die initiale Dimmrichtung ist abwärts
(dunkler). Ein Wert von 0 bedeutet, daß Helligkeit und Dimmrichtung vom
Zeitpunkt des Ausschaltens benutzt werden.
1 | #define AUTO_REVERSE_DIR 0
|
Ein Wert von 1 bedeutet, daß beim Erreichen der maximalen bzw.
minimalen Helligkeit die Dimmrichtung automatisch umgekehrt wird. Wenn
man das aktiviert, sollte man den Touch-Timeout in TinyTouchLib.h
deaktivieren. Beim Wert 0 bleibt der Dimmer in der jeweiligen
Endstellung einfach stehen.
1 | #define REVERSE_DIR_ON_RELEASE 1
|
Wenn das angeschaltet ist, dann wird die Dimmrichtung nach jedem
Dimmvorgang umgekehrt. Das ist besonders hilfreich bei deaktiviertem
Auto-Reverse.
Schließlich kann man in DIMM_START_CYCLES und DIMM_REPEAT_CYCLES noch
vorgeben, nach welcher Zeit das Dimmen startet und wie schnell es dann
voran geht.
Die Schaltung ist der Zuverlässigkeit halber auf einer Platine unter-
gebracht und paßt problemlos in das recht formschöne Gehäuse Nr. 2044
von Strapubox (z.B. bei Reichelt erhältlich). Die Sensorfläche ist in
das Oberteil eingeklebt und wird über eine auf der Platine aufgelötete
Spiralfeder kontaktiert. Ein- und Ausgang wollte ich ursprünglich direkt
auf die Platine löten, habe mich dann allerdings doch für einen
Steckverbinder für den Ausgang entscheiden.
An dieser Stelle noch ein herzliches "Dankeschön" an Tim für
TinyTouchlib. Ich hoffe jemand kann mit meinem Projekt etwas anfangen.