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?