#include <Adafruit_NeoPixel.h>
#define PIN 6
#define NUM_LEDS 48
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
void setup()
{
strip.begin();
strip.show(); // Initialize all pixels to 'off'
}
void loop()
{
// Color patterns
colorWipe(strip.Color(255, 0, 0), 30); // Red
colorWipe(strip.Color(0, 255, 0), 30); // Green
colorWipe(strip.Color(0, 0, 255), 30); // Blue
colorWipe(strip.Color(255, 255, 0), 30); // Yellow
colorWipe(strip.Color(255, 0, 255), 30); // Magenta
colorWipe(strip.Color(0, 255, 255), 30); // Cyan
// Diya pattern
diya(0xFFCC00); // Orange
// Sparkle pattern
sparkle(0xFFFFFF, 20);
// Rainbow pattern
rainbowCycle(10);
}
// 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);
}
}
// Diya pattern
void diya(uint32_t c)
{
for(uint16_t i=0; i<strip.numPixels(); i++)
{
if(i%6 == 0 || i%6 == 1 || i%6 == 2)
{
strip.setPixelColor(i, c);
}
else
{
strip.setPixelColor(i, 0);
}
}
strip.show();
}
// Sparkle pattern
void sparkle(uint32_t c, uint8_t wait)
{
for(uint16_t i=0; i<strip.numPixels(); i++)
{
if(random(10) == 0)
{
strip.setPixelColor(i, c);
}
}
strip.show();
delay(wait);
for(uint16_t i=0; i<strip.numPixels(); i++)
{
strip.setPixelColor(i, 0);
}
strip.show();
}
// Rainbow cycle
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);
}
}
// Wheel function for rainbow patterns
uint32_t Wheel(byte WheelPos)
{
WheelPos = 255 - WheelPos;
if(WheelPos < 85)
{
return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
if(WheelPos < 170)
{
WheelPos -= 85;
return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
WheelPos -= 170;
return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}