Hilfe bei Treppenlauflicht Projekt

Hey, ich habe seit geraumer Zeit versucht mein Treppenlauflicht ans laufen zu bekommen.
Doch leider ohne wirklichen Erfolg.

Ich benutze hierzu die ws2812b, da sie einzeln angesteuert werden können und meine Treppenstufen verscheide Größen haben und genau dieses erfordern das ich mal 20 und mal 25 Stufen z.b. ansteuern kann.

Wer hat so etwas schon mal gemacht und kann mir hier bei Helfen ???

Ich würde mich freuen wenn jemand von euch mir da weiterhelfen könnte und das ohne große Diskussion das man sowas erstmal anfangen sollte zu lernen usw.

Ich habe das Projekt und komme einfach nicht weiter.

Vielen Dank schon mal im Voraus.

Alle bisher hier im Forum von mir mitgelesenen Treppenlauflichprojekte sind nicht beendet worden oder das erfolgreiche Ende wurde hier nicht dokumentiert. Eine Suche hier im Forum könnte dennoch Anregungen bringen.

Wenn Du schon was probiert hast, könntest Du das zeigen und man könnte gemeinsam über Verbesserungen nachdenken.

ks2:
... und meine Treppenstufen verscheide Größen haben und genau dieses erfordern das ich mal 20 und mal 25 Stufen z.b. ansteuern kann.

Den Text verstehe ich nicht.

Hi

WAS hast Du vor?
Bei 20...25 LED pro Stufe kommen schon Einige zusammen - Die wollen dann auch ordentlich Strom haben.
Was soll wann leuchten, wie erkennst Du, wo geleuchtet werden soll?

MfG

Treppe — ImgBB hier ist ein Teil der Treppe

Das Problem ist das ich mir etwas in den Kopf gesetzt habe wovon ich gar keine Ahnung habe und gedacht habe das kann ja nicht so schwer sein.

Die erste Stufe von Unten z.b. hat 48 LED´s und misst ca 80 cm, die fünfte hingegen 110cm und 69 LED`s

Nun sollen diese mit PIR Sensoren laufen und im Fader von Oben nach Unten und von Unten nach Oben beim Durchschreiten des Sensores an- bzw. ausgehen.

Ich habe schon so viele Artikel gelesen doch ist dabei nicht das was ich suche bzw. benötige, da diese mit der pro Stufe gleichen Anzahl der Led´s laufen und nicht so wie bei mir.

Leider hab ich auch schon sehr oft gelesen das viele einfach das nicht weitergemacht haben und oder einfach nicht weiter kommentiert haben. Trotzdem suchen sehr viele genau dieses wie und ich und seit Monaten suche ich danach und niemand hat das bis lang geschafft da es sich wohl auch um Absolute Anfänger handelt wie ich es auch einer bin.

Zu den Led´s Pro Stufe

Stufe 1 48
Stufe 2 48
Stufe 3 51
Stufe 4 57
Stufe 5 69
Stufe 6 57
Stufe 7 51
Stufe 8 48
Stufe 9 48
Stufe 10 54
Stufe 11 60
Stufe 12 66
Stufe 13 51
Stufe 14 48

Sind insgesamt 756 led´s mit 544watt

und ich möchte dieses Projekt unbedingt fertigstellen, denn bis lang war das alles jetzt schon eine menge Arbeit.

Ich dank euch nochmals allen, das ihr so schnell helfen wollt. Find das Super toll .

Da kannst Du doch erst mal die Leds für die einzelnen Bereiche als Anfang. Achtung: In der IT fangen wir in der Regel beim Zählen mit 0 an.

uint16_t stufen[] = {0,48,96,147, usw., letzte_Led+1};

...
// pro Stufe nr = Stufennummer
for(uint16_t i=stufen[nr]; i<stufen[nr+1];i++) {
  // mach was mit den LED, z.B. anschalten oder heller machen
}

Gruß Tommy

Hi

Selber komme ich auf knappe 230W - immerhin stolze 45A - Das wäre also ein 10mm² 'Drähtchen' jeweils für Plus und Minus.
Ich rate DRINGEND, Sicherungen zu verbauen, wo die Drähte dünner werden - diese fast 50A lassen auch dünnste Drähte hell glühend.

Nix für Ungut - aber das Bild ist eher Nichts sagend - vll. doch nicht so schlimm, Das nicht auf dem Forenserver zu packen (externe Links sind 2 Wochen gut, dann ist das Bild weg und Keiner kann sich mehr ein Bild von dem machen, wo wir hier drüber quatschen).

Wenn ich Deine Ausführungen korrekt verstehe, ist diese Liste - LED pro Stufe - so ziemlich das Einzige, was Du bisher zusammen hast?

MfG

Hey,
also wie erwähnt habe ich genau 0 Ahnung Ich habe schon ein wenig selber gemacht aber das ist wohl nicht wirklich gut und denke einfach zu umständlich.

[*code]

#include <Adafruit_NeoPixel.h>
#ifdef AVR
#include <avr/power.h>
#endif
#define PIN 6
#define NUMPIXELS 100
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup()
{
pixels.begin();
}

void loop() {
pixels.setPixelColor( 0 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 1 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 2 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 3 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 4 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 5 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 6 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 7 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 8 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 9 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 10 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 11 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 12 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 13 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 14 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 15 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 16 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 17 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 18 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 19 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 20 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 21 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 22 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 23 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 24 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 25 , pixels.Color( 255 , 255 , 255 ));

pixels.show();
delay(1000);

pixels.setPixelColor( 26 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 27 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 28 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 29 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 30 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 31 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 32 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 33 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 34 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 35 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 36 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 37 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 38 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 39 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 40 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 41 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 42 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 43 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 44 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 45 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 46 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 47 , pixels.Color( 255 , 255 , 255 ));

pixels.show();
delay(1000);

pixels.setPixelColor( 48 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 49 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 50 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 51 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 52 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 53 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 54 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 55 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 56 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 57 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 58 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 59 , pixels.Color( 255 , 255 , 255 ));
pixels.setPixelColor( 60 , pixels.Color( 255 , 255 , 255 ));

pixels.show();
delay(1000);
pixels.clear();
}

[*/code]

Ich versuche das von Tommy zu verstehen und daran einen Anfang zu finden und das dann Dank eurer Hilfe auszubauen.

Doch gestaltet sich das wenn man überhaupt keine Ahnung hat doch Relativ schwer.

Aber ich bin guter Hoffnung das das irgendwann einem auch von der Hand geht nur ist bis dahin ein wohl noch ein sehr sehr langer Weg.

Nochmals vielen Dank für eure Hilfe und Bereitschaft mir zu helfen.

Es ist ein Arduino Uno und Testsketch mit 15m läuft einwandfrei und ich brauch etwas weniger.

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.

Dann schaue Dir noch mal mein for an.

Gruß Tommy

ks2:
also wie erwähnt habe ich genau 0 Ahnung

Das sieht man Deinem Sketch an :slight_smile:

Du möchtest, dass ein Programm abläuft, das bestimmte Dinge tut - auf Signal vom Sensor warten, dann Lichtprogramm abspielen...

Zeichne den Ablauf als PAP und lerne dabei die verschiedenen Konstrukte kennen, mit der Du den Ablauf eines Programms steuern kannst (if, while, for ...). Zusammen mit dem Zeichnen bekommst Du das schnell drauf.
Dann realisierst Du einen Teil nach dem Anderen - fang mit dem Sensor an und lass nur mal die Onboard-LED leuchten/blinken/wasauchimmer, wenn ein Signal erkannt wird.

Gruß

Gregor

PS: Dass „es ja nicht so schwer sein kann ...“ denke ich, seit ich mit Computern zu tun habe :slight_smile:

ks2:
... und gedacht habe das kann ja nicht so schwer sein.

Da bist Du nicht alleine :slight_smile:

ks2:
Die erste Stufe von Unten z.b. hat 48 LED´s und misst ca 80 cm, die fünfte hingegen 110cm und 69 LED`s

Wegen der Kurve sind die Treppenstufen unterschiedlich breit, jetzt verstehe ich es.

ks2:
... und ich möchte dieses Projekt unbedingt fertigstellen, denn bis lang war das alles jetzt schon eine menge Arbeit.

Dann konfrontiere ich Dich jetzt mal mit einem unvollendeten vergleichbaren Ansatz: Treppenbeleuchtung mit 2 PIR Sensoren und FastLED. Der LED-Typ ist APA102 mit zwei Pins, was besser weil schneller ist, bei 756 Pixeln möglicherweise nicht ganz unerheblich. Aber die Logik ist identisch, da kannst Du Dir was abschauen, wenn Du es kannst. Kannst Du und willst Du?

APA102 sind das die wie die ws2815 ? Die haben auch 4 Kontakte und diese hab ich sogar ausreichend hier?

Können naja, ich werd mich da durchmogeln hoffe ich mal :-). Und wollen na klar vielen Dank.

Noch ein kleiner Ausbau:

uint16_t stufen[] = {0,48,96,147, usw., letzte_Led+1};
const byte anzahlStufen = sizeof(stufen)/sizeof(stufen[0]) -1; // Weil hinten dran noch ein Abschlußwert ist

// bdefinierte Farbwerte;
const uint32_t schwarz = 0UL;
const uint32_t weiss = pixels.Color(255,255,255);

// Setzt eine Stufe auf die übergegebene Farbe
void setStufe(byte stufenNummer, uint32_t farbe) {
  for(uint16_t i=stufen[nr]; i<stufen[nr+1];i++) {
    pixels.setPixelColor(i,farbe);
 }
  pixels.show();
}

...

// Aufruf
setzeStufe(3,weiss);
setzeStufe(2,schwarz);

Das ist dann etwas kürzer, als Deine Stufe.

Gruß Tommy

ks2:
APA102 sind das die wie die ws2815 ? Die haben auch 4 Kontakte und diese hab ich sogar ausreichend hier?

Auch wenn ich gerade das erste Mal von WS2815 lese, dann spontan "Ja". Die 12V reduzieren den Strom auf die Hälfte und Takt und Daten getrennt ist besser. Zunächst braucht es aber einen Test, ob vorhandene Bibliotheken wie FastLED damit zusammenspielen, denn noch ist der Typ dort unbekannt.

Bei der Neopixel gibt man ja keinen Typ mit. Da würde ich sie einfach mal (1-2LED) wie APA102 behandeln, nur mit höherer Versorgungsspannung und schauen, was passiert.

Gruß Tommy

Tommy56:
Bei der Neopixel gibt man ja keinen Typ mit. Da würde ich sie einfach mal (1-2LED) wie APA102 behandeln, nur mit höherer Versorgungsspannung und schauen, was passiert.

Der Sinn Deiner Worte will sich mir nicht erschließen.

Wenn ich mal von Adafruit-Bibliotheken ausgehe, dann werden die mit Takt und Daten getrennt DotStar genannt. Den Typ wähle ich folgerichtig mit #include <Adafruit_DotStar.h>. Eins der Bibliotheksbeispiele könnte man mal testweise auf die WS2815 loslassen.

Wenn es so gemeint ist, dann bin ich dabei :slight_smile:

Ja, ich meinte das so. Es wird bei der Anlage des Arrays kein Typ mitgegeben, das war unklar formuliert.

Gruß Tommy