home     Inhaltsverzeichnis
erste Version am 07.01.2018
letzte Änderung am 18.01.2018

LED-Streifen als Nachtlicht - Seite 5


Bau weiterer Nachtlichter

Gestern Abend habe ich die nächsten zwei Meter LED-Streifen in die Alu-Leiste für die Kellertreppe geklebt. Damit hatte ich nun einen Meter von dem ehemals fünf Meter langen LED-Streifen übrig. Weil das zufällig genau die richtige Länge war, um ihn unter dem Fernseher im Wohnzimmer anzubringen, ist er dort direkt zum Einsatz gekommen. Temporär....also nur provisorisch befestigt.
Final könnte ich mir vorstellen, ihn dort dauerhaft anzubringen und vielleicht über eine fertig zu kaufende Fernbedienung anzusteuern. Gruseliger Weise hatte ich nämlich gerade heute Morgen die Werbe-EMail von Amazon dafür im Postfach.... Anderseits würde das bedeuten, eine weitere Fernbedienung rumliegen zu haben. Das ultimative K.O.-Kriterium dagegen ist jedoch, dass die Fernbedienung offenbar mit Knopfzellen betrieben wird. Solche Sondermüll-produzierenden Devices gibts bei mir nicht.
Da baue ich die Steuerung lieber selbst und nutze einen TSOP31240, um auf Tasten der TV-Fernbedienung reagieren zu können. Das ist ja kein Hexenwerk.
Oder vollautomatisch....will heißen: nur abhängig von der Helligkeit im Wohnzimmer.

Aber vorher kommt das zweite und dritte Nachtlicht dran. Einmal für die Kellertreppe und einmal für den Flur im Keller.
Zumindest bei letzterem braucht es keine Dimm-Funktion. Also sollte es dafür reichen, vom Bewegungsmelder direkt das Gate des MOSFET anzusteuern und die Dauer der Nachlaufzeit am linken Poti des Bewegungsmelders einzustellen.

Jetzt habe ich schon mal eine Aufputz-Schuko-Steckdose an einer strategisch günstigen Position im Keller verbaut. Da kommt ein 12V-Steckernetzteil rein und dann gehts von da aus mit 0,75mm2-Lautsprecherkabeln zu den zwei LED-Streifen.


das erste Nachtlicht ist produktiv

Gerade habe ich das Nachtlicht an der Treppe zwischen Erdgeschoss und erster Etage final montiert. Das LoggingDevice ist abgenommen und in der Firmware deaktiviert. Mit der Version 1.4 läuft es jetzt zufriedenstellend.
Bei geschlossenem Rollo und zugezogenem Vorhang kann man auch am Tag ein Foto vom Nachtlicht in action machen (Bild anklicken für volle Größe):
das Treppenhaus mit aktiviertem
        Nachtlicht


das zweite Nachtlicht

Die Herstellung der Lochrasterplatte für das zweite Nachtlicht ging flott von der Hand, die Bearbeitung des Gehäuses für die Sensor-Einheit noch viel flotter (das Plastik dieser Gehäuse lässt sich wirklich schön bearbeiten). Dafür habe ich diesmal jedoch mindestens eine gefühlte Stunde mit der Positionierung und Empfindlichkeits-Justage des Sensors zugebracht. Der Grund dafür ist unsere quasi allzeit offene Wohnzimmer-Tür. Durch die offene Tür liegt etwa ein Drittel der Sofa-Sitzfläche im potentiellen Erfassungsbereich des Sensors. Und natürlich soll das Licht nicht bei jeder Bewegung auf dem Sofa angehen. Andererseits muss es spätestens dann angehen, wenn man die oberste Treppenstufe betritt.
Das Ergebnis ist nun, dass das Sensor-Gehäuse ca. 50cm über dem Handlauf angebracht werden muss. Folglich kann ich den Fototransistor ebenso gut direkt auf die Lochrasterplatte löten. Dadurch werden seine Werte diesmal also nicht so stark von dem PWM-Wert abhängen, mit dem der LED-Streifen angesteuert wird. Mal schauen, wie meine derzeitige Firmware damit klarkommt....

Weil ich fast den Einmess-Taster vergessen hätte, hier nun doch noch der (um den Taster) minimal erweiterte Schaltplan:
finaler Schaltplan für das
        Nachtlicht mit Bewegungsmelder

So sieht die zweite Lochrasterplatte und das Sensor-Gehäuse aus (das Logging-Device hängt auch gerade dran):
das zweite Nachtlicht vor der
        Installation am Handlauf der Treppe

