This is the Arduino sketch I use for my neopixel ring:

    //Superhero Power Plant
    //fades all pixels subtly
    //code by Tony Sherwood for Adafruit Industries
     
    #include <Adafruit_NeoPixel.h>
     
    #define PIN 6
     
    // Parameter 1 = number of pixels in strip
    // Parameter 2 = 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(16, PIN, NEO_GRB + NEO_KHZ800);
     
    int alpha; // Current value of the pixels
    int dir = 1; // Direction of the pixels... 1 = getting brighter, 0 = getting dimmer
    int flip; // Randomly flip the direction every once in a while
    int minAlpha = 25; // Min value of brightness
    int maxAlpha = 100; // Max value of brightness
    int alphaDelta = 5; // Delta of brightness between times through the loop
     
    void setup() {
    strip.begin();
    strip.show(); // Initialize all pixels to 'off'
    }
     
    void loop() {
    flip = random(32);
    if(flip > 20) {
    dir = 1 - dir;
    }
    // Some example procedures showing how to display to the pixels:
    if (dir == 1) {
    alpha += alphaDelta;
    }
    if (dir == 0) {
    alpha -= alphaDelta;
    }
    if (alpha < minAlpha) {
    alpha = minAlpha;
    dir = 1;
    }
    if (alpha > maxAlpha) {
    alpha = maxAlpha;
    dir = 0;
    }
    // Change the line below to alter the color of the lights
    // The numbers represent the Red, Green, and Blue values
    // of the lights, as a value between 0(off) and 1(max brightness)
    //
    // EX:
    // colorWipe(strip.Color(alpha, 0, alpha/2)); // Pink
    colorWipe(strip.Color(0, 0, alpha)); // Blue
    }
     
    // Fill the dots one after the other with a color
    void colorWipe(uint32_t c) {
    for(uint16_t i=0; i<strip.numPixels(); i++) {
    strip.setPixelColor(i, c);
    strip.show();
    }
    }
InMoov led handmade ring

InMoov led handmade lamp

Leave a Reply