So you got an Arduino Micro and an Aldi LED strip for christmas and want to know how to get started with it. Here is a little project for you. At the end you will see the strand test.
You will need the LED strip, a breadboard, some wires, a soldering iron, a sharp knife or scissors and an Ardinuo (Micro or Uno).20131226-131012.jpg

First you need to free the strip from the water protection at the end. You will need to cut it gently of with the help of the knife or the scissors.

20131226-125514.jpg20131226-125636.jpg20131226-125710.jpg
After this you solder four wires to the contacts, which we later will use to connect to the power supply and the Arduino on the bread board.

20131226-125731.jpg20131226-130411.jpg

The wire connected to the Vcc will be connected to the + and the wire connected to the GND right below the Vcc, will be connected to the – on the power plug connector.

20131226-130357.jpg

This will deliver the 12V power to the strip, without arming the Arduino.
The next GND and the DI are connected to the bread board with the Ardunio, where the GND goes to the GND pin and the DI goes to digital Pin 6.

LED Strip Arduino/Power plug
VCC Power plug +
GND Power plug –
GND Arduino GND
DI Arduino Pin 6

20131226-130851.jpg

Connect the Arduino with the micro USB cable to the computer. We now have to install the modified Neopixel library first.  Therefore we need to download the following:

After download and unpacking you need to copy the Adafruit_NeoPixel.cpp from the first one into the container of the second one. The second container then needs to be installed in the libraries folder of your Arduino IDE installation.

Done that and restarted the Arduiono IDE, you will now be able to run the following program:

#include <Adafruit_NeoPixel.h>

// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_RGB     Pixels are wired for RGB bitstream
//   NEO_GRB     Pixels are wired for GRB bitstream
//   NEO_KHZ400  400 KHz bitstream (e.g. FLORA pixels)
//   NEO_KHZ800  800 KHz bitstream (e.g. High Density LED strip)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(50, 6, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop() {
  // Some example procedures showing how to display to the pixels:
  colorWipe(strip.Color(255, 0, 0), 10); // Red
  colorWipe(strip.Color(0, 255, 0), 10); // Green
  colorWipe(strip.Color(0, 0, 254), 10); // Blue
  rainbow(2);
  rainbowCycle(1);
}

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

// 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) {
  if(WheelPos < 85) {
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  } else if(WheelPos < 170) {
   WheelPos -= 85;
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else {
   WheelPos -= 170;
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}