ws2811 mit infrarotsensoren

schönen guten Abend,

ich bin neu im Forum und habe ein paar Fragen. Danke schonmal für alle Antworten :slight_smile:

Ein Projekt steht an, eine Installation in einem Schaufenster.

Der Aufbau:
es werden 440 ws2811 leds mit 12 Volt verbaut in einem Raster von 40 breite und 11 höhe.
Die Leds werden mittels einem Netzteil aus einem PC mit den 12 Volt versorgt, ein Arduino Mega kommt an den 5 Volt Anschluss am Netzteil, GND von Arduino und Leds wird verbunden.

Der Arduino bringt das Signal in die leds, gedacht wurde hier an eine "schlangen-anordnung" von links unten beginnend.

Zudem werden 10x HC-SR501-Sensoren an den Arduino angeschlossen und befinden sich am Boden der led-Matrix, sodass ein Passant beim vorbeigehen erkannt wird und auch seine Position ermittelt werden kann, je nachdem welcher Sensor anschlägt.


I I
I I
I I
I I
I x x x x x x x x x I

Die "x"e stehen für die Sensoren, der Kasten ist das Schaufenster und ist gefüllt mit leds.

Schlägt kein Sensor an, so wird eine variation von Mustern über die gesamte Größe des "Bildschirms" gezeigt.

Schlägt aber ein Sensor an, dann sollen die Leds über dem Sensor Blinken. Das heißt dort wo eine Person an dem Schaufenster vorbei läuft sollen die leds zu blinken anfangen. Am besten auch nur bis zu einer bestimmten Höhe des Schaufensters (nur die untere Hälfte). So wird jedem Sensor eine led-Gruppe zugewiesen welche Blinken soll sobald er anschlägt.

Zu meinen Fragen:
In erster Linie, fällt jemandem ein grober Gedankenfehler auf?
Zur Programmierung:
Die verschiedenen Muster können mit Glediator erstellt und als Code gespeichert werden, dies stellt keine große Schwierigkeit dar.
Wenn aber ein Sensor anschlägt wird es kompliziert. Man stelle sich vor 3 Personen laufen an dem Schaufenster vorbei und auf der Höhe jeder Person sollen leds Blinken. durch die 10 Sensoren kann es nun 210 Möglichkeiten geben welche led-Gruppen Blinken sollen. Weiß jemand welche Verschachtelung oder eine andere Art, wie diese vielen Möglichkeiten vereinfacht umzusetzen sind?

Etwas mehr Text als ich dachte :slight_smile: Danke im Voraus

Bist du dir sicher, dass die Sensoren auch auslösen, wenn eine Glasscheibe, meist ja mehr als eine, zwischen dem Sensor und der Person ist ?
Ich habe mit diesen billigen Sensoren nur schlechte Erfahrungen gemacht.

ich kenne Glediator nicht, aber worin liegt die Schwierigkeit auf Grund der Position (Nr. des PIR) die Startposition einer Led (und der nächsten 3) zu ermitteln und das dann für die nächsten 5 Reihen (weil halbe höhe) auch noch mal zu machen? Ja ok, das Zig-Zag wird lustig, aber außer ein paar for Schleifen, sehe ich da nicht wirklich was da im Wege steht. Kariertes Papier, ein Bleistift und ein Glas Wein sollten dafür eigentlich genügen.

Die einzelnen Led-Gruppierungen festlegen wird auch wie ich denke kein großes Problem, eher ein Zeitlicher Aufwand.

Die Frage ist aber, der Arduino fragt jeden Sensoren nacheinander ab und lässt nur eine Gruppe blinken. Wie soll das gelöst werden wenn z.B. mehrere Personen gleichzeitig verschiedene Sensoren aktivieren und so auch mehrere Gruppen gleichzeitig blinken sollen. Oder gibt es eine Möglichkeit die Sensoren gleichzeit abzufragen und mehrere led-Gruppen überlappend blinken zu lassen?

für mich klingt das nur nach "BlinkWithoutDelay" ... halt mit mehreren Leds.
Wie viel Erfahrung bringst du mit - kennst du dieses Beispiel?

Godel:
Die einzelnen Led-Gruppierungen festlegen wird auch wie ich denke kein großes Problem, eher ein Zeitlicher Aufwand.

Die Frage ist aber, der Arduino fragt jeden Sensoren nacheinander ab und lässt nur eine Gruppe blinken. Wie soll das gelöst werden wenn z.B. mehrere Personen gleichzeitig verschiedene Sensoren aktivieren und so auch mehrere Gruppen gleichzeitig blinken sollen. Oder gibt es eine Möglichkeit die Sensoren gleichzeit abzufragen und mehrere led-Gruppen überlappend blinken zu lassen?

