WS2813 am ESP8266 leuchten nicht

Moin,

heute wollte ich mal meine beiden 5m WS2813 am ESP8266 in Betrieb nehmen.
Leider scheitere ich bisher komplett daran.

Hab mir ein 5V 30A Netzteil geholt, 2x 5m WS2813 Streifen, usw.
Getestet habe ich die Streifen schon mit einem kleinen Hardwarecontroller für 2-3€uro.
Funktioniert alles mit dem Controller, kein Problem.

Nu wollte ich aber selber loslegen mit dem programmieren, und da ist es mir bisher nicht gelungen auch nur eine LED zum leuchten zu erwecken.

Ich will nicht gleich alle 600 Leds in weiss volle Pulle aufreissen, sondern erstmal nur ausprobieren ob ich einzelne LEDs ansteuern kann.
Ich habe erstmal nur einen Streifen angeschlossen, und wollte von dem auch nur die ersten 10 LEDs ansteuern.

Dazu hab ich mir dann nacheinander zunächst die FastLED und danach die Adafruit Neopixel Library geholt und mit beiden rumprobiert. ....aber.... nix kommt dabei raus.

Den Streifen habe ich an D2 vom ESP8266 angeschlossen.
Das ist doch in Arduino der PIN 4, richtig?

Am D2 hab ich dann einen 330 Ohm Widerstand und der ist dann mit dem Streifen an DIN verbunden.
Außerdem ist ein GND vom ESP8266 mit dem GND des Streifens verbunden.
VIN vom Streifen habe ich nicht mit dem ESP8266 verbunden.

Der ESP8266 ist über USB mit dem Computer verbunden (so funktioniert er einwandfrei z.B. mit einem 3,5" Display daran, sollte also auch kein Problem sein.

Und dann habe ich aus der FastLED Library das Beispiel Blink aufs nötigste reduziert:

#include "FastLED.h"
#define NUM_LEDS 10
#define DATA_PIN 4
CRGB leds[NUM_LEDS];

void setup() { 
      // FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
      FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
      //FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
  	  // FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
}

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

Aber nix passiert.

Was kann denn das Problem sein?

Ist die Einschaltreihenfolge egal?
Oder muss erst der Controller oder erst die LEDs mit Strom versorgt werden?
Wie muss ich einen WS2813 korrekt deklarieren? Als WS2811, WS2812, WS2812B oder NEOPIXEL? Weiss jemand was da der Unterschied ist?

Lieben Gruß,
Chris

Das wäre ja mal toll, wenn du uns auch schreibst, welchen ESP8266 du verwendest.

Und hast du das auch schon an einem Arduino getestet ?

Ach die 13-ener.
Wenn der Strip nicht mit einem Arduino funktioniert dann schneide das erste WS2813 ab und versuch es mit dem nächsten

Grüße Uwe

Moin,

einen Arduino habe ich leider nicht. Nur nodemcu v2.

Lieben Gruß,
Chris

  1. wie lang ist das Kabel vom ESP zur ersten LED?
  2. Bild vom Aufbau wäre nützlich
  3. versuch mal statt "4" "D2" zu nutzen
  4. lädt er das Programm eigentlich auch hoch?

PS:
5. versuch mal, die 2. LED anzusteuern, nicht die 1.

Soweit ich weiß sind die LEDs nicht TTL Pegel kompatibel.
Daher erkennen die bei 5V Versorgungsspannung die 3.3V aus deinem ESP nicht als HIGH.

Was du brauchst ist ein Pegewandler der dir die 3.3V auf 5V ummünzt.
Für sowas sollte sich ein SN7408 missbrauchen lassen.

Dazu verbindest du den ESP Pin der die LEDs steuern soll mit beiden Eingängen eines der 4 AND Gatter im Chip und den Ausgang dieses Gatters verbindest du mit dem DIN deiner LEDs
(natürlich musst du den CHIP auch mit 5V Spannung versorgen).

Das Kabel ist 40cm lang.
Also die LEDs sind heil, weil sie mit dem Hardwarecontroller ja funktionieren.
Das Programm lädt hoch. (Und die onboard LED geht an wenn das Sketch läuft)

themanfrommoon:
einen Arduino habe ich leider nicht. Nur nodemcu v2.

Und den verwendest du aktuell auch ?

....Ja, wieso? Was sonst?

themanfrommoon:
....Ja, wieso? Was sonst?

Warum schreibst du das nicht ?
Nicht jeder kann wissen, was du verwendest.

Nur du siehst, was auf deinem Tisch liegt.

Vom ESP8266 gibt es verschiedene Ausführungen und ein NodeMcu ist schon mal wieder was anderes, auch wenn da der ESP drauf ist.

Korrekte Angaben sind immer wichtig, wenn du schnelle und richtige Antworten erwartest.

Also nochmal für alle: nodemcu v2 mit ESP8266
(hatte im im #3 schon geschrieben)

Ich habe mir jetzt mal einen Pegelwandler bestellt.
Wenn der da ist probiere ich weiter.

Danke schon mal und liebe Grüße,
Chris

themanfrommoon:
Wie muss ich einen WS2813 korrekt deklarieren? Als WS2811, WS2812, WS2812B oder NEOPIXEL? Weiss

lt. https://www.elecrow.com/blog/ws2813-vs-ws2812/
WS2813 led have 2 data Signal

d2/4 sehe ich, wo hast die zweite Signalleitung?

Gar nicht angeschlossen. Braucht man nämlich nicht. Ich habe einen kleinen Hardwarecontroller, bei dem auch nur eine Datenleitung angeschlossen wird und alle LEDs in allen Farben leuchten. Der 2. Datenpin ist nur ein Backup, falls eine LED ausfällt. Das ist aber nicht der Fall, weil es mit dem 3poligen Hardwarecontroller ja läuft. Ich denke es liegt einfach nur an den 3,3V Logiklevel vom ESP. Deswegen hab ich mir einen Levelshfter bestellt. Werde das testen und melde mich wieder!

Der 2. Dateneingang ist dazu gedacht daß ein kaputtes LED nicht die ganze weitere Strip dunkel läßt
Der eine Eingang DI des WS2813 nimmt sich die ersten 24 Byte und stellt diese via PWM dar. Beim BI Eingang werden die ersten 24 bits ignoriert ( das würde ein vorgeschalteter, funktionierender WS2813 auch tun) und die darauffolgenden 24 dargestellt falls am DI nichts ankommt. So kann ein Ausfall eines einzelnen WS2813 nicht den Datenfluß zum nächsten unterbrechen.

Am Anfang eines Strips braucht es die daten nur am DI Eingang.
Grüße Uwe

Okay, der Level Konverter ist jetzt da.
Angeschlossen
....geht nicht :frowning:

D2 vom nodeMCU v2 habe ich verbunden mit einem 330 Ohm Widerstand, der geht dann weiter an LV1 vom Level Konverter.
HV1 vom Levelkonverter geht an DI vom LED Streifen.
GND vom nodeMCU v2 habe ich verbunden mit GND vom Level Konverter und GND vom LED Streifen.
VIN vom nodeMCU v2 habe ich verbunden mit HV vom Level Konverter.
3,3V vom nodeMCU v2 hatte ich auch mal testweise mit LV vom Level Konverter verbunden.

Was kann das Problem sein?

Lieben Gruß,
Chris

themanfrommoon:
Was kann das Problem sein?

Das deine Beschreibung schwer zu verstehen ist.
Poste doch mal ein Schaltbild inkl. Link oder Bild des Levelshifters.

  1. NodeMCU wird auch mit 5V betrieben?
  2. Hast Du schon D2 anstatt 4 probiert?

Das deine Beschreibung schwer zu verstehen ist.

?!?!?!Eindeutiger geht es doch nicht, aber bitteschön, hier ein Foto, wenn du da mehr drauf erkennst?!

  1. NodeMCU wird auch mit 5V betrieben?

Ja, über USB

  1. Hast Du schon D2 anstatt 4 probiert?

Ja, ändert nichts

Lieben Gruß,
Chris

Kannst du mal einen Link zu dem Shifter rein posten?
Das Teil sieht aus wie eines dieser I2C Pegelwandler.

Der Widerstand gehört zwischen Shifterausgang und LED
nicht zwischen PIN und Shiftereingang.
Der ist dazu da um die LED zu schützen.

Wenn das ein I2C Pegelwandler ist kannst du dir den sogar sparen.

Das erste was ich mal versuchen würde ist:
Nachschauen ob der Level Shifter überhaupt das tut was er soll.
Dazu kannst du den Pin einfach mal nur HIGH machen und am Ausgang messen
ob da auch tatsächlich 5V anliegen. Dann LOW und schauen ob am Ausgang 0V liegen

Auf dem Bild kann man die Aufdrücke auf deinem Shifter nicht sonderlich gut erkennen
aber ich glaube du hast VCC und GND falsch verbunden.
Die sollten einen Pin weiter rechts hinkommen.

Allerdings kann man da wirklich schwer was drauf erkennen also kann ich mich auch irren.

themanfrommoon:
?!?!?!Eindeutiger geht es doch nicht, aber bitteschön, hier ein Foto, wenn du da mehr drauf erkennst?!

Na toll.

Nur du kennst genau die Teile, die du verwendest.
Aber ok, du musst nichts weiter erklären bzw. zeigen.
Es gibt sicher jemand mit telepathischen Fähigkeiten, der dir deine Fehler aufzeigt.
Ich werde es nicht machen.