Irgendwie passt die Betriebsart für die Kellertreppe nicht. Für die andere Treppe ist es perfekt - aber bei der Kellertreppe bringt es keinen Vorteil, die LEDs bei wenig Fremdlicht schwächer anzusteuern. Daher habe ich noch eine Funktion runWithLight2() gebaut, die die LEDs während der gesamten Einschaltphase ganz stumpf mit dem PWM-Wert 255 fährt. Somit wird hier vom ATmega328 jetzt lediglich die aktuelle Umgebungs-Helligkeit gegen den Schwellwert (75) geprüft und daraufhin für mindestens 30 Sekunden eingeschaltet oder eben nicht. Naja....und das runter-dimmen vor dem Abschalten braucht den ATmega328 ebenfalls.

Mit der Installation dieses zweiten Nachtlichts sollte nun der Zustand erreicht sein, dass die bisherige (manuell zu schaltende) Treppenhaus-Beleuchtung überflüssig ist - und auch nicht mehr stundenlang sinnlos Strom verbraucht, weil Irgendwem das Ausschalten als zu profan, mühsam oder uncool erschien.

Für das dritte Nachtlicht werde ich mal probieren, komplett auf den ATmega328 zu verzichten - also nur den Bewegungsmelder und den MOSFET zu nutzen.


das dritte Nachtlicht

Den Mini-Schaltplan für diese abgestrippte Version habe ich praktischerweise schon fertig. Hier war es. Also dieser:
Nachtlicht ohne ATmega328
Es braucht beim Anschluss Schaltung lediglich noch eine dritte Leitung hoch zu +12V und dann kann dort statt der Schaltung direkt der Bewegungsmelder angeklemmt werden.

Gestern Abend habe ich die LED-Leiste an die Wand im Flur des Kellers geschraubt. Der MOSFET ist auf einer kleinen Leiterplatte im Kabelkanal untergebracht und die Position des Bewegungsmelders ist so gewählt, dass Jemand, der mein Büro verlässt, zunächst vom Treppenlicht-Sensor erfasst wird und erst kurz danach vom Keller-Flur-Licht.
Der Grund dafür ist der Helligkeits-Sensor vom Treppen-Licht. Würde nämlich zuerst das Licht im Keller-Flur eingeschaltet werden, wäre es für das Treppenlicht bereits hell genug. Das hätte zur Folge, dass das Treppenlicht nicht eingeschaltet würde. Weil die Treppe aber auf halber Höhe einen 180°-Schwenk macht, bliebe die obere Hälfte der Treppe im Dunkeln.

Über dieses Problem hatte ich tatsächlich schon frühzeitig nachgedacht, bin aber zu keiner brauchbaren Lösung gekommen. Das Einzige, was mir dazu eingefallen ist, war die Funk-Vernetzung all der Nachtlichter, deren Einschalt-Zustand den Helligkeits-Sensor eines anderen Nachtlichts beeinflusst. Programm-technisch wäre das zwar sicher durchaus spannend - würde aber bedingen, dass alle Nachtlichter durchgängig empfangsbereit sind, sich folglich nicht in den Tiefschlaf versetzen könnten und deswegen konstant Strom verbrauchen würden.

So gesehen ist es ganz praktisch, dass das Treppenlicht zwar auf Helligkeit reagiert, seine Helligkeit aber nicht mehr verändert, wenn es sich erst einmal eingeschaltet hat. Das Keller-Flur-Licht wird Helligkeits-unabhängig bei jeder Bewegungs-Erkennung eingeschaltet. Als Folge werden nun beide Lichter eingeschaltet, wenn der Treppenlicht-Sensor eine Bewegung vor dem Flur-Licht-Sensor erfasst ... und verhalten sich damit also genau so, wie es gedacht war.
So sieht der Blick aus meiner Bürotür aus:
Foto der zwei LED-Streifen im Keller
...und natürlich ist weder der Türrahmen noch der LED-Streifen wirklich so krumm, wie es auf dem Bild aussieht. Das muss am Objektiv der Kamera bzw. an der Perspektive liegen. Der Handlauf an der Treppe ist hingegen tatsächlich so krumm, wie es auf dem Bild aussieht.


gegenseitige Beeinflussung

