LED Lauflicht mit Bewegungserkennung.

 

Die Idee war es, das Treppenlicht zu automatisieren, jedoch nicht stumpf die Deckenlampe zu schalten. Es sollte irgend wie was Anderes her.

(
Es gibt ein Update zum Projekt, siehe:
Pingback: LED Treppenlicht – smoother fade in and fade out
)

Wie in dem Video zu sehen, schaltet das Licht je nach dem von wo man kommt in die richtige Richtung, möchte ich nach oben, so läuft das Licht nach oben, von oben kommend dann wieder nach unten.

Damit die Treppe nicht „dauernd“ schaltet bei Bewegung, wurde zusätzlich noch ein Lichtsensor zu dem Bewegungsmelder verbaut.

Was benötige ich?:

1 x Arduino
2 x HC-SR501 Bewegungsmelder
1 x Lichtsensor 
5m ws2812b ( oder die länge die benötigt wird )
5V Netzteil
Jumperkabel
Die länge an Kabel die benötigt werden
Lötkolben
Kondensator 1000uF 25V
Schrumpfschlauch 
Werkzeug

Wir öffnen nun die Arduino IDE und laden folgenden Code:
Die Bibliothek : Adafruit_NeoPixel.h wird benötigt!

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

#define PIN_links 6 //links
#define PIN_rechts 7 // rechts
#define NUMPIXELS 120
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN_links, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixel = Adafruit_NeoPixel(NUMPIXELS, PIN_rechts, NEO_GRB + NEO_KHZ800);
int delayval = 20;

const int bewegung_oben = 8;
const int bewegung_unten = 9;
const int lichtsensor = 10;
int bewegungsstatus_oben = 0; 
int bewegungsstatus_unten = 0;
int lichtsensor_status = 0;
int i = 0;


void setup()
{
  pinMode(bewegung_oben, INPUT);
  pinMode(bewegung_unten, INPUT);
  pinMode(lichtsensor, INPUT);
  Serial.begin(9600);
  #if defined (__AVR_ATtiny85__)
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
  #endif

  pixels.begin();
  pixel.begin();
  pixel.show();
  pixels.show();
}

void loop() //Der Loop-Teil beginnt
{ //Mit dieser Klammer wird der Loop-Teil geöffnet.
  bewegungsstatus_oben = digitalRead(bewegung_oben);
  bewegungsstatus_unten = digitalRead(bewegung_unten);
  lichtsensor_status = digitalRead(lichtsensor);
  
  if (bewegungsstatus_oben == HIGH and bewegungsstatus_unten == LOW and lichtsensor_status == HIGH)
  {
    // hier die leds schalten für beide Seiten (oben ) 
    for(int i=0;i<NUMPIXELS;i++){
    pixel.setPixelColor(i, pixel.Color(0,0,145)); //blau
    pixels.setPixelColor(i, pixels.Color(0,0,145)); // Beide LED Streifen aktivieren
    pixel.show(); 
    pixels.show();
    delay(delayval); // 
    }
    delay(20000);
    for(int i=0;i<NUMPIXELS;i++){
    pixel.setPixelColor(i, pixel.Color(0,0,0)); // LED ausschalten
    pixels.setPixelColor(i, pixels.Color(0,0,0));
    pixel.show();
    pixels.show();
    delay(5);
    }
  }
  if (bewegungsstatus_unten == HIGH and bewegungsstatus_oben == LOW and lichtsensor_status == HIGH)
  {
    // LED Schalten von unten nach oben.
    for(int i = 119; i<NUMPIXELS;i--){

    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
    pixels.setPixelColor(i, pixels.Color(0,0,145)); // Farbe definieren ( RGB )
    pixel.setPixelColor(i, pixel.Color(0,0,145));
    pixels.show();
    pixel.show(); 
    Serial.print(i);
    delay(delayval);
    if(i==-1) {
    delay(20000);
    for(int g=119;g<NUMPIXELS;g--){
    pixels.setPixelColor(g, pixels.Color(0,0,0));
    pixel.setPixelColor(g, pixel.Color(0,0,0));
    pixels.show();
    pixel.show();
    delay(5);
    Serial.print(i); 
    if(g==0) {
    break;
    }
    }
    }
    if(i==-1){
      break;
    }
    }
  }
} //Mit dieser letzten Klammer wird der Loop-Teil geschlossen.

 

Nachtrag:

Hier als UPDATE der Schaltplan:

Der Code ist so ziemlich simple aufgebaut und leicht zu verstehen:

Nachtrag2 24.02.2020:

Da dieser Artikel sehr beliebt ist und so einige Fragen per E-Mail kommen, möchte ich den Arduino Sketch ein wenig mehr Erklären:

