Two Neopixel

Hello,
I have a little Problem with my Neopixels.
On Pin 7 i have one Row of 58 Leds and on Pin 9 are 23 leds.
First i tried:

Adafruit_NeoPixel strip = Adafruit_NeoPixel(58, PIN, NEO_RGB + NEO_KHZ800);
Adafruit_NeoPixel stripzwei = Adafruit_NeoPixel(23, PINzwei, NEO_RGB + NEO_KHZ800);

for the initialisation

But the problem ist, that only one of them made the things i programmed. On the other Strip only about 5 Leds were eluminated.

So then i tried only the strip which doesen't work correct. And then both of the Strips worked.
I have no idea why both of them are working? I definded just the Datapin of one Strip.

Chip: WS2812S
The first one runs with 12V
And the other one with 5V

I use a arduino Mini Pro Atmega 168

Thanks and sorry for my bad english

12V? I believe WS2812B or WS2812 are only 5V devices.

See page 3.

Which string is the one that came up short?
What did you do to run it by itself?
Yeah, get that 12V off of there.

ok i'm sorry
the long strip: Ebay Led
Chip one: WS2811 5V (Chip and LED are one part)
and the other on is from a store: WS2811S 12V (one chip for 3 Leds)

Another Problem is that one of the LEDs are RGB and the others GRB I think.
Is it posible, that there is a intern link in the Atmega between Outputs 7 and 9?

Powet supply is from a pc,
1000uf between + an GND
330 Ohm before Data

Programm is from the adafruit library

the 12 V Strip has two GND pins
Here is the picture:
Pic

Picture is sadly useless - not centred, not focused, unable to read the chip designation - you better spell it out for us. We can see however that it is marked for a 12V supply and uses LEDs in series groups of 3.

CrossRoads:
12V? I believe WS2812B or WS2812 are only 5V devices.
http://www.adafruit.com/datasheets/WS2812.pdf
See page 3.

Yes, but note that VDD is the separate LED supply. It is maximum 7V since this device contains only one LED per channel. If there were three in series, that supply would be 12V. Note on the 12V strip, the extra components that are required for the VCC line when running at 12V.

OP? We need your full code! Use "code" tags - the first icon above the preview window. Your power supply is however, presumably correct.

Only the standard Neopixel Library for testing.

#include <Adafruit_NeoPixel.h>
#include <avr/power.h>

#define PIN 9

// Parameter 1 = number of pixels in strip
// Parameter 2 = Arduino pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(23, PIN, NEO_RGB + NEO_KHZ400);

// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across
// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input
// and minimize distance between Arduino and first pixel.  Avoid connecting
// on a live circuit...if you must, connect GND first.
uint32_t aus =(0,0,0);
uint32_t brightwhite =(255,255,255);
void setup() {
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop() {
 

  
  lauflicht(strip.Color(127,127,127),100);
  explosion(strip.Color(255,255,255),1);
  delay(50);
  alloff();
  delay(50);

}

void alloff()
{
  for(uint16_t i=0; i<strip.numPixels(); i++)
{
  strip.setPixelColor(i,aus);
}
}
void lauflicht(uint32_t c, uint8_t wait)
{
for(uint16_t i=0; i<12; i++)
{
  strip.setPixelColor(i,c);
  strip.setPixelColor((23-i),c);
  
  strip.show();
  delay(wait);
  strip.setPixelColor(i,aus);
  strip.setPixelColor((23-i),aus);
  
  }
  
}
void explosion(uint32_t c, uint8_t wait)
{
  for(uint16_t i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, c);
      strip.show();
      delay(wait);
  }
    
}
  
  
  
// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, c);
      strip.show();
      delay(wait);
  }
}

void rainbow(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) {
    for(i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i+j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel
    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) {
  for (int j=0; j<10; j++) {  //do 10 cycles of chasing
    for (int q=0; q < 3; q++) {
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, c);    //turn every third pixel on
      }
      strip.show();
     
      delay(wait);
     
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}

//Theatre-style crawling lights with rainbow effect
void theaterChaseRainbow(uint8_t wait) {
  for (int j=0; j < 256; j++) {     // cycle all 256 colors in the wheel
    for (int q=0; q < 3; q++) {
        for (int i=0; i < strip.numPixels(); i=i+3) {
          strip.setPixelColor(i+q, Wheel( (i+j) % 255));    //turn every third pixel on
        }
        strip.show();
       
        delay(wait);
       
        for (int i=0; i < strip.numPixels(); i=i+3) {
          strip.setPixelColor(i+q, 0);        //turn every third pixel off
        }
    }
  }
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else if(WheelPos < 170) {
    WheelPos -= 85;
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  } else {
   WheelPos -= 170;
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  }
}

with this Programm the whole 12V Strip works and the 23 first leds of the 5V one.
When i change number of Pixels to 58 all of the Leds on both strips are working. But I don't know why. There should work only the Strip which is connected to Pin 9. When only one Data Pin is connected only this strip is working.
There is no connection between the Data Pins of both strips!

I bought the 12V one in a set with powersupply and Conroller.
I don't have a device for making a picture of the chip. It is very hard to read and when you cut of the silicon the half of letters (ink) is pulled away and you can't read anything.
I don't think that there is a porblem with the leds.

The 5V are ws2811 whith led an chip in one Part. Pinout: (5, Data, Gnd)
The 12V are WS2811s Pinout: (12, gnd, gnd, Din)-----(12,gnd,gnd,Dout)

between 5 and GND ; 12 and gnd (both grounds connected togehter) a 1000uf Cap. and Data Pins with a 330 Ohm resistor.
12 and 5 V from a Yellow and red cable of the Powersupply

I'm 100% sure that the leds are 12 V.
I had installed the 12V Leds a few weeks ago and everything is fine,
yesterday i installed the 5V Leds and everything works but i doen't know why!

The Problem is that i cant't solder them in a complete row together because on of them is rgb and the other is gbr. This Problem i only can solve when i define 2 Strips.

Could it be possible, that there is a disturbance between the cables or a intern connection in arduino?

Please go back and change "quote" tags to "code" tags. In fact, do that in each of your posts.

Nevertheless in the code you just posted, you have only one strip defined! And apparently that works, so that tells us nothing. (Of course it works if you define more LEDs than you have, just blurts the excess data out the end.)

Paul__B:
Please go back and change "quote" tags to "code" tags. In fact, do that in each of your posts.

Nevertheless in the code you just posted, you have only one strip defined! And apparently that works, so that tells us nothing. (Of course it works if you define more LEDs than you have, just blurts the excess data out the end.)

sorry for the Tags looks better now.

My problem is that the other strip on another pin of the Atmega168 does exactly the same thing as the one I had defined.

There must be interferences or something like that on the Atmega 168 Pins. I measured the two datapins of the Strips, there is no connection.

I'll try it with other pins.

Ok Problem is solved!
I don't know why but there was something left from the old programm, where i tried to use both of the digital Led Strips.
Now I know the problem why this didn't worked.

Then i tried only one strip and both make the same.

The solution was only to add:

 pinMode(7, OUTPUT);digitalWrite(7, LOW);

and so only the Strip that I had defined works.

I don't know why, or is it normal that a old pindefinition could remain on the chip when you flash it?

Ah well, something was wrong, but since we have not seen your code, either the original or the working version, we will never know! :astonished:

Never mind.