Ich hätte gerne noch ein Nachtlicht im Flur vom ersten Stockwerk. Weiterhin wünscht sich mein Stammhalter für die Treppe zu seinem Saustall auch noch ein Nachtlicht. Beide Nachtlichter bräuchten die selbe Helligkeits-Anpassung, wie beim ersten Nachtlicht. Alle drei Nachtlichter werden im eingeschalteten Zustand die gemessene Helligkeit der jeweils anderen beiden Nachtlichter beeinflussen.
Damit ist zu erwarten, dass das Gesamtkonstrukt aus den drei Nachtlichtern (im besten Fall) pulsieren wird. Vielleicht wird es sich auch bis zur maximalen Helligkeit aufschaukeln oder bis zur minimalen Helligkeit runterschaukeln.

Eine Lösung für dieses Problem könnte sein (zumindest an diesem speziellen Installationsort), alle drei LED-Streifen von einem ATmega328 ansteuern zu lassen. Und zwar alle über den selben Pin und folglich mit dem selben PWM-Wert.
Der Anschluss von drei Bewegungsmeldern wäre kein Problem. Das liefe über eine einfache ODER-Verknüpfung. Mit einem eigenen Pin pro Bewegungsmelder wird es nix, weil der ATmega328 nur zwei Pins hat, die einen Interrupt auslösen können (zwecks Erweckung aus dem Tiefschlaf).
Mehrere Helligkeits-Sensoren sind da schon trickiger. Ein einzelner Helligkeits-Sensor wird dort jedoch kaum reichen. Vielleicht könnte sich der ATmega328 beim Aufwachen für einen Sensor entscheiden und jeweils dessen Werte verwenden, der die geringste Helligkeit meldet. Oder die höchste? Auf jeden Fall braucht es pro Helligkeits-Sensor ein Array mit der Relation "PWM-Wert zu Helligkeit". Das EEPROM fasst 1024 Byte. Mit Prüfsumme belegt ein Sensor bereits 514 Byte. Also muss die Speicherung etwas geschickter erfolgen. Die Werte haben 10 Bit, derzeit belegt jeder Wert 16 Bit. Das einzelne Array braucht also 256*10=2560 Bit=320 Byte. Mit zwei Byte Prüfsumme 322 Byte. 1024/322=3,18. Damit würden die Daten für drei Helligkeits-Sensoren ins EEPROM passen und es wären noch 1024-3*322=58 Byte übrig. Die Werte könnten in Vierer-Gruppen ins EEPROM geschrieben werden: 4 Werte * 10 Bit = 40 Bit = 5 Byte.

Zum Netzteil: zwei Meter LED-Streifen ziehen 1,5A. Es gilt P=U*I. Somit 1,5A*12V=16W bzw. 8W pro Meter. Das Netzteil ist mit 36W angegeben. 36W/8W=4,5 Meter. Also liefert das Netzteil nicht genug Strom für fünf Meter LED-Streifen.
Vielleicht wäre denkbar, zwei PWM-Pins zu nutzen und einen Satz LEDs bei HIGH-Pegel einzuschalten und einen anderen Satz bei LOW-Pegel. Der LOW-Pin wäre mit dem komplementären PWM-Wert anzusteuern. Dadurch sollte das Netzteil gleichmäßiger belastet werden.
Mal testen....folgendes Mini-Sketch:
void setup() {
  unsigned char val=100;
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  analogWrite(5, val);
  analogWrite(6, val^0xff);
}
void loop() {}
liefert am Ozzi (oben/blau=Pin5, unten/rot=Pin6):
zwei versetzte PWM-Signale
Oben ist das Signal für vier Kästchen (bzw. 0,4ms) auf HIGH, unten zeitversetzt für vier Kästchen auf LOW. Damit würden die LED-Streifen zwar gleich hell leuchten, aber zu unterschiedlichen Zeiten Strom ziehen.
Bei PWM-Werten oberhalb von 127 würden sich die Einschaltzeiten natürlich überschneiden.
Also sollte ich vielleicht doch lieber einfach ein stärkeres Netzteil nehmen. Für das derzeitige Netzteil findet sich problemlos ein anderer Einsatzort.
Schmerzhafter ist da schon, dass die Lochrasterplatte des ersten Nachtlichts wahrscheinlich zu klein für die zusätzlichen Anschlüsse ist. Gebraucht werden zwei weitere Bewegungsmelder samt einer ODER-Schaltung (mit drei parallelgeschalteten NPN-Transistoren), ein weiterer Fototransistor und ggf. ein weiterer PWM-Ausgang samt MOSFET (mit vorgeschaltetem NPN-Transistor zur Invertierung oder den MOSFET als P-Kanal statt N-Kanal).