#define NUMPIXELS 120
Gibt die Gesamtanzahl der LED pro Seite an. 

int delayval = 20;
Die Variable delayval legt in Millisekunden fest, wann die nächste LED geschaltet wird.
Ein höherer Wert verzögert, einer kleinerer Wert verkürzt die „Schaltdauer“

pixel.setBrightness(64); // Wert von 0 -255, wobei 0 aus und 255 volle Helligkeit ist
Mit dieser Variable kann man, wenn benötigt oder gewünscht, die Helligkeit regeln.
Sollte die Variable genutzt werden wollen, muss diese in folgenden Bereich eingefügt werden:

#endif
 
  pixel.setBrightness(64); 
  // Wert von 0 -255, wobei 0 aus und 255 volle Helligkeit ist
  
  pixels.begin();
  pixel.begin();
  pixel.show();
  pixels.show();

delay(20000);
Diese „Variable“ bzw diese Unterbrechung wird auch in Millisekunden angegeben. 
Bei einem Wert von 20000, wird 20 Sekunden das an bzw. abschalten geregelt. 

Da bei einem delay das „ganze“ Programm angehalten wird, werden keine weiteren Befehle abgearbeitet oder verarbeitet. 
In diesem Fall nicht weiter tragisch.

Wer allerdings mit weiteren Sensoren oder Programmseitig was verarbeiten möchte, der sollte mit millis() arbeiten .

