#include <Adafruit_NeoPixel.h>
#define PIN 6
#define NUM_LEDS 16
// 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(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
int first = 0;
int len = 7;
uint8_t bright[NUM_LEDS];
void setup() {
strip.begin();
strip.show(); // Initialize all pixels to 'off'
for (int i = 0; i< NUM_LEDS; i++)
bright[i]=0;
// initialise the stirp here
for (int i = first; i< len; i++)
bright[i]=255;
bright[len-1]=255/2;
bright[first]=255/2;
}
void loop() {
//strip.clear(); // Set all pixel colors to 'off'
for (int led = 0; led< NUM_LEDS; led++)
{
if (led>=first and led<first+len)
{
if (led == first+len-2)
{
if (bright[led]<255)
bright[led]++;
if (first+len-1<NUM_LEDS) bright[led+1]++;
else bright[led-NUM_LEDS+1]++;
}
if (led == first)
{
bright[first]--;
if (first+len-1<NUM_LEDS) bright[first+1]--;
else bright[first-NUM_LEDS+1]--;
}
}
}
if (bright[first]==0)
{
first = (first + 1)%NUM_LEDS;
}
for (int led = 0; led< NUM_LEDS; led++)
strip.setPixelColor(led, bright[led], bright[led], bright[led]);
strip.show();
delay(10);
}