Gleichzeitig nicht, aber sehr schnell hintereinander.

Dennoch solltest du dir Gedanken über meine Frage in Post #1 machen.

noiasca:
für mich klingt das nur nach "BlinkWithoutDelay" ... halt mit mehreren Leds.
Wie viel Erfahrung bringst du mit - kennst du dieses Beispiel?

Erfahrung allgemein habe ich schon etwas angesammelt, dieses Beispiel sagt mir aber leider nichts.

HotSystems:
Dennoch solltest du dir Gedanken über meine Frage in Post #1 machen.

Dieser Gedanke ist uns auch schon gekommen. Es besteht aber die Möglichkeit die Sensoren an der Decke, vor der Glasscheibe zu befestigen :slight_smile:

Trenne deine "Problemstellung" in drei kleinere Problemchen:

  • unabhängiges Blinken von 10 verschiedenen LED's
  • Auswertung von 10 PIR's die obiges Blinken für je eine zugewiesene LED Starten
  • Wie "blinkt" man in der Matrix ein kleineres Set von mehreren Leds ohne dass man jede explizit anführt (z.B. für den zweiten Block die Leds 236 235 234 233 165 166 167 168 156 155 154 153 85 86 87 88 76 75 74 73 5 6 7 8 )

edit: wobei bei der geringen Anzahl kannst das hinschreiben auch ...

noiasca:
Trenne deine "Problemstellung" in drei kleinere Problemchen:

  • unabhängiges Blinken von 10 verschiedenen LED's
  • Auswertung von 10 PIR's die obiges Blinken für je eine zugewiesene LED Starten
  • Wie "blinkt" man in der Matrix ein kleineres Set von mehreren Leds ohne dass man jede explizit anführt (z.B. für den zweiten Block die Leds 236 235 234 233 165 166 167 168 156 155 154 153 85 86 87 88 76 75 74 73 5 6 7 8 )

lieben Dank für die Zusammenfassung.
In erster Linie würde mich eine Lösung für Problemchen Nr.1 interessieren.

Problemchen Nr.2 sollte kein Problem sein, nachdem es einen Testlauf mit einem PIR und einer LED gab und dieser im Grunde nur erweitert werden muss.

Problemchen Nr.3 kann bestimmt einfacher gelöst werden als alle 10 Sets und alle dafür benötigten Leds einzeln anzuführen. Aber dieses stelle ich einmal hinten an, da es nicht all zu zeitaufwändig sein sollte.

Lösung gibts keine. Nur ein Weg wie du das selber dauerhaft lernen kannst.

Arduino IDE | Beispiele | 02. Digital | BlinkWithoutDelay

Das schaust dir bitte für eine LED an.
Und die erste Übung ist es das verstehen zu lernen und dann für mehrere LED's und unterschiedliche Frequenzen zu machen (damit es nicht so fad ist).

Ws2811 mit 12V heißt daß immer 3 LED den gleichen Controller teilen und darum die gleiche Farbe haben.

