LED-Ring (WS2812) ansteuern

Hallo,

ich habe einen Arduino Uno und einen LED-Ring mit sieben Pixeln (WS2812, sh. https://funduinoshop.com/bauelemente/aktive-bauelemente/leds-und-leuchten/led-ring-mit-7-pixeln-ws2812).

Angeschlossen ist das ganze wie folgt:
IN -> D6
VCC -> 5V
GND -> GND

Ich habe die LEDs sowohl mit der NeoPixel Library als auch mit der FastLED Library getestet, bei beidem leuchtete keine der sieben LEDs.

Mein aktuell verwendeter Code funktioniert auch nicht:

/*
NeoPixel LEDs

modified on 7 May 2019
by Saeed Hosseini @ Electropeak
**This code is based on Adafruit NeoPixel library Example**
https://electropeak.com/learn/

*/

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif

#define PIN      6
#define NUMPIXELS 7


Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

#define DELAYVAL 500 // Time (in milliseconds) to pause between pixels

void setup() {
pixels.begin();
}

void loop() {
pixels.clear();
pixels.setBrightness(100);
pixels.setPixelColor(0, pixels.Color(255, 255, 255));
pixels.setPixelColor(1, pixels.Color(255, 0, 0));
pixels.setPixelColor(2, pixels.Color(0, 255, 0));
pixels.setPixelColor(3, pixels.Color(0, 0, 255));
pixels.setPixelColor(4, pixels.Color(255, 0, 255));
pixels.setPixelColor(5, pixels.Color(255, 255, 0));
pixels.setPixelColor(6, pixels.Color(0, 255, 255));
pixels.show();
}

Was mache ich falsch? Oder sind vielleicht die LEDs kaputt?

LG, Richard

Did you mean to use that delay value you defined? Right now, immediately after the pixels.show(), your loop() function loops and does the clear. It may not stay on long enough to see…

I tried it without the pixels.clear(); and also with a delay after pixels.show(); but it still dont work.

So blinkt es bei mir:

void loop() {
  pixels.setBrightness(100);
  pixels.setPixelColor(0, pixels.Color(255, 255, 255));
  pixels.setPixelColor(1, pixels.Color(255, 0, 0));
  pixels.setPixelColor(2, pixels.Color(0, 255, 0));
  pixels.setPixelColor(3, pixels.Color(0, 0, 255));
  pixels.setPixelColor(4, pixels.Color(255, 0, 255));
  pixels.setPixelColor(5, pixels.Color(255, 255, 0));
  pixels.setPixelColor(6, pixels.Color(0, 255, 255));
  pixels.show();
  delay(1000);
  pixels.clear();
  pixels.show();
  delay(1000);
}

Hast Du zwischen UNO und Ring einen Widerstand? Wenn nicht, hast Du Dir eventuell den ersten Pixel zerschossen.

Habe ich ausprobiert, geht aber immer noch nicht. Vielleicht ein Problem mit der Bibliothek?

Ein Widerstand habe ich nicht benutzt, angegeben ist eine Betriebsspannung von 4 bis 7V.

Der Widerstand gehört zwischen UNO Pin 6 und DIN vom Ring. Ohne diesen kann der Eingang zerstört werden.

Betriebsspannung 5 V.

Sind die Leds bei dir auf der Rückseite alle verdrahtet ?

Wenn man Masse (Minuspol) und Datenpin anschließt aber Versorgungsspannung (5V) wegläßt geht die erste LED kaputt. Ein 330 Ohm Widerstand zwischen D6 und Din des Ringes verhindert das.
Wenn Du die erste LED kaputtgemacht hast kannst Du diese auslöten und die zweite ansteuern.
Grüße Uwe

Alles klar, danke für den Hinweis.