Controlling single color WS2811

Hello Arduino community,

I’m currently working on a project with single color (white) WS2811 LED strips: link
I’m not sure which library I need to use for this strip, at the moment I’m trying to make it work with the FastLED library because the chipset is listed in the compatibility list. However I’m not getting any result. If a kind soul could help me out here, it would be much appreciated.

Picture of the wiring:

Code:

#include <FastLED.h>
#define LED_PIN 2
#define LED_COUNT 2

CRGB leds[LED_COUNT];

void setup() {
  FastLED.addLeds<WS2811, LED_PIN>(leds, LED_COUNT);
}

void loop() {
  leds[0] = CRGB(255,255,255);
  leds[1] = CRGB(255,255,255);
  FastLED.show();
}

FastLED should be suitable and I can't see a problem with your sketch.

You should check that the psu is outputting the correct voltage and that the voltage is the same at the start of the strip. Also try a resistor between the arduino pin and the strip, for example 330R but the exact value is not critical. Also, pushing a bare wire into the arduino pin socket may not be making good contact. Test each wire for continuity.

If that does not help, can you try another short section of strip, in case the first is faulty or damaged.

Alright I tried all your suggestions but still no result. Voltage from PSU, beginning and end of the strip is all 12.15V. I also put a 330R resistor between de data wire and the arduino but nothing changed. I also checked all wires for continuity, all good there. However when I started poking the soldered wired at the beginning of the strip in different combinations the suddenly turn on, also when I touch the metal parts on the led strip they faintly emit light. Not sure is that means anything. I guess the only thing left could be a faulty strip? Any other suggestions?

Could be faulty strip. Could be bad solder joints. Maybe cut that strip in the picture in half and solder new wires to the second half.

You seem to have just shoved the data wire into the socket of the Arduino. It is best to use the right type of pin and a small strip of it for added stability. Then you can solder the wire to that and know you have made good contact.

I tried a new strip, new wires, still not result...

Edit: Turns out pin D2 was faulty somehow?

Are you saying it is now working correctly, with another pin? That's something we should have suggested trying, sorry. Try connecting an ordinary led & series resistor to pin 2 and run the blink sketch to test the pin.

Yes it’s working now, all PWM pins work except for pin 2. The LED just stays on when running the blink test. It’s okay, I should have thought of this myself. In case anyone ever comes across this thread using the same type of LED strip, here is the code I ended up using:

#include <Adafruit_NeoPixel.h>

#define LED_PIN    7
#define LED_COUNT 1

Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_RGB + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.show();
}

void loop() {
  for(int i = 0; i < 256; i++) {
    strip.setPixelColor(0, i, i, i);
    strip.show();
    delay(10);
  }
}

Sounds like faulty or damaged pin 2.

PWM pins not required for Neopixel library, you can use any pin with digital output, even A0, A1 etc.