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);
}
}