440 WS2811 verbrauchen 26,4A (Ich nehme an es sind 440 WS2811 und nicht 440 LEd mit je einen WS2811 pro 3 LED.

Grüße Uwe

Hallo,

wie willst Du eigentlich das Verhalten der PIR nach Deinen Wünschen erreichen?
Die haben einen Öffnungswinkel um 100 Grad reagieren durchaus auf mehrere Meter Entfernung.
Das machen die auch ganz, ich habe hier welche in den Zimmern im Einsatz.
Du hast keine Breite angegeben, aber ein Schaufenster ist ja üblicherweise wohl nur so 2-3m breit.

Gruß aus Berlin
Michael

amithlon:
Hallo,

wie willst Du eigentlich das Verhalten der PIR nach Deinen Wünschen erreichen?
Die haben einen Öffnungswinkel um 100 Grad reagieren durchaus auf mehrere Meter Entfernung.
Das machen die auch ganz, ich habe hier welche in den Zimmern im Einsatz.
Du hast keine Breite angegeben, aber ein Schaufenster ist ja üblicherweise wohl nur so 2-3m breit.

Gruß aus Berlin
Michael

Die Frage ist berechtigt! :smiley:

das Schaufenster ist ca. 12m breit und die PIR haben sogar fast einen 160° Winkel. Das Problem wurde aber schon gleich zu Anfang gelöst indem ich eine einfache Kappe konstruiert habe, welche zwei Klappen besitzt die man auf und zu machen kann. So kann man vor Ort den Winkel aller Sensoren relativ einfach einstellen.
Druckzeit auf meinem 3D-Drucker ca. 20 Minuten.

Danke für den Einwand

Godel:
Die Frage ist berechtigt! :smiley:

das Schaufenster ist ca. 12m breit und die PIR haben sogar fast einen 160° Winkel. Das Problem wurde aber schon gleich zu Anfang gelöst indem ich eine einfache Kappe konstruiert habe, welche zwei Klappen besitzt die man auf und zu machen kann. So kann man vor Ort den Winkel aller Sensoren relativ einfach einstellen.
Druckzeit auf meinem 3D-Drucker ca. 20 Minuten.

Ah, eine interessante Lösung - danke für die Beschreibung!

Godel:
....

das Schaufenster ist ca. 12m breit und die PIR haben sogar fast einen 160° Winkel. Das Problem wurde aber schon gleich zu Anfang gelöst indem ich eine einfache Kappe konstruiert habe, welche zwei Klappen besitzt die man auf und zu machen kann. So kann man vor Ort den Winkel aller Sensoren relativ einfach einstellen.
Druckzeit auf meinem 3D-Drucker ca. 20 Minuten.
.....

Alles schön und gut. Aber ich bezweifel, dass die Sensoren dafür geeignet sind.
Die arbeiten alle viel zu unsicher, das ist bisher meine Erfahrung.
Daher habe ich eine Alternative dafür gefunden.
Panasonic PIR
Den solltest du dir mal anschauen.

Hallo,

HotSystems:
Alles schön und gut. Aber ich bezweifel, dass die Sensoren dafür geeignet sind.
Die arbeiten alle viel zu unsicher, das ist bisher meine Erfahrung.

kann ich so direkt nicht bestätigen. Richtig ist, daß sie sehr empfindlich auf elektrische Einstreuungen reagieren.
z.B. sorgt ein ESP8266 aktiv nahe dem HC-SR501 sicher für ein Ansprechen und aktiv bleiben.
Bei mir schaltet der PIR-Ausgang nur direkt den CH_En eines ESP-Moduls, dieser sendet eine MQTT-Message und geht wieder schlafen. Haltezeiten, Nachtriggern usw. erledigt ohnehin die FHEM-Software am anderen Ende.

Fehlerhafte Auslösungen hatte ich noch keine, wann er anspricht hängt stark von Entfernung, Größe des Objektes und Geschwindigkeit der Bewegung ab.
In 2-3m Entfernung wird eine sich wenig bewegende Person hier immer sicher erkannt, sehr wenig Bewegung wird ignoriert, sind ja letztlich Bewegungsmelder.
Ruhiges Stehenbleiben wird vermutlich bei ihm dann nach Ablauf der Zeit zum Stopp der Anim führen und diese wieder starten, wenn der jenige weitergeht. Da darf er sich gern in der Software ein Verhalten ausdenken.

Gruß aus Berlin
Michael

amithlon:
kann ich so direkt nicht bestätigen. Richtig ist, daß sie sehr empfindlich auf elektrische Einstreuungen reagieren.

Das kann ich auch nachvollziehen.
Meine Erfahrung darin basiert auf dem Test von 10 Sensoren direkt aus China.

Ich sollte für einen Bekannten eine Lichtsteuerung aufbauen und habe dafür diese getestet.
Alle haben unterschiedlich reagiert und geschaltet.
Von den 10 waren 7 nicht zu verwenden, da diese entweder zu unempfindlich oder eben unkontrolliert reagierten.

Damit waren diese für das Projekt nicht zu verwenden und ich habe die Panasonic (aus dem Link) eingesetzt.
Mittlerweile habe ich von den Panasonic ca. 15 Stk. verbaut und keinerlei schlechte Erfahrung damit gemacht.
Auch bei mir im Haus verwende ich die zur Steuerung diverser Led-Stripes, z.b. als Kleiderschrankbeleuchtung. Hier ist die Bauteilgröße ein echter Vorteil.

Danke für die vielen Antworten. Ich habe mich einmal an den BlinkWithoutDelay Code gewagt, das war genau das was ich gesucht habe. Für mich war ein Arduino bisher immer nur ein kleiner Arbeiter der seine Aufgaben hintereinander abarbeitet also mit delay und ohne Aufgabe nach "Zeitstempelung". Der Beispielcode ist auch gut verständlich, sodass ich mich jetzt guten Gewissens an das Projekt wagen kann :slight_smile:

amithlon:
Da darf er sich gern in der Software ein Verhalten ausdenken.

P.S. auch als Dame fühle ich mich mal angesprochen :wink: