Ws2812B leuchten seltsam bzw.garnicht

Guten Tag,

ich bin neu hier (und auch neu in der Thematik Arduino) und habe heute endlich meine WS2812 LED's bekommen es sind 5m mit 300 LED's.
Diese habe ich an ein Netzteil mit 4.5V angeschlossen (ca. 100W),
Den Arduino Nano habe ich einmal mit und einmal ohne GRND angeschlossen (2 Versuche).

So nun zum Problem:
Als ich das Netzteil und den Arduino an den LED Stripe angeschlossen habe leuchteten ein Paar LED's (7 Stück aber nur auf den ersten 30cm).
Nachdem ich den First-light Sketch auf den Arduino geladen habe leuchtete die erste LED Weiß.
Jetzt habe ich Blink von Fast LED auf den Arduino geladen und die erste reagiert blinkend mit der Farbe die ich einstelle.
Die Anzahl der LEDs habe schon verstellt (mal mit 10 mal mit 300) ändern tut sich leider nichts.

Jetzt frage ich mich wieso die anderen 299 nicht so ganz das machen was ich möchte.
Ich habe schon viel gegooglet (deutsch und englisch), aber so richtig finde ich es nicht.

Ich wäre sehr dankbar für eure Hilfe

PS. Als Endprodukt will ich damit eine 16x16 Matrix bauen

Eine GND-Verbindung brauchst du immer.
Zeichne mal genau auf, wie du alles angeschlossen hast und poste deinen Sketch in Code-Tags.
Verwende dazu die Schaltfläche </> oben links im Editor-Fenster.

Allerdings ist dein Netzteil zu schwach.

Wenn alle leuchten soll, braucht es 5 Volt und 18 A.

Schaltplan zeigen.
Widerstand verbaut?
Kondensator verbaut?
Welcher Sketch ist in Verbindung?
ECHTBILD zeigen wie du alles angeschlossen hast.

Und mach mal einen Test mit 10 LEDs. Wenn das klappt,
erst dann probierst die restlichen 290.

Hallo,

schau mal in das Datenblatt an (VDD&VCC 6-7Volt )

WS2812 Datenblatt

Der WS2812B Controller hat eine etwas andere Spezifikation 3.5-5,3Volt.

was hast Du wirklich.?

Zudem ist es so das es auf den dünnen Kupferbahnen einen Spannungsabfall gibt. Jede Farbe der benötigt wen sie ein ist etwa 20 mA das macht 60mA für 3 Farben. Für etwa alle 30 LED solltest Du einen Einspeisepunkt für die Versorgungsspannung vorsehen und die dann von beiden Seiten. Kabel für die Zuleitung richtig auslegen. Für 300 LED benötigst Du 18A wenn alle LED an sein sollen.

Du must erst mal nicht den Streifen auseinander schneiden. benutze in der FastLED Lib als Maxanzahl für die LED´s erst mal 10-20.

Heinz

So also erstmal vielen Dank für die sehr schnellen Antworten, habe damit nicht gerechnet.

Zum Problem:

Einen Widerstand habe ich bis jetzt nicht in der Datenleitung.
Ein Kondensator pro LED ist auf dem Stripe.
Sketch von blink und FirstLight ist der neuste (Version 3.3.3) von FastLED.

Oh habe oben das B vergessen, habe die WS2812b hier von ebay:
https://www.ebay.de/itm/WS2812B-5M-5050-SMD-Digital-300-LED-Strip-Light-Addressable-Color-DC5VEF-NEU/312783311998?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

Das einstellen der Anzahl der LED's (1,5,10,20 und 300) habe ich schon probiert ändert aber nichts.

Netzteil soll auch nur für die 256 LED's der Matrix reichen,
EDIT:
Habe eben nochmal in die Bestellung geschaut und davor Ampere und Watt im Kopf verdreht habe somit nicht 20W sondern 100W, also 5v und 20 Ampere zu Verfügung.

Wie sieht es mit dem Verpolungsschutz der WS2812B aus die haben doch einen oder ? (auch wenn ich mir sehr sicher bin das ich da keinen Fehler gemacht habe)
Hier der Sketch von Blink:

#include <FastLED.h>

// How many leds in your strip?
#define NUM_LEDS 300

// For led chips like WS2812, which have a data line, ground, and power, you just
// need to define DATA_PIN.  For led chipsets that are SPI based (four wires - data, clock,
// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
// Clock pin only needed for SPI based chipsets when not using hardware SPI
#define DATA_PIN 6
#define CLOCK_PIN 13

// Define the array of leds
CRGB leds[NUM_LEDS];

void setup() { 
    // Uncomment/edit one of the following lines for your leds arrangement.
    // ## Clockless types ##
    FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);  // GRB ordering is assumed
    // FastLED.addLeds<SM16703, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<TM1829, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<TM1812, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<UCS1904, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<UCS2903, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
    // FastLED.addLeds<WS2852, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
    // FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
    // FastLED.addLeds<GS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<SK6812, DATA_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
    // FastLED.addLeds<SK6822, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<APA106, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<PL9823, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<SK6822, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<WS2813, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<APA104, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<WS2811_400, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<GE8822, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<LPD1886, DATA_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<LPD1886_8BIT, DATA_PIN, RGB>(leds, NUM_LEDS);
    // ## Clocked (SPI) types ##
    // FastLED.addLeds<LPD6803, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
    // FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // GRB ordering is typical
    // FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<WS2803, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
    // FastLED.addLeds<P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // BGR ordering is typical
    // FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // BGR ordering is typical
    // FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // BGR ordering is typical
    // FastLED.addLeds<SK9822, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);  // BGR ordering is typical
}

void loop() { 
  // Turn the LED on, then pause
  leds[0] = CRGB::Green;
  FastLED.show();
  delay(500);
  // Now turn the LED off, then pause
  leds[0] = CRGB::Black;
  FastLED.show();
  delay(500);
}

Nein, das Netzteil reicht dafür nicht aus, wurde dir ja auch vorgerechnet.
Der Widerstand muss rein, der schützt die erste Led, wenn die Spannung wegfällt, aber Daten liegen noch an.
Kondensator nicht pro Led, sondern für das Stripe.

Und mehrere Spannungsanschlüsse am Stripe vorsehen, wurde auch schon geschrieben.

Verpolschutz haben sie nicht.

Gruß Tommy

bjoern1701:
Nachdem ich den First-light Sketch auf den Arduino geladen habe leuchtete die erste LED Weiß.

Abgesehen von der Farbe, die Grün sein sollte, macht das Progranm genau das: Ein Pixel ein- und ausschalten. Alle restlichen Pixel werden nicht verändert.

Du verwechselst FirstLight mit Blink.

Hallo,

also einen Widerstand in der Datenleitung solltst Du schon verwenden, er schützt die erste LED für den Fall das die Datenleitung auf H liegt und die 5V für die Versorgung noch aus ist.

also wenn Du den Sketch verwendest blinkt die erste LED , soweit klapp das ?

wenn Du im Loop anstelle leds[0] da leds[1] verwendest sollte die zweite LED bliken. usw. Das geht nicht ?

dann würde ich annehmen das die erste LED defekt ist und die Daten nicht auf D0 weiter gibt.

Heinz

Leider kann ich gerade keine Anhänge dranhängen dann kommt immer "413 Request entity too large".

OK dann war das wohl mit dem Verpolschutz falsch was ich mal gelesen habe.

Das mit dem Netzteil hatte ich falsch geschrieben und jetzt berichtigt es sind 100W und nicht wie davor 20W.

Den Widerstand werde ich mal einbauen, am besten einen 330 Ohm nehmen oder ?

Das mit den Spannungsanschlüssen will ich später in der Matrix auch machen.
Mir würde es vorerst ja reichen wenn die ersten 20-30 wie gewünscht funktionieren, dann kann ich alles zerteilen und verlöten, aber solang das nicht geht will ich ungern den Stripe zerschneiden bzw. mit weiteren Kabeln versehen.

Leider tut sich wenn ich 0 auf 1 im Loop änder auch nichts.

Mich beschleicht leider so langsam das Gefühl das Entweder der Stripe kaputt angekommen ist oder ich ihn kaputt bekommen habe.

Danke für Die Hilfe und schnellen Antworten

Gruß Björn

Hallo,

Nochmal !! Du schreibst das die erste LED blinkt mit Deinem Sketch. das tut sie weil da einen 0 in der [] klammer steht. wenn Du eine 1 da verwendest sollte die zweite blinken.

Wenn das mit der ersten geht, mit der 2. aber nicht ist möglicherweise die erste LED kaputt. der Widerstand kann auch 1 KOhm sein geht auch den solltest Du aber auf jeden Fall benutzen.

Heinz

So Also 3k OHm widerstand ist eingebaut und das gleiche Problem
Dann habe ich die erste LED, mal übersprungen sprich kabel neu angelötet.

Desweiteren habe ich auch die 0 durch eine 1 in der [] ersetzt und es blinkt die 2 auch nicht

Ich vermute das der Stripe defekt ist durch mich oder das er schon defekt ankam.

Somit werde ich mich mal mit dem Verkäufer in verbindung setzen und es klären.

Vielen Dank für die schnellen und hilfreichen Antworten bei zukünftig aufkommenden Fragen wende ich mich gerne wieder an das Forum.

mit freundlichen Grüßen

Björn

Hi

Wenn Du das Daten-Signal zwischen der ersten und der zweiten LED einspeist, arbeiten die Signale Deines Arduino und das (stehende) Signal der ersten LED gegeneinander - ob Das so gut ist?

Dann sollte man zumindest eine Ahnung haben, was der Sketch wohl macht.
Also, daß die Zeile leds[0] = CRGB::Green; wohl die LED 'Null' in die Farbe 'grün' färbt.
Mich hätte Es hier eher verwundert, wenn sich irgend eine andere LED, als die Erste (man fängt hier bei Null mit Zählen an) irgend welche Veränderungen gezeigt hätte.

MfG

Rentner:
Hallo,

schau mal in das Datenblatt an (VDD&VCC 6-7Volt )

WS2812 Datenblatt

Das Datenblatt ist sehr schlecht gemacht. Es fehlen Daten und die Vorhandenen sind ungünstig plazziert.

Der von Dir zitierte Wert ist der : "AbsoluteMaximumRatings" und nicht die Nennspannnung. Diese beträgt 5V.
Grüße Uwe