WS2801 LEDs mit Arduino Nano steuern

  • Servus miteinander!


    Ich habe mir zwei LED Ketten gekauft und möchte die nun mit meinem eigenen Programm steuern. Da das ganze nicht so läuft wie ich möchte und ich auch langsam ratlos bin, suche ich nun bei euch Hilfe! :)


    Die LED Ketten sind diese hier, mein Arduino Nano Ersatz ist dieser hier.
    So weit so gut. Zunächst mal habe ich die LED Ketten ineinander gesteckt und Blau/Blau und Rot/Rot verlötet.
    Dann habe ich an einer Seite den Stecker (Weiß, Grün, Blau) abgeknipst und diese Enden wie folgt auf meinen Arduino gelötet:
    Weiß auf D4
    Grün auf D5
    Blau auf GND
    Arduino Nano Pin Layout
    Laut der Artikelbeschreibung bei Ebay ist ~~gelb - Daten~~ ~~grün - Clock~~, daher habe ich meine Pinbelegung so gewählt, Intuitiv wegen SCL (clock?) und SDA (data?), ohne groß Ahnung davon zu haben.
    Die Stromversorgung am Arduino läuft via Mini USB Stecker und an den LEDs via USB kabel direkt an Masse und 5V. Wird mit einer Powerbar betrieben.


    So. Nun zu meinem Problem. Wenn ich die LEDs mit Spannung versorge gehen sie an. Allerdings ohne Muster, einfach irgendwelche LEDs aus der Kette in einer zufälligen Farbe. Unterbreche ich die Spannungsversorgung und verbinde sie neu, blitzen die LEDs nur ganz kurz auf und gehen dann aus. Oder es leuchten einfach wieder irgend welche LEDs.
    Dabei ist es auch völlig egal ob der Arduino angeschaltet ist oder nicht, ich bekomme gar kein Signal vom Arduino auf die LEDs.


    Programmieren tu ich mit der Arduino Software und der FASTLED Library.
    Zu Anfang versuche ich mich an dem einfach Blink Beispiel:



    Dabei ist es egal wie ich oben in der Variable die Pinbelegung änder, ob ich 4 und 5, D4 und D5, PD4 und PD5, 2 und 9, was auch immer nehme. Sie ändern sich überhaupt nicht.
    Der Arduino nimmt meinen Code aber an, wenn ich ihn hochlade dann blinkt die rote LED auf dem Arduino unregelmäßig, sieht für mich so aus als würde er das Programm schlucken..


    Hoffe meine Infos reichen, ich weiß jedenfalls nicht mehr weiter und bin für jeden Tipp dankbar :)
    Beste Grüße!

  • Ich würde mal bei der Spannungsversorgung ansetzen. Ich halte so ne powerbank für den Einsatzzweck für nicht geeignet. Nach meinen Erfahrungen sind die Dinger für eine konstante Last gebaut. Die Laständerungen beim Pixelbetrieb wird die Powerbank wahrscheinlich nicht ausregeln können. Wenn dann der Controller noch mit an der Versorgung hängt kann das so nicht funktionieren.


    Also erstmal für eine funktionierende Versorgung sorgen.

  • GND von Netzteil und Arduino verbunden? Sonst geht nix.


    Was ist das für ein NT und von wievielen Pixeln sprechen wir?



    Es könnte aber auch an dem - von den Arduinospezifikationen nicht offiziell vorgesehenen - China-Wandler liegen der da in deinem Clone verbaut ist, ist aber nur eine Spekulation.


    Die sind wohl dafür bekannt sich bei belastung gerne mal zu resetten wobei sich dann natürlich der virtuelle COM Port aufhängt.

  • GND von Netzteil und Arduino verbunden? Sonst geht nix.


    Was ist das für ein NT und von wievielen Pixeln sprechen wir?


    Also ich habe so ein Netzteil für die Steckdose wo ich zwei mal per USB abgreifen kann. Output sind 5V und 3A.
    Ein mal gehe ich mit USB vom Netzteil auf Mini-USB direkt am Arduino, und dann gehe ich ein mal vom USB direkt auf 5V (rot) und GND (blau) an den LED stripes.
    Von den LED Stripes gehe ich dann wie oben geschrieben mit Data, Clock und GND auf den Arduino.
    Ich habe 100 LEDs

  • Das bringt nix für digitale Pixel, besonders nicht für 100 Stück, hol dir mal ein richtiges 5V 10A Schaltnetzteil. Ich hab das schon mit PC Netzteilen mit weniger Pixeln erlebt, die brechen ein und dann gibts Flackerdisco.


    Oder steuere erst einmal 10 Pixel an und teste das. Das könnte das NT Vielleicht noch ab.


    100 Pixel = 3 x 20mA x 100 = 6A stabilisiert bei weiss. Da würde ich nicht drunter gehen.

  • also mein Problem ist, das ganze soll später relativ portabel sein, daher wollte ich am liebsten so eine Powerbar nehmen.
    Komplett in weiß muss es eh nie leuchten, habe ich mir gedacht.
    Die LEDs werden annähernd wie eine Gardine angebracht und es geht darum da mal einen kleinen smiley oder ein winziges Muster abzubilden.


    Mein Problem ist ja, dass sich auch nicht 10 LEDs steuern lassen. Sobald ich dem Ganzen Spannung gebe leuchten ein paar LEDs in verschiedenen Farben, immer andere, auf der ganzen Kette. Dann spiele ich das Programm auf den Arduino aber es ändert sich absolut gar nichts. Als würde über Data und Clock gar nichts übertragen. Habe ich die richtigen Pins genommen? Und wie müsste ich die Pins im Programm definieren? PD4 und PD5?

  • Ich würde trotzdem nie unter 6A für 100px gehen, aber meine Pixelinstallationen funktionieren auch ;) Es kann sein dass es am Ende funktioniert, aber zum Debuggen am Anfang oder später für kritische Anwendungen würde ich sowas nicht einsetzen


    Gebe mal im Programm 10px bei num leds an, gib dem ganzen Spannung und führe das Programm aus.


    So macht das aber ehrlich gesagt auch nicht viel Sinn gerade, du hast abweichende Kabelfarben als in deinem Angebot angegeben, einen nicht standardkonformen Nano statt einem normalen Diecimilia/UNO, ein nicht geeignetes Netzteil


    Zitat

    Habe ich die richtigen Pins genommen? Und wie müsste ich die Pins im Programm definieren? PD4 und PD5?


    Woher sollen wir das wissen? Der einzige der weiss wie die Belegung ist, bist du ;)


    Die Art der Definition (ohne Dx) oben im Code ist schon richtig. Probier doch mal die Pins zu tauschen (also natürlich in der Software)

  • Zitat

    Woher sollen wir das wissen? Der einzige der weiss wie die Belegung ist, bist du


    Dachte es würde vielleicht einen Unterschied machen welchen Digitalen Pin ich nehm.


    Hab das Zeug gerade an, viele LEDs leuchten und der Arduino hängt am PC, ich ändere das Programm (Pins habe ich auch getauscht) und spiele es auf. Der Arduino schluckt es anscheinend auch, die kleine rote LED auf dem Arduino Nano blinkt unregelmäßig wenn sich die Progressbar am PC füllt.
    An den LEDs ändert sich leider einfach gar nichts. Egal ob ich 1, 10 oder 100 LEDs angebe. Sie gehen nicht aus, blitzen nicht kurz, sie bleiben einfach exakt so wie von Anfang an sobald Spannung drauf liegt.

  • Ich les mir das gerade nochmal durch, nicht sehr vorrausschauend alles gleich als erstes zu verlöten und abzuzwicken - aber gut.


    Bist du sicher dass du von der richtigen Seite einspeist? Ich kenne fast nur Pixel die von der Buchsenseite her eingespeist werden, aber die Chinesen halten eh nichts von Standards.


    Trenn mal eine 50er Kette ab und probier die Möglichkeiten durch. (Ich möchte mal dein Angebot zitieren: "Pro 50 LED-Modulen sollte das Netzteil mind. eine Leistung von 5V und 3A sprich 15W haben")


    Zudem solltest du definitiv rausfinden was CLK und was DAT ist, mit dem Rätselraten wird das so auch nicht viel bringen. Auf blöd mal einen Pixel aufschneiden (Das Epoxy) und nachsehen. Oder halt den Verkäufer fragen, wobei nicht klar ist ob der das überhaupt weiss.


    Ansonsten auch mal andere Software ausprobieren, FastLED ist ja nicht das einzige.

  • Moin, der Arduino Code sieht erstmal okay aus. Daran sollte es nicht liegen. Der Code sollte aber nur die erste LED auf rot setzen und dann wieder aus und wieder ein. Kannst Du vielleicht mal ein Foto von deiner Verkabelung machen und uploaden? Das könnte hilfreich sein ;)


    Ich glaube irgendwie, dass deine Massen (GND) nicht alle richtig miteinander verbunden sind. Außerdem solltest du Vorwiderstände zwischen Clock und Data und den Arduino bauen! Es kann auch sein, dass deine erste LED in der Kette den Geist aufgegeben hat und nicht mehr richtig funktioniert.
    Der Vorwiderstand kann irgendwo bei 300~500 Ohm liegen, ich nehme eigentlich immer 470 Ohm.


    Kann also sein, dass die erste LED abgeschnitten werden muss. Nimm auf jeden Fall an beiden Leitungen einen Vorwiderstand!
    Läuft dein Nano mit 5 oder mit 3,3 Volt? Sollte zwar eigentlich kein Problem darstellen, aber manchen LEDs könnten die 3,3 Volt zu wenig sein.


    Was du vor hast ist eigentlich nicht schwer und sollte problemlos laufen.


    Ich habe eigentlich genau das gleiche wie Du gemacht:


    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Nur das es ein Arduino UNO ist und ich 50 WS2811 verwendet habe ;) Läuft auch ohne Probleme mit einer Powerbank. Die Powerbank liefert 2 A und hat 10.000 mAh. Lief mehrere Stunden ohne Probleme.


    Für mein nächstes Projekt werde ich eine Powerbank verwenden die über 22.000 mAh hat und auf zwei USB Ports jeweils 2A gleichzeitig ausgeben kann.
    Damit komme ich dann gerade so hin ;)

  • Bild 1
    Bild 2


    auf dem ersten Bild meine Belegung auf dem Arduino, auf dem Zweiten sind die drei Blauen aus Bild 1 (hatte keine anderen Farben zur Verfügung), oben aus dem Bild raus geht die Stromversorgung via USB, unten links raus (rot und blau) sind einfach nur zwei Adern die ich mir gelegt habe, falls ich sie brauche. Liegen zur Zeit einfach frei.


    An Vorwiderstände habe ich noch gar nicht gedacht. Der Nano läuft mit 5V über den Mini USB Anschluss, habe eine Powerbar mit zwei USB Ports, ein mal auf LEDs, ein mal auf Arduino.

  • Ich habe die LEDs bei mir direkt an den Arduino angeschlossen, also rot an den 5 Volt Pin, weiß an Daten (Daten Pin) [bei Dir halt Data und Clock also zwei] und blau an Masse (GND). Das könnte bei 100 allerdings kritisch werden, bei 50 läuft das. Aber dazu müsstest Du vielleicht nochmal googlen, wie viel Ampere dieser Ausgang vom Arduino liefern kann.


    Vielleicht kannst Du das ja auch mit ein paar LEDs ausprobieren. Macht die Verkabelung recht einfach.


    Jo 5V haust du über USB in den Nano rein, aber was kommt wieder raus? ;) bei eBay steht, dass der wohl beides kann, hat der nen Jumper oder sowas?
    Schalter? Weil wenn der auf 3V steht, dann kommen 3V aus deinem Datenpin vom Arduino, vielleicht zu wenig für die LEDs.


    Verbinde einfach das Blaue Kabel mit einem zweiten Kabel etc., dass in den GND vom Arduino geht.

  • Jo 5V haust du über USB in den Nano rein, aber was kommt wieder raus? ;) bei eBay steht, dass der wohl beides kann, hat der nen Jumper oder sowas?
    Schalter? Weil wenn der auf 3V steht, dann kommen 3V aus deinem Datenpin vom Arduino, vielleicht zu wenig für die LEDs.


    Gibt keinen Schalter oder sowas, nur für Reset, sonst finde ich da gar nichts was ich mechanisch schalten kann. Ist das vielleicht der 3V3 Pin?


    Verbinde einfach das Blaue Kabel mit einem zweiten Kabel etc., dass in den GND vom Arduino geht.


    Sorry, versteh ich gerade nicht, ich bin ja schon ein mal mit Blau von der ersten LED auf das USB Kabel in der Powerbar und ein mal auf das GND vom Arduino

  • Okay wenn du schon mit den LEDs an GND beim Arduino bist ist alles gut :)


    Ne den 3V3 Pin hat jeder Arduino, ich meine wenn der Arduino mit 3V arbeitet, dann kommen 3V aus jedem Pin ;)
    Also aus den digitalen Pins etc.


    Häng die LEDs mal einmal nur an den Arduino, also an den 5V Pin, an Clock und Data und GND, so das der Arduino die mit Strom versorgt.
    Aber bitte nur mit max 50 LEDs und auch nur wenn der Arduino an der Powerbank ist, ein USB-Port(PC) liefert nur 500-900mA.


    Ich würde sonst nochmal probieren andere Pins von Arduino zu verwenden.


    Ich hatte mal WS2801 die auch nie liefen, dann habe ich Clock und Data einfach vertauscht und die liefen... ;)


    Ich schicke Dir sonst morgen oder so nochmal nen anderen Arduino Testcode.

  • Zitat

    bei eBay steht, dass der wohl beides kann, hat der nen Jumper oder sowas?


    Man muss sich die TTL Spannung aussuchen, ist also fest, da das über den TSOP Spannungswandler gemacht wird.


    @TO:


    Wieviel liegt denn genau am 5V Pin an?


    Zitat

    Aber bitte nur mit max 50 LEDs und auch nur wenn der Arduino an der Powerbank ist, ein USB-Port(PC) liefert nur 500-900mA.


    http://blog.kriegsman.org/2014/02/25/2-amp-nano/


    8|


    Wenn dann die 3.3V Problematik geklärt wurde und auch nicht zutrifft:


    Ich hab mir nochmal die Bilder angesehen, und irgendwie werde ich das Gefühl immer noch nicht los, dass du von der falschen Seite einspeist.


    Eigentlich alle mir bekannten Pixel speisen von der Chip-Seite her ein, deine Pixel werden laut Bild von der nicht-Chipseite her befeuert. Wie gesagt, das kann eine Eigenart sein, komisch ist es aber trotzdem.

  • Zitat

    Aber bitte nur mit max 50 LEDs und auch nur wenn der Arduino an der Powerbank ist, ein USB-Port(PC) liefert nur 500-900mA.


    http://blog.kriegsman.org/2014/02/25/2-amp-nano/


    8|


    Okay, krass danke, dass Du das nochmal nachgeschaut hast, aber wenn man nicht alle auf weiß setzt und nicht alle LEDs gleichzeitig an sind sollte es
    keine Probleme geben ;) Aber so knapp sollte man eher nicht kalkulieren, da hast Du schon recht.
    Bei dem Arduino Uno klappt es mit 50, aber waren nie alle weiß.



    Zur 3V Problematik siehe Post 3:
    http://forum.fhem.de/index.php?topic=27900.0


    Aber ich denke die 3V sind wahrscheinlich hier nicht das große Problem.

  • Zitat

    Aber ich denke die 3V sind wahrscheinlich hier nicht das große Problem.


    Hm, wenn das wirklich ein 3.3V ist, dann gehen die WS Pixel natürlich nicht.


    Das Problem ist halt, wenn man nichts explizit angibt werfen die Händler einem gerne einen 3.3er in den Umschlag, wenn sie davon zuviele auf Lager haben - weil die so selten gebraucht werden (vllt für OLED etc) aber die meisten 5V brauchen.


    Aber hier sind so viele Fragen ungeklärt, da muss man stufenweise vorgehen. Warten wir mal auf den OP


    Zitat

    Bei dem Arduino Uno klappt es mit 50, aber waren nie alle weiß.


    Der hat auch einen etwas fetteren Wandler drin, aber du hast schon recht, entweder es geht, oder es knallt.

  • Hallo zusammen!
    Hatte erst heute die Gelegenheit weiter zu basteln, sonst hätte ich mich früher gemeldet.


    Ein bisschen weiter bin ich schon. Anscheinend war wirklich die Kennzeichnung falsch, habe jetzt von der anderen Seite eingespeist und es gibt Fortschritte zu verbuchen!
    Das ganze läuft, einigermaßen. Das Blink Programm läuft, allerdings nur auf der allerersten LED.
    Egal ob ich 1, 2, 10, 50, 100 einstelle, nur die erste LED blinkt. Aber zumindest funktioniert schon mal das Programm, kann Farben usw. ändern, das geht!
    Nur wieso lässt sich nur die erste LED ansteuern?
    In der Restlichen Kette leuchten aber ein paar LEDs dauerhaft, wie vorher also, nur lassen die sich nicht ansteuern.


    Grüße