6 LEDStreifen mit einen ESP32 gleichzeitig ansteueren

Ich habe ein Problem mit der Ansteuerung der LED-Streifen mit meinen ESP32S3. Die ersten vier funktionieren super und an den letzten beiden funktioniert gar nichts.
Hier ist mein Code:

#include <Adafruit_NeoPixel.h>

// Anzahl der LEDs pro Strip
#define NUM_LEDS 30
// Anzahl der Strips
#define NUM_STRIPS 6

// Pins für jeden Strip
int stripPins[NUM_STRIPS] = {5, 18, 19, 21, 22, 23};

// LED-Strips definieren
Adafruit_NeoPixel strips[NUM_STRIPS] = {
  Adafruit_NeoPixel(NUM_LEDS, stripPins[0], NEO_GRB + NEO_KHZ800),
  Adafruit_NeoPixel(NUM_LEDS, stripPins[1], NEO_GRB + NEO_KHZ800),
  Adafruit_NeoPixel(NUM_LEDS, stripPins[2], NEO_GRB + NEO_KHZ800),
  Adafruit_NeoPixel(NUM_LEDS, stripPins[3], NEO_GRB + NEO_KHZ800),
  Adafruit_NeoPixel(NUM_LEDS, stripPins[4], NEO_GRB + NEO_KHZ800),
  Adafruit_NeoPixel(NUM_LEDS, stripPins[5], NEO_GRB + NEO_KHZ800)
};

// Helligkeit (kann angepasst werden)
int brightness = 50; // Wert zwischen 0 und 255

void setup() {
  // Initialize all LED strips
  for (int i = 0; i < NUM_STRIPS; i++) {
    strips[i].begin();
    strips[i].setBrightness(brightness);
    strips[i].show(); // Alle LEDs aus
  }
}

void loop() {
  // LEDs der Reihe nach einschalten
  for (int j = 0; j < NUM_LEDS; j++) {
    for (int i = 0; i < NUM_STRIPS; i++) {
      strips[i].setPixelColor(j, strips[i].Color(255, 0, 0)); // Beispiel: rot
      strips[i].show();
    }
    delay(50); // Verzögerung zwischen LEDs
  }
  delay(500); // kurze Pause nach dem Aufleuchten aller LEDs

  // Alle LEDs ausschalten
  for (int i = 0; i < NUM_STRIPS; i++) {
    strips[i].clear();
    strips[i].show();
  }
  delay(500); // Pause, bevor die LEDs wieder hochlaufen
}

Ich bin wirklich ratlos.

Gruß Tim

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

Kannst du mal andere Pins probieren?

Vielen Dank für die schnelle Antwort. Ja hab schon gefühlte alle Pins durchprobiert, hab Wiederstände in Reihe geschaltet, aber nichts hat leider geholfen.

Ich habe mit einem ESP32 Dev Kit probiert, da funktionieren alle sechs Streifen.

Am Programm liegt es also nicht.

Die Pins GPIO22 und GPIO23 kann ich beim ESP32S3 allerdings nicht finden:

Das schützt die Pixel vor Schaden, bringt aber keine Streifen zum Leuchten.

Wie sieht die Stromversorgung aus?
Hast Du die Streifen vertauscht? Bleiben immer die gleichen Streifen aus oder immer die an bestimmten pins?

Grüße Uwe

Super :smiley:
fragt sich nur noch woran es bei mir liegt. Ich verwende einen ESP32-S3-Tiny von Waveshare und verwende die GPIOs 1, 3, 5, 14, 16, 18, die anderen Pin stehen wahrscheinlich nur noch im Programm weil ich viel unterschiedliche Pin ausprobiert habe.

Ich speise die LED-Streifen über ein externes Labornetz das auf 5V eingestellt ist, Strombegrenzung ist noch nicht erreicht.
Es bleiben immer die LED-Streifen aus die im Programm als letztes aufgerufen werden.

Und du hast auch GND (-) des Netzteils mit GND des ESP verbunden ?

Ich verstehe immer nicht, warum man nicht nur einen Pin benutzt, die Streifen in Reihe schaltet und einfach im Programm die LEDs mit einen Offset ansteuert.

Dazu könnte auch noch das 3.3V / 5V Problem kommen.

Ich verwende IDE 1.8.19, ESP32 Core 2.0.17. Manche Bibliotheken kommen mit neueren Versionen noch nicht klar, wäre eine Möglichkeit.

1 Like

Das Ding was ansteuern willst hat kein DO oder weniger Verdrahtungsaufwand...

Lag tatsächlich an den Versionen vielen Dank

Gruß Tim

Danke für Deine Rückmeldung :slightly_smiling_face:

Je nach gewünschten Animationen könnte die Bibliothek FastLED eine Alternative bieten.

APA102 ermöglichen ca. zehnfach schnellere Animationen.

Bei vielen Pixeln fließt bei WS2812b recht viel Strom, was dicke Kabel benötigt. WS2815 werden wie WS2812b angesteuert, wegen einer Versorgung mit 12 V fließt aber weniger Strom (10 bis 15 mA je Pixel).

Nur Anregungen :wink:

Wäre jetzt auch interessant für alle Mitlesenden, welche Versionen bei dir jetzt funktionieren.