Two LED strips, only one works

I have 2x SK6812 RGB (5V) strips, very densely pixelated. I use a 330Ohm resistor for the data pin and I am powering my Arduino with an external 5V power source. LEDs are plugged into arduino's 5v and gnd.

My problem is that only one LED strip work (one on pin 6). I tried to run the code only using pin 8 and it was working as well. But two strips at the same time just wont work.

The only recommended thing I am missing is an external power source with 1000uF capacitor for the LEDs (I've tried with the one I have but I dont have the recommended 1000uF capacitor and it was glitching a lot). Can that be the problem?

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

// Which pin on the Arduino is connected to the NeoPixels?
#define PIN      6   // On Trinket or Gemma, suggest changing this to 1
#define PINB     8

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 500 // Popular NeoPixel ring size

// When setting up the NeoPixel library, we tell it how many pixels,
// and which pin to use to send signals. Note that for older NeoPixel
// strips you might need to change the third parameter -- see the
// strandtest example for more information on possible values.
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels2(NUMPIXELS, PINB, NEO_GRB + NEO_KHZ800);

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

void setup() {
  // These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
  // Any other board, you can remove this part (but no harm leaving it):
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
#endif
  // END of Trinket-specific code.
 pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
  pixels2.begin();
}

void loop() {
 pixels.clear(); // Set all pixel colors to 'off'
  pixels2.clear();

  // The first NeoPixel in a strand is #0, second is 1, all the way up
  // to the count of pixels minus one.
  for(int i=0; i<NUMPIXELS; i++) { 

   pixels.setPixelColor(i, pixels.Color(0, 0, 150));
   pixels.show();   

    pixels2.setPixelColor(i, pixels2.Color(0, 150, 0));
    pixels2.show();   

    delay(DELAYVAL); 
  }

  
}

How many pixels are on each strip? Your code says 500 (NUMPIXELS). The strips will most likely require an external power source as each pin of the Arduino is good for max of 40mA.

Have you swapped the LED thingies to see if the not work one works in the work ones place?

The only recommended thing I am missing is an external power source

#define NUMPIXELS 500 // Popular NeoPixel ring size

Please post a link to where you bought a NeoPixel ring with 500 LEDs. I've never heard of one so big, despite their apparent popularity. A 500 pixel ring would need a 30 Amp power supply. An Arduino can supply 0.5A at most.

each pin of the Arduino is good for max of 40mA.

Not relavent.

The comment 'popular ring size' was in the example sketch :stuck_out_tongue: I just have SK6812 dense LEDs which I got as a gift so I dont have a link. But its a normal strip, around 3 meters long

karoathome:
I just have SK6812 dense LEDs which I got as a gift so I dont have a link.

Do the pixels almost touch each other like 144 leds/meter or farther apart like 60 leds/meter?

karoathome:
But its a normal strip, around 3 meters long

Each strip is 3 meters long?

karoathome:
...dense LEDs... normal strip

So is it normally dense or densely normal? :stuck_out_tongue:

Point is... if you give vague details you get vague answers. Or just more questions. Please take the hint.

karoathome:
I am powering my Arduino with an external 5V power source. LEDs are plugged into Arduino's 5v and gnd.

Sorry, that does not make sense,

The external 5 V source must connect directly to the LED strips. It must also connect to the Arduino's "5V" pin and ground. Are you connecting it some other way? :roll_eyes:

karoathome:
I have 2x SK6812 RGB (5V) strips, very densely pixelated. I use a 330Ohm resistor for the data pin and I am powering my Arduino with an external 5V power source. LEDs are plugged into arduino's 5v and gnd.

My problem is that only one LED strip work (one on pin 6). I tried to run the code only using pin 8 and it was working as well. But two strips at the same time just wont work.

The only recommended thing I am missing is an external run 3 power source with 1000uF capacitor for the LEDs (I've tried with the one I have but I dont have the recommended 1000uF capacitor and it was glitching a lot). Can that be the problem?

#include <Adafruit_NeoPixel.h>

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

// Which pin on the Arduino is connected to the NeoPixels?
#define PIN      6   // On Trinket or Gemma, suggest changing this to 1
#define PINB     8

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 500 // Popular NeoPixel ring size

// When setting up the NeoPixel library, we tell it how many pixels,
// and which pin to use to send signals. Note that for older NeoPixel
// strips you might need to change the third parameter -- see the
// strandtest example for more information on possible values.
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels2(NUMPIXELS, PINB, NEO_GRB + NEO_KHZ800);

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

void setup() {
 // These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
 // Any other board, you can remove this part (but no harm leaving it):
#if defined(AVR_ATtiny85) && (F_CPU == 16000000)
 clock_prescale_set(clock_div_1);
#endif
 // END of Trinket-specific code.
pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
 pixels2.begin();
}

void loop() {
pixels.clear(); // Set all pixel colors to 'off'
 pixels2.clear();

// The first NeoPixel in a strand is #0, second is 1, all the way up
 // to the count of pixels minus one.
 for(int i=0; i<NUMPIXELS; i++) {

pixels.setPixelColor(i, pixels.Color(0, 0, 150));
  pixels.show();

pixels2.setPixelColor(i, pixels2.Color(0, 150, 0));
   pixels2.show();

delay(DELAYVAL);
 }

}

The external 5 V source needs to connect directly to the LED strips.