for(int i = 119; i<NUMPIXELS;i–){

Die Anzahl an LED die wir am Anfang des Sketch eingetragen haben, müssen in diesem Teil auch „-1“ eingetragen werden.

Beispiel:
#define NUMPIXELS 120

Anschließend muss in der Code wie folgt aussehen:

for(int i = 119; i<NUMPIXELS;i–){
( 120 – 1 = 119 )
Wieso ist das so?
Nun, die 0 ist auch eine LED: 0 – 119 = 120 Physisch vorhandene LED

Hab dazu mal einen passenden Kommentar in einem Forum gelesen:

Nen Zollstock beginnt mit 0 (schau mal nach!), das Lebensalter wird gezählt ab 0 (du wirst nicht mit einem Jahr geboren). Es macht schon Sinn.

Immer wo euch im Sketch die Variable:

pixel.Color(0,0,145)

begegnet, muss ein RGB Wert angeben werden um die Farbe zu definieren.
Eine RGB Tabelle könnt Ihr hier einsehen: RGB Tabelle.

Was passiert?

Wenn Bewegung oben erkannt wird, schaltet der HC-SCR auf „High“, ist der untere auf „low“ ( keine Bewegung ) und der Lichtsensor auf „High“
( Schwelle sollte so gewählt werden das bei Dämmerung der Sensor auf „High“ schaltet ) so werden die LED von oben nach unten durchgeschaltet.

Das gleiche in anderen Richtung.

Sollten Ihr Fragen haben, so schreibt mir einfach in die Kommentare, ich bemühe mich die Fragen zu beantworten! 🙂

Bis zum nächsten Projekt 🙂

67 Replies to “LED Treppenlauflicht mit ws2812b ( Video + Code )”

    1. Hallo Marcel,

      ich habe mal eben einen Schaltplan erstellt.
      Siehe Nachtrag.

      Geb mir bitte Bescheid wenn dieser nicht ausreichen sollte.

      Güße

    1. Hallo Tobias,

      dies hängt von der Leitungslänge ab.
      In meinen Fall habe ich 220 Ohm an die jeweilige Datenleitung gehangen.

      Grüße

  1. Hallo! Vielen Dank für das tolle tut…
    Ich hätte da aber eine Frage wäre das ganze auch umsetzbar mit einem analogen keramik piezo sensor anstelle der bw melder, die wollte ich ganz gerne unter die Treppenstufe anbringen, wir haben nämlich eine Katze und ich möchte nicht das jedesmal wenn die Katze da nachts lang läuft die bw melder ansprechen?! Anderes Problem wäre, ich kenn mich mit der Programmiersprache nicht aus, hab schon versucht Sketche zu schreiben wie deinen, bin aber immet gescheitert, deshalb war ich froh deinen gefunden zu haben. Über eine Antwort würde ich mich sehr freuen. MfG L. Buchhop

    1. Hallo Herr Buchhop,

      es ist möglich den Bewegungsmelder gegen einen anderen Sensor zu tauschen.
      Von der Idee her ist es gar nicht mal schlecht einen Vibrationssensor zu verwenden.

      Die Schwierigkeit wird denke ich mal nur der „Schwellenwert“ sein.
      Analog auslesen und verarbeiten ist nicht das Problem, eine zuverlässige „Mitte“ zu finden wo er nicht wegen jeder Kleinigkeit reagiert wird schon schwieriger.
      Dies müsstest Du dann vor Ort testen und ggf. nach justieren.

      Aber ja, es ist möglich.

      Wenn Du mir den Typ bzw den genauen Sensor mitteilst ( Gerne per E-Mail: p.vens-cappell@online.de ) kann ich Dir bei der Umsetzung des Scripts helfen.

      P.s.:
      Haben selber eine Katze die hoch und runter läuft, meine Bewegungsmelder habe ich deswegen auf Körperhöhe ( ca 1,2m ) gehangen und somit ist die Katze aus dem „Sichtfeld“ der Sensoren.

      Grüße

  2. Hallo Herr Buchhop,
    tolles Projekt, ich habe das ganze mal auf ein Steckbrett ausprobiert, bekomme es leider nicht zum laufen, mache ich was falsch?. Ich habe den Code ins Arduino geladen so wie er auf der Seite abgebildet ist. Adafruit_NeoPixel-master ist installiert, Bitte um Hilfe.
    Gruß Dietmar

    1. Hallo Dietmar,

      wie sieht denn Deine Beschaltung aus?
      Kannst Du mal bitte ein Bild posten?

      Ist der Flashvorgang erfolgreich gewesen?
      Zwei Bewegungsmelder und einen Lichtsensor eingebunden?
      Ansonsten muss der Sketch umgeschrieben werden.

      Welche Teile möchtest Du denn einsetzen?
      Darauf hin kann man gezielter helfen.

      Grüße

  3. Schön das sie helfen, ich habe die Schaltung genau so aufgebaut wie auf den Schaltbild fritzing zu sehen, 2xBewegungssensor, 1x Helligkeitssensor und 2x Ws2812, 1m entspricht 30 LED´s pro Seite.
    Habe auch im Programm auf 30 LED´s geändert. Der Flashvorgang ist erfolgreich gewesen. Wenn ich die beiden Sensoren auf 8 und 10 Stecke und den Helligkeitssensor auf 9, dann funktioniert ein Sensor und die beiden 2812 laufen durch, alle 30 Led´s.

    1. Vielleicht mal versucht den Bewegungsmelder auf den anderen Pin zu setzen? Bzw mal auf den funktionierenden Pin?
      Vielleicht ist auch ein Sensor nicht ganz in Ordnung?

    1. Hallo,

      ich habe Deine Mail erhalten und bereits geantwortet.

      Ich kann Dir gerne helfen wenn Du mir paar Sachen in der Mail beantwortest.

      Grüße

  4. Hallo Pascal, tolles Projekt… gefällt mir echt sehr gut. Siehst du eine Möglichkeit den Sketch so abzuändern, dass das Einschalten und Ausschalten „smother“ geht? Also die einzelnen Leds nacheinander mit fade in einzuschalten, bzw. mit fade out auszuschalten? Ich habe in diversen Foren nach Beispielen gesucht, aber leider nichts passendes gefunden.
    Grüße Andy

    1. Hallo Andreas,

      entschuldige die späte Antwort.
      Ich werde mir heute Abend paar Gedanken machen, generell erlaubt die Bibliothek ein fade in bzw fade out.

      Ich melde mich so fix es geht.

      Grüße

      1. Hallo Pascal,
        vielen Dank für deine schnelle Reaktion und Rückinfo. Und…keine Hektik…es ist nur Bastelei, es gibt aktuell sicher wichtigeres.

        Grüße Andy

      2. Hey,

        erstmal Danke für dein Projekt klappt echt super.
        Das mit dem FADE würde mich auch noch wirklich interessieren.
        Hast du da schon was machen können?

  5. Hallo ,
    habe voe Tagen dieses super Projekt hier entdeckt. Da ich im Moment Zeit habe möchte ich dieses Projekt nachbauen, allerdings nur mit einer ws2812b-. Habe mir alles organisiert also kann ich eigentlich starten, und natürlich keine Ahnung von sowas . Hättest du eventuell auch einen Schaltplan und Code für eine Seite? ich würde mich sehr darüber freuen .
    Gruß Manfred

    1. Hallo Manfred,

      schaue mal bei dem Code: überalle wo pixel steht, betrifft die rechte Seite und wo pixels steht, betrifft die linke Seite.
      Du müsstest einfach jede Zeile wo pixels steht mit // auskommentieren und oben bei der Definition die linke Seite mit // auskommentieren. (Zeile 6 und 9)

      Gruß Andy

  6. Hallo.
    Schaut richtig super aus. Wir wollen demnächst auch unsere Treppe plus Flur renovieren.
    Das mit dem Touchsensor oben ist super.
    Was sind den die gesamtkosten dafür? Und wie lange dauert sowas?
    Ich persönlich hab von sowas null Ahnung, aber einen Elektriker in der Familie.

    Danke
    Lg

    Bleibt gesund

    1. Hallo Sebastian, bin auch ganz neu hier finde es auch das es spitze aussieht. Ich bin noch am üben irgendwann habe ich es raus und es läuft dann . Der ganze Spaß ist gar nicht so teuer. Habe mir das komplette Arduino Starterkit für 25 €uro bei Ebay geholt. und die 5 Meter WS 2812b bei Aliexpress. Natürlich habe ich das erst zum üben wenn ich es zum lauen bekomme bastel ich mir ein für den Garten. Gruß

  7. Hallo Pascal,

    wow, tolles Projekt. Vor allem gefällt mir dass Du gute Notizen hier bereitstellst.
    Ich suche nach so einem Lauflicht für die Treppe im neuen Haus, aber wegen, naja, „neuem Haus“ und „Kinder“ (und „fehlendes know-how“) habe ich nicht die Zeit alles von null selbst zu machen.

    Ich hatte eigentlich gedacht ich kann einfach so einen LED-player nehmen wie etwa diesen hier:
    https://amzn.to/2KPGEvd
    Da dann ein Programm für „Treppe hoch“ und eins für „Treppe runter“ drauf.
    Dummerweise konnte ich keinen einzigen finden, der per Kontakt getriggert werden kann. Das hätte da ganze elegant gelöst, ganz ohne Programmierung.

    Ich habe vor allerdings ein paar Sachen anders zu machen:
    – ich nehme einen RGBWW-strip, weil ich sowieso weiss beleuchten will. Ich nehme an, wenn überhaupt muss ich ggf. das Format von pixel.Color(0,0,145) ändern? Das bekomme ich raus.

    – Außerdem nehme ich einen Strip mit 12V. Deine Stripes sind doch sicher 4-5m lang, oder? Das geht über 5V? Hast Du beidseitig eingespeist? Bin überrascht.

    – Ich würde noch einen weiteren Eingangs-Pin für manuelles „Licht an“ über einen Taster nutzen (realisiert über einen shelly, der einen Kontakt schliesst)

    Als Anregung möchte ich das Stichwort „fade in / fade out“ was weiter oben schon fiel, nochmal aufgreifen. Das wäre schon schick, denke ich.

    Außerdem gestatte mir eine Frage:
    Eigentlich ist das abzuspielende Programm ja recht einfach.
    Könnte man nicht auch einen „pixel player“ nehmen, also einen digital-controller der ein Programm von SD-Karte abspielt? Müsste mal halt einen finden der sich per dry contact ansteuern lässt… Das wäre aber ggf nochmal günstiger und einfacher als der Arduino…

    Ich denke mir das mal durch und gebe dann hier Feedback wie ich das ganze angegangen bin.

    Danke und viele Grüße,
    Jan

  8. Hallo Pascal,
    tolles Projekt hast Du da mit der Treppenbeleuchtung realisiert.
    Ich habe bei mir im Treppenhaus vor einer Weile auch die Neo-Pixel über 3 Stockwerke gezogen, aber nur auf einer Seite. Da meine Programmierkenntnisse schlecht sind, suche ich einen passenden Code dazu. Deine Treppenbeleuchtung ist so ähnlich wie meine ): . Wie kann ich im Code die PIR-Sensoren durch IR-Sensoren tauschen.
    Bin schon seit ein paar Tagen dran mir deinen Code auf meine Treppenbeleuchtung anzupassen. Habe zwar schon meine IR-Sensoren eingefügt und es funktioniert auch halb richtig. Ich weiß jetzt nicht wie ich richtig die Entfernung auf die Bewegung programmiere. Wenn ich feste Werte nehme dann klappt es auch, aber dann müsste ich ständig immer an der gleichen Stelle an Sensoren vorbei laufen.
    Ich verwende IR-Sensoren Sharp GP2Y0A02YK0F.
    Könntest du mir eventuell weiter helfen?
    Danke

    1. Du müsstest einen Bereich festlegen, also zwischen 20 und 60 cm zum Beispiel.

      Kannst Du mir den Code mal an meine Email Adresse senden?
      Vielleicht schaffe ich es morgen Nachmittag diesen umzuschreiben.

      Vielleicht gibst Du die Parameter auch gleich mit:

      Treppenbreite, wie soll was passieren etc.
      Das würde helfen 🙂

      Grüße

  9. Hallo Pascal,
    Habe gerade dein Projekt entdeckt, super Sache.
    Würde mir das gerne nachbauen.
    Leider bin ich kein Arduino Experte.
    Habe mir den Schaltplan mal angeschaut und habe noch eine Frage.
    Wird der Arduino mit einem separaten Netzteil verbunden?
    Habe versucht die 5 Volt über das 5 Volt Netzteil zu holen habe dann aber nur ein Lauflicht.
    Vielleicht bekomme ich ja eine Antwort.
    Danke im voraus.
    Gruß von der Nordsee

    1. Hallo,
      danke für Deinen Kommentar.

      Der Arduino sollte auch mit dem Netzteil versorgt werden, wichtig ist hier nur das der LED Streifen und der Arduino die gleiche Masse haben, ansonsten geht es nicht.
      Hast Du das berücksichtigt?

      Kannst Du Deinen Aufbau mal erklären?

        1. Hat alles super geklappt.
          Was jetzt noch schön wäre wenn die Geschwindigkeit des LED Strip auch beim ausgehen einstellbar wäre .
          Evt. Hast du da ja eine Lösung.
          Aber danke für die Anleitung.
          Gruß von der Nordsee

          1. Hey Thomas,

            super das alles geklappt hat.
            Du könntest den Sketch um eine Variable erweitern um die Rücklauf Geschwindigkeit zu steuern:

            Suche in dem Sketch ganz oben die Zeile:

            int delayval = 20;

            Füge folgende Zeile hinzu:

            int delayvalR = 20;

            Die 20 bzw. die Zahl hinter dem Gleichzeichen muss in Millisekunden angegeben werden.

            ( Normalerweise würde man kein Delay einsetzen, den damit wird der ganze Ablauf für die Zeit unterbrochen, man arbeitet eigentlich mit millis();
            Jedoch ist in diesem Fall das völlig zu vernachlässigen. Evtl bei einem Umbau schreibe ich das mal um )

            Kannst Du Dich ja mal rantasten was Dir gefällt.

            Anschließend suchst Du im Sketch folgende Zeile:


            pixel.show();
            pixels.show();
            delay(5);

            setzte es mit folgenden Code:

            pixel.show();
            pixels.show();
            delay(delayvalR);

            Dies musst Du zwei mal im Sketch ersetzen.

            Ich hoffe ich konnte Dir damit helfen.

            Gruß

  10. Hallo Pascal,

    …klasse , wie du den Leuten hilfst. Dann hoffe ich mal auf einen Umbau…vielleicht findet ja dann auch fade in fade out den Weg in dein sketch.
    🙂
    Gruß Andy

    1. Hallo Andreas,

      ich versuche es so gut wie möglich.

      Fade in und Fade out, wenn ich das richtig verstanden habe, möchtest Du mit Farbe “ grün ( zum Beispiel ) “ Aufhellen und anschließend wieder abdunkeln ?

      Grüße

      1. Danke für die schnelle Antwort.

        Ich möchte das das Netzteil nur an ist (Stromsparen 😉 ), wenn der Lichtsensor und ein Bewegungsmelder High sendet.
        Bräuchte dafür einen Pin am Arduino der mir in diesem fall ein outputt gibt.

        1. Du würdest ein schnelles Relais benötigen, ein SSR würde sich hier anbieten.

          Vorteil bei einem SSR : Kein klackern, Reaktionszeit wirklich fix.

          Aus dem abspeckt verstehe ich diesen Gedanken schon, jedoch habe ich gerade mal bei mir geschaut:

          Meine IT braucht im Ruhezustand ( da ist das Netzteil und der Arduino auch angeschlossen ) 62 Watt im idle.
          Wenn ich den Arduino extern versorge und das Netzteil physisch trenne, habe ich einen Verbrauch von 59 Watt im ilde.

          Also eine Ersparnis von ganzen 3 Watt.

          Eine Kilowattstunde kostet ca 30 Cent.

          Leistungsaufnahme: 3 Watt
          Dauer: 24 Stunden
          Stromverbrauch: 0,072 kWh
          Kosten: 0,022 €

          Nehmen wir nun die 0,022€ x 365Tage
          Wären das 8,03 €

          Die Technik die Du benötigst, inkl. eine Externe Stromversorgung für den Arduino:

          SSR 230V = 5,99€ inkl. Versand ( Prime )
          Netzteil = 9,99€ inkl. Versand ( Prime )
          Gesamt: 15.98€ ( Inlandversand )

          Wären 1,99 Jahre Standbybetrieb.

          Ob sich das Rechnet?

          Nichtsdestotrotz möchte ich hier auch eine Lösung dafür schreiben:

          Das SSR Modul verfügt über eine 3fach Schraubklemme welche auf der Vorderseite mit „DC+“, „DC-“ sowie „CH1“ gekennzeichnet sind.

          Solid State Relais Arduino
          DC+ 5V
          DC- GND
          CH1 digitaler Pin D2

          Du musst den Sketch um folgende Code Erweitern:

          Füge “ #define relais 2 “ über “ #define PIN_links 6 //links “ ein.

          Erweitere diesen Block:

          pinMode(bewegung_oben, INPUT);
          pinMode(bewegung_unten, INPUT);
          pinMode(lichtsensor, INPUT);

          mit der Variable: pinMode(relais, OUTPUT); –>

          pinMode(bewegung_oben, INPUT);
          pinMode(bewegung_unten, INPUT);
          pinMode(lichtsensor, INPUT);
          pinMode(relais, OUTPUT);

          Um den GPIO direkt beim Start auf LOW zu ziehen ( also aus ) musst Du noch folgendes hinzufügen:

          digitalWrite(relais, LOW); ( Direkt unter pinMode(relais, OUTPUT);

          Damit hätten wir das Relais soweit das wir damit auch Arbeiten können.

          Gehe zu folgenden Block:

          if (bewegungsstatus_oben == HIGH and bewegungsstatus_unten == LOW and lichtsensor_status == HIGH) {

          Füge Direkt unter der { Klammer folgendes ein

          // Relais schalten
          digitalWrite(relais, HIGH);

          // hier die leds schalten für beide Seiten (oben )
          for(int i=0;iDann geht es weiter zum Abschalten:

          delay(20000);
          for(int i=0;i// SSR auf LOW ziehen
          digitalWrite(relais, LOW);
          }

          Das gleiche bei:

          if (bewegungsstatus_unten == HIGH and bewegungsstatus_oben == LOW and lichtsensor_status == HIGH)
          {
          // Relais schalten
          digitalWrite(relais, HIGH);

          // LED Schalten von unten nach oben.
          for(int i = 119; i// SSR auf LOW ziehen
          digitalWrite(relais, LOW);
          }

          ACHTUNG!
          Arbeiten an 230V sind lebensgefährlich und sollten nur von Fachpersonal ausgeführt werden!
          Sicherung gegen wieder einschalten sichern!

          Ich hoffe das hilft Dir weiter.

          Grüße

  11. Super danke für die super anleitung.

    Ich versorge meine Led’s mit einem alten PC Netzteil. ( Resteverwertung)
    Ich bin Elektriker nur Programmiren gehört nicht zu meinen stärken.

    Werde es heute Abend mal Testen.

  12. Hallo Pascal,
    genau… 1 Farbe (einstellbar) . Der Bewegungsmelder wird ausgelöst, Led 0 geht mit 10% an; dann geht Led 1 mit 10% und Led 0 auf 20%, dann Led 3 10%, Led 2 20%, Led 0 30 %… usw. … das müsste ein smothes einschalten ergeben. Wobei ich jetzt natürlich nicht weiß, ob linear oder exponentiell eher geeignet ist oder überhaupt „einfach“ umzusetzen ist. Gruß Andy

  13. Hallo Andreas, hallo Konstable,

    wenn noch etwas Geduld vorhanden ist, lohnt sich vielleicht das warten.
    Ich erarbeite gerade ein UPDATE zu diesem Artikel und dort wird auch ein „fade in“ und „fade out“ im Artikel zur Verfügung stehen, der Testaufbau klappt soweit ganz gut und ist auch nicht zu unangenehm für die Augen.

    ( ich bin beruflich und privat leider sehr viel eingespannt, daher zieht sich das alles immer ein wenig, sry )

    Ein Video und eine Beschreibung wird voraussichtlich diese Woche noch Online gehen.

    Grüße

  14. Hallo Pascal

    Ich möchte gerne einen Streifen zeitverzögert schalten geht das?? Die zeit sollte einstellbar sein

    Danke für deine hilfe

    1. Hallo Matze,

      ja das ist möglich, wenn Du nach einer Bewegung den Streifen erst nach 1 Minute oder so schalten möchtest, muss eine neue Abfrage rein.
      Da ich aber gerade kur abgebunden bin, schreibe ich dir morgen eine ausführliche Erklärung.

      Grüße

  15. Guten Abend,

    Erst mal danke für die tolle Anleitung, funktioniert super und ist schon in Einsatz.

    ich habe da aber noch mal eine Frage.
    Ist es möglich noch einen zusätzlichen Bewegungsmelder parallel zu schalten?
    Oder wie bekomme ich einen zusätzlichen Bewegungsmelder angeschlossen?
    Habe das jetzt als Nachtlicht unter das Bett geplant
    Ein Bewegungsmelder rechts einer links.
    Jetzt wollte ich noch einen an die Schlafzimmertür setzen.
    Das ultimative wäre ja wenn der Streifen sich bei dem Melder von der Mitte nach rechts und links aufbaut.
    Aber mir wäre schon damit geholfen wenn ich einen zusätzlichen Melder anschließen kann.

    Gruß von der Nordsee

  16. Hallo Thomas,

    danke für Deinen Kommentar und endschuldige das Du ein wenig warten musstet, hab leider viel um die Ohren
    Schick mir doch mal bitte eine kurze Beschreibung und wenn es geht Deinen Sketch an:
    p.vens-cappell[AT]online.de.

    Ein zusätzliches Bewegungsmelder ist keine große Sache, die Steuerung der LED lässt sich eigentlich auch gut Steuern.

    Grüße

    1. Hallo David,

      der Sensor hat eine Reichweite von 3-80 cm bei einem Winkel von unter 15°
      Passt das mit Deinen Vorhaben?

      Das ist ein simpler Näherungsschalter, allerdings muss dieser nach Herstellerangaben angeschlossen werden.

      Bei LOW = Erkennung
      Bei HIGH = keine Erkennung

      Im Prinzip musst Du die Logik im Script nur tauschen ( PIR = High / E18 = LOW )

      Grüße

  17. Hi Pascal,

    wirklich tolles Projekt. Ich baue gerade meine Treppe und würde gerne unter jeder Stufe ein 90cm Stripes machen. Das Lauflicht soll dann pro Stufe sein.
    Nachdem eine Stufe von links nach rechts angegangen ist soll die nächste usw. Angehen. Insgesamt 14 Stufen. Beim Ausschalten das selbe rückwärts.
    Da meine Programmierkenntnisse zu wünschen übrig lassen wollte ich wissen, ob das mit deinem Code funktioniert. Bzw. mit Modifikation.

    Gruß Denis

    1. Entschuldige die verspätete Antwort!

      Ich würde es in Segmenten ( kleine Blöcke ) packen.

      Zeitverzögert pro Segment.
      Mit kleinen Modifikationen sollte es mit dem Code auch gehen.
      Du benötigst die Anzahl der LED pro Segment und deine Zeit die er warten soll/muss.
      Dieses würde ich per millis() Funktion lösen und kein Delay ( stoppt den ganzen Ablauf ) einbauen.

      Grüße

  18. Guten Tag,

    Bin auf dieses Projekt gestoßen und versuche es nach zu bauen. Ich habe den Sketch erstmal unverändert gelassen und die Schaltung so aufgebaut wie auf dem Foto. Nun zu meinen Problem: bei mir schaltet nur ein Bewegungsmelder den LED Strip der 2.Bewegungsmelder reagiert nicht. Ich finde den Fehler nicht. Bin aber auch kein Experte in Sachen Arduino und co.

    Bin für jede Hilfe Dankbar
    MfG

    1. Hallo,

      ich würde den PIR einmal tauschen, sprich, an dem Eingang der schaltet, den der nicht schaltet.
      Sollte das bereits das Problem lösen, scheint der PIR einen defekt zu haben.

      Sollte dieser an dem Eingang auch schalten, einmal die PIN Belegung überprüfen.
      PIN 6 und PIN 7.
      Sollte auch hier alles richtig sein, füge folgendes im Sketch ein und überprüfe ob ein Signal am Arduino ankommt:

      Serial.print(bewegungsstatus_oben);
      Serial.print(bewegungsstatus_unten);

      Das ganze bitte „unter“:
      bewegungsstatus_oben = digitalRead(bewegung_oben);
      bewegungsstatus_unten = digitalRead(bewegung_unten);
      lichtsensor_status = digitalRead(lichtsensor);

      einfügen!

      In der Arduino IDE den Serial Monitor öffnen und schauen ob eine 1 oder 0 kommt ( 0 = false(low) 1 = true(HIGH) Signal )
      Bei Bewegung sollte ein HIGH ( 1 ) erscheinen.

      Grüße

  19. Hallo,

    Vielen Dank für die schnelle Antwort. Ich habe das Problem so gelöst, ich habe den Lichtsensor Ausdokumentiert. Da mein Treppenaufgang sowieso immer ziemlich dunkel ist, scheint das die beste Lösung für mich zu sein. Vielen Dank nochmal für die Schnelle Antwort und diesem TOLLEN PROJEKT

    MfG
    Udo

  20. Hallo,

    Bei mir läuft eine Richtung richtig die andere Richtung flackert am Anfang in verschiedenen Farben und zeigt dann erst die richtige Farbe.
    Das gleiche beim Ausschalten, erst flackern und dann schaltet sich der Strip aus. Habe in dem Sketch nur den Lichtsensor deaktiviert. Alles andere so gelassen und auch die Schaltung habe ich so übernommen. An was könnte das Flackern liegen und was könnte/sollte ich dagegen tun?
    Schon mal vielen Dank für die Tipps und Hilfe

    MfG
    Udo

    1. Hallo Udo,
      wenn die LED flackern, am besten einen 470Ω ( nicht 470kΩ sry!) widerstand dazwischen.
      Wenn es geht die Leitung so lang wie nötig so kurz wie möglich.

  21. Hallo Pascal,
    erst mal danke für die schnelle Antwort. Einen widerstand 470 kOhm muss ich erst bestellen. Ich melde mich mit dem Resultat sobald ich ihn habe.

    MfG
    Udo

    1. Ich würde ein SET kaufen, denn wenn der 470Ω nicht der richtige ist, musst Du mal schauen.

      Laut Datenblatt sind zwischen den LED 150Ω Widerstände.
      Am Eingang sollte daher 150 – 470Ω anliegen.

      Sry meinte im Kommentar natürlich 470Ω nicht 470kΩ!

  22. Hallo Pascal,

    ich habe verschiedene Widerstände ausprobiert (220,330.470).Das hat alles nicht zum Erfolg geführt. Ich habe jetzt einen Huawei Handyladestecker genommen und GND vom Strip zum Arduino weg gelassen. Mit dieser Variante funktioniert es. Mit 2 verschiedenen Netzteilen von Mean Well (8A bzw. 10A) flackerten die LED´s nur. Ich habe keine Ahnung warum. Vielleicht hast Du noch einen Tipp für mich.
    Vielen Dank für Deine Hilfe. Ich wünsche allen ein schönes Weihnachtsfest.

    1. Es kann eigentlich dann nur ein Masse Problem sein.

      Wie folgt muss es angeschlossen werden:

      Netzteil Masse ( GND / -V ) an GND Arduino
      Netzteil Masse ( GND / -V ) an GND WS2812B

      Wurde dies bereits im Vorfeld mal gemacht?

      1. So wie es aussieht lag es am Arduino. Ich habe es mit einen Arduino Mega versucht und da lief alles so wie es sein soll. Jetzt habe ich einen neuen Arduino Uno angeklemmt und es funktioniert ebenfalls Also hat mein erster Arduino irgendein Problem. Eine Sache habe ich noch und die ist: der Bewegungsmelder der die LED´s von unten schaltet reagiert ziemlich spät. Kann man da irgendwas im Code machen? Ich habe bis jetzt folgendes getan, Intensität geändert und mehrere Bewegungsmelder versucht, leider alles ohne Erfolg. Vielleicht hast du noch einen Tipp für mich.

        Vielen Dank für Deine Unterstützung

        Gruß Udo

        1. Ah, ja kann auch mal an einem defekten Arduino liegen.

          Zu dem verspäteten Schalten, das beste ist hier immer den Controller mit beiden Bewegungsmelder am PC hängen und den Serial-Monitor zu öffnen.

          Füge bitte dazu folgenden Code ein:

          Serial.print(„*oben*“);
          Serial.print(bewegungsstatus_oben);
          Serial.println(„“);
          Serial.print(bewegungsstatus_unten);
          Serial.print(„*oben*“);
          delay(10);

          Das ganze vor:

          „if (bewegungsstatus_oben == HIGH and bewegungsstatus_unten == LOW and lichtsensor_status == HIGH) “

          Das Problem an diesem Sketch ist einfach, hier wird mit der delay Funktion gearbeitet.
          Delay blockiert in dem angegeben Zeitraum jede weitere Eingabe/Ausgabe/Verarbeitung.

          Heißt, wenn der Bewegungsmelder oben ein Signal schickt, blockiert er für 20000 Millisekunden jedes weitere Verarbeiten.
          Läufst Du nun in diesem Zeitraum unten an dem Bewegungsmelder vorbei, passiert genau, nichts!

          Grüße

  23. Hallo Pascal,

    habe Dein Projekt gefunden und finde es echt Klasse.
    Würde es gerne auch aufbauen und mir die Teile dazu holen.
    Dein Link zu dem Fotowiderstand geht leider nicht mehr (zumindest bei mir), kannst hier eine Alternative empfehlen?
    Bin auch ein Neuling in der Materie.
    Danke schon mal.

    Grüße Guido

    1. Hallo Guido,

      vielen Dank.
      Auch wenn ich heute die LED Streifen in Profile stecken würde ( mein Aufbau ist immer noch der selbe, wie hier gezeigt ) läuft es bisher fehlerfrei und stabil 🙂

      Anbei der Link für die Alternative:

      https://amzn.to/3wlwbAo

      Ich ergänze das auch noch im Artikel.

      Grüße Pascal

Schreibe einen Kommentar zu Pascal Vens-Cappell Antworten abbrechen

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

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.