Projekt Treppenbeleuchtung - WS2812B, 5V/30A NT, Arduino Uno

Hallo zusammen,

ich bin zwar schon einige Zeit angemeldet, habe vor einiger Zeit eine kleine CNC-Maschine mit einem Arduino gebaut, möchte nun in meinem Mitte des Jahres gekauften Haus eine Beleuchtung der Treppenstufen mit Arduino-Steuerung angehen.
Bisher war es für meine Probleme immer ausreichend, zu lesen - jetzt benötige ich aber doch "individuelle Hilfe".

Grundsätzlich in Stichpunkten mein Plan:

  • An Unterseite von 16 Stufen je ein RGB-LED-Streifen, die die jeweils untere Stufe beleuchten
  • Jeder Streifen sowohl in Farbe als auch Helligkeit einzeln ansteuerbar

Klingt recht einfach, es gibt hierzu auch zahlreiche Tutorials im Netz - daher möchte ich mich auf die für mich resultierenden Probleme beschränken und ansonsten auf einige Threads hier im Forum oder instructables.com verweisen.

  • Ein 5m 12V LED-Streifen (SMD 5050) mit 300 LEDs zieht maximal 70W Leistung.
  • Ich benötige in Summe 16,25m LED-Streifen, Summa Summarum: ca. 230W Leistung.
    (Ich könnte auch Streifen mit 150 LEDs je 5m nehmen, um die benötigte Maximalleistung zu halbieren)

In den meisten Tutorials werden zwei LED-PWM-Controller benutzt (M5451 bzw. TLC5940), die aber als maximale Stromstärke lediglich 15mA bzw. 120mA pro Kanal angeben. Die 16,25m LED-Streifen benötigen aber:

  • In Summe: 19,5A
  • Pro Stufe: ca. 1,22A
  • Somit pro Kanal (R,G,B): ca. 0,41A / 410mA

Die Controller könnte man prima via Serial Bus ansteuern, sie sind auch koppelbar - dennoch anscheinend für mein Vorhaben ungeeignet oder?

Ich habe mich aufgrund dieser Sachen noch etwas weiter umgeschaut und bin bei instructables auf dieses Projekt gestoßen: Link

Dieser nutzt Transistoren (MOSFETs) von Adafruit: Link

Da der Arduino aber "nur" PWM-Ports hat, könnte ich damit maximal 2 Stufen á je 3 Kanäle (R,G,B) ansteuern.
Sicherlich werden die Leisten niemals unter maximaler Helligkeit arbeiten, dennoch möchte ich das ganze System darauf auslegen, nicht zuletzt wegen möglicher Wärmeentwicklung nahezu ausgelasteter Komponenten etc. pp.

Hier noch der Link zu dem LED-Streifen, auf dessen Basis ich obige Rechnung unternahm:
Link (Amazon)

Hier noch ein Link zu einem Beispielvideo, wie es werden soll: Link (Youtube)
Wem dies zu "freaky" ist: Link (Youtube)

Über Tipps, Anregungen etc. würde ich mich sehr freuen.

Ansonsten noch ein schönes Restwochenende und einen guten Start ins Jahr.

Ohne jetzt auf die detaillierten technischen Probleme eingehen zu wollen:

230W LED-Licht fürs Treppenhaus?

Ich habe hier im Arbeitszimmer 5*3W LED-Spots und diese sind sehr hell.

Abhängig davon, wie hell du die Stufen ausleuchten willst, denke ich dass 1W-3W pro Treppenstufe völlig ausreichen!

Vielleicht solltest du Art und Anzahl der LEDs nochmal überdenken.

Hallo,

M5451 ist eine Displaydriver, für deine Anwendung also vollkommen ungeeignet.
TLC5940 ist zwar ein PWM LED Treiber (wird gerne genutzt, wenn man 16 Bit PWM brauchst), bracuht aber zusätzlich noch eine MOSFET Treiber, um einen LED Stripe anzusteuern.
Wenn du jede Stufe vollkommen unabhängig von den anderen in 3 Farben ansteuern willst, brauchst du für jede Stufe 3 MOSFET und entsprechend viele Ausgänge an den PWM Controllern.

Gruß
Reinhard

Hallo Gunther,

danke für deine Antwort!

Ja - Vor dieser Frage stehe ich aktuell auch. Leider finde ich im günstigeren Segment keine RGB-LED-Streifen geringerer Leistung. Generell bin ich kein Freund von Spots (außer in Schaufenstern etc.), mag gleichmäßige Ausleuchtung lieber.

Generell gibt es einfarbige LED-Streifen, bei diesen liegt die Leistung bei etwa 15W / 5m. (also für meine Treppe etwa 50W)
Wenn ich das Projekt angehe, würde ich aber gern individueller sein, als mit einem kaltweißen Farbton - der WAF spielt halt auch eine größere Rolle.


Hallo Reinhard,

danke für deine Antwort.
Preislich gesehen wäre es dann also so:

  • 3x TLC5940 (Sparkfun Breakout 12,03€)
  • 48x N-channel power MOSFET (1,57)

Ist noch überschaubar. Was sich mir hieraus aber nicht erschließt, ist der Anschluss - kannst du mir hierzu 1-2 Sätze schreiben? Im Anhang mal ein Anschluss-Szenario mit 3 Mosfets, direktanschluss an den Arduino - hatte ich mir als Testszenario heute schonmal in Fritzing zusammengeklickt.

Hier ist der PCA9685 sehr zu empfehlen. Den kann man als Open Drain und Push Pull/Totem Pole einstellen und standardmäßig macht er letzteres. Man kann daher mit dem Ausgang direkt an das Gate einen Transistors gehen wie gewohnt. Ist auch im Datenblatt auf Seite 34 gezeigt:
http://www.nxp.com/documents/data_sheet/PCA9685.pdf
Der hat außerdem den Vorteil, dass er selbst-oszillierend ist und man nicht dauernd Daten senden muss.

Gibt es hier als Shield und Breakout:

FETs bekommst du billiger. Den IRLZ34 z.B. bekommst du bei Reichelt für 40 Cents!

Hallo Serenifly,

vielen Dank!

Im Anhang mal ein Fritzing-Screenshot mit einem PWM-Shield (zwar von Sparkfun, die Anschlüsse entsprechen aber, was ich sehen kann, dem von Dir geposteten Adafruit)
Pro Kanal:

  • GND
  • V+
  • PWM

Hier ist mir leider unklar, wie dann der finale Anschluss an die Mosfets passiert? (Sorry, bin leider kein Elektroniker - kann zwar mit dem Lötkolben gut umgehen, bei Fachbegriffen und zu lesenden Schemata ist aber bei einer bestimmten Grenze bei mir bisher Schluss im Verständnis)
Im Screenshot erst einmal am Beispiel einer einzelnen RGB-LED - sind ja auch schon 3 Kanäle.
Die V+ kann ich vermutlich vergessen, GND vermutlich auch - muss ich dann PWM an den Mosfet anklemmen (wie im angefügten Screenshot?)

Hallo Dennis,
ich hab mir vor ein paar Jahren so eine Beleuchtung gebaut, hab sie aber gerade jetzt ausgetauscht.
Hatte auch die 5050 Stripes, wenn du z.B. faden willst brauchst du je Stufe 3 Adern, da muss man schon mal viele Kabel verlegen.
Jetzt hab ich alles umgebaut auf WS2812B Stripes.
Da brauchst du nur 3 Adern (eventuell noch eine mehr für einen Ultraschallsensor) und kannst jede Treppenstufe ansteuern. Farbe und Helligkeit, alles machbar über eine Steuerleitung.
Und ehrlich gesagt, unter jede Stufe 6 LEDs reicht, dann kommt man auch mit dem Strom in vernünftige Größenordnungen.

Da braucht es keine Mosfets oder dergleichen, ein Steckernetzteil reicht.

Gruß

Hallo maverick1509,

das klingt klasse! Die Neopixel-Liga hatte ich mir einmal staunend angesehen. Werde mich damit mal in Ruhe heute Abend befassen.

Danke!

Praktisch willst du hier allerdings wahrscheinlich eher das Breakout Board. Du brauchst ja drei davon.

Bei dem PCA9685 kannst du die Transistoren ganz normal dran hängen. Gate an den PWM Ausgang. Source an Masse. Und Drain an den LED Strip.

Hier auch mit Fritzing Bildern (persönlich kann ich damit nicht viel anfangen. Das verwirrt mich nur):

Mach vielleicht erst mal eine Teil-Bestellung und schau ob du das mit einem Strip hinbekommst, bevor du alles auf einmal hast und es geht was nicht.

Genau, dann hab ich es an sich schon mal richtig "angeschlossen" - Danke Dir!

Wie es immer so ist - der eine liest Schaltpläne wie einen guten Roman, der andere hat lieber bunte Bilder. :smiley:


@Maverick1509:
Hast du Dir Strips gekauft? Oder zum Beispiel folgende: Link
und die dann an jede Stufe "geklebt"?

Die Strips von den Guten finde ich leider nur mit mindestens 30 LEDs pro Meter (Link), leider nicht mit weniger..
Dabei sind's dann immernoch 2A/5V pro Meter.

Jede einzelne LED adressieren zu können, klingt aber wirklich nach einem finalisierungswürdigen Plan.
Wenn ich es richtig verstehe, klemmt man an den Anfang 3 Leitungen (GND, V+, Bus-Anfang) und ans Ende (GND, V+, Bus-Ende) ?
Hast Du ab einer bestimmten Stufen-Zahl ein gesondertes Netzteil reingehängt? (In einem Projekt-Bericht stand drin, dass man bei >4m zwischendrin noch eine weitere Spannungsversorgung einbauen sollte, bezog sich aber auf die 60LED/m Stripes)

@ Dennis das geht wirklich prima.

Schick mir mal deine Mail Adresse ich mach mal ein Video mit ein paar "Spielereien" der WS2812B.

30 LED je Meter oder 60 ist doch egal, du kannst nach jeder LED den Streifen trennen.

Ich hab lediglich ein 2A Netzteil, das reicht bei mir bei 17 Stufen.
Und wenn du nicht gerade weiße Farbe haben willst (alle drei Farben an) dann brauchst du auch nicht immer die angegebene volle Leistung.

Ich hab mir heute hier (Link) mal nen Meter mit 30LEDs bestellt - für knapp 13€ erstmal nicht die größte Investition. Werde damit mal experimentieren, wieviel LEDs ich pro Stufe will. Über Dein Video würde ich mich natürlich trotzdem freuen, meine Mailadresse hast du via PM gekriegt.

Hallo nochmal in die Runde,

inzwischen sind der LED-Streifen (letztendlich habe ich einen 60er LED-Streifen für den gleichen Preis gekriegt), der 1000µF Kondensator und meine 330Ohm-Widerstände angekommen.

Ich betreibe den Streifen aktuell mit dem Ladegerät meines Tablets (5V, 2A), den Streifen betreibe ich aber natürlich nicht unter Volllast.

Soweit so gut - mit div. Testprogrammen sieht der Streifen garnicht so schlecht aus, einzig und allein die erste LED blinkt wirr dazwischen. Hattest du solche Probleme auch, maverick?
Aktuell wirkt es ebenfalls so, als wäre der 330Ohm-Widerstand zu hoch gewählt - es scheinen nicht alle Signale durchzukommen. Es bestärkt mich darin, dass es deutlich besser läuft, wenn ich nur einen 270Ohm-Widerstand an die Data-Leitung hänge.
Aktuell habe ich mir noch 100Ohm-Widerstände bestellt, um etwas besser testen zu können, welcher am besten funktioniert.

Welche Widerstände hast du am Laufen? Die Adafruit Neopixels brauchen angeblich einen Widerstand zwischen 300 und 500 Ohm, von daher dachte ich mich mit den 330ern gut beraten.

Bin für Vorschläge offen, ansonsten teste ich in der kommenden Woche mal mit den 100ern (habe auch noch 10Ohm Widerstände da, kann dann also etwas genauer ausprobieren, welcher ideal ist)

Der Widerstand ist zum Schutz des Eingangs da. Mit 330 Ohm müßten die WS2812 gut funktionieren.

Da die Ws2812 mittels PWM die LED ansteuern gibt es keine halbe Leistung, sondern in bestimmten Momenten volle Leistung und in anderen null Leistung und da die WS2812 nicht synchronisiert sind auch alles dazwischen.
Grüße Uwe

Dank maverick1509 läuft die Steuerung nun erst einmal sehr gut - sofern der Arduino und die LEDs über die selbe Stromquelle versorgt werden, funktioniert es am besten ohne Widerstand, nämlich fehlerfrei :slight_smile:
Man muss sich wundern - sobald der Arduino vom USB meines Notebooks versorgt wird, kommen einige Fehler mit ins Spiel.
Ist nun aber auch egal.
Wichtiger Tipp am Rande, sollte das jemand lesen, der ähnliches vorhat: Mein Netzteil (Meanwell RSP-150-5) ist nicht angesprungen, sofern der Arduino an den gleichen Anschlüssen hing, wie der LED-Streifen. Dies liegt am zusätzlichen Kondensator, den man dazwischen hängen muss/soll. Sobald der Arduino an dem zweiten 5V-Out des Netzteils hängt, läufts aber blendend.
Jetzt fehlt nur noch eins: Zeit zum programmieren. :slight_smile:

Hallo zusammen,

inzwischen ist mein Projekt etwas fortgeschritten. Unter allen 15 Stufen kleben WS2812B-LED-Streifen, angesteuert von meinem Arduino und stromtechnisch gespeist von einem 5V/30A-Netzteil.

Meine Ansteuerung via Arduino funktioniert super - ist aber langsam.
Hier mal ein Teil meines Sketches:

for(int i=NUMSTEPS-1;i>=0;i--){ //Schleife durch die einzelnen Strips
        for (int FADE = 0; FADE <= 255; FADE=FADE+5) { //Schleife durch 255 Helligkeitsstufen
          for(int j=0;j<NUMSTRIPPIXELS[i];j++){     //Schleife durch die LEDs des Strips
            STRIPE[LEDID-j] = CHSV( LEDHUE, LEDSAT, FADE);
          }
          FastLED.show();
         }
        LEDID=LEDID-NUMSTRIPPIXELS[i];
}

Funktioniert super, die Stufen werden "smooth" gedimmt, dann gehts zur jeweils nächsten.
Mein Problem: Es dauert ganz schön lange, ohne dass ich ein Delay zwischen den Stufen habe. (Eine knappe Sekunde je Stufe)
Soll heißen: Eh die hälfte der Stufen angeschaltet ist, bin ich schon oben.

Habt ihr eine Idee, wie ich das Ganze besser dimmen kann? (Nutze FastLED)

PS: Frohe Ostern für alle!

Ich konnte das Problem etwas eingrenzen - es scheint an mangelnder Rechengeschwindigkeit des Arduino zu liegen. wenn ich einen 60er LED-Streifen in 11 Stufen á je 5 LEDs einteile, geht alles prima.
Bei 15 Stufen mit in Summe 460 LEDs scheint er mit dem Rechnen nicht mehr hinterher zu kommen.
Habt ihr eine Idee, was ich hier tun kann?

EDIT: Das Problem scheint mit der Adafruit-Neopixel-Library nicht zu bestehen und ausschließlich mit der FastLED-Library zu tun zu haben. Ich skripte mein Progrämmchen mal auf Neopixel um - sollte das Problem dann noch bestehen, aktualisier ich den Thread.

Kann davon ausgegangen werden, dass Deine Treppenbeleuchtung mittlerweile danke der Neopixel Library astrein läuft, oder bist Du doch bei der FastLED Library geblieben, weil das Problem ein anderes war?

Gruß Chris

Moin! FastLED war einfach zu langsam, daher nutze ich immer noch die Neopixel-Library.
Zum Leidwesen meiner Freundin ist die Treppenbeleuchtung immer noch nicht aktiv.
Aktuell arbeite ich an einer Windows 10 Universal App, mit der ich die Lichtfarbe mit PC/Tablet/Smartphone einstellen kann bzw. Sonderprogramme anstoßen kann (z.B. "Funky Party Light" oder sowas.)