351 lines
7.6 KiB
C++
351 lines
7.6 KiB
C++
#define BETWEEN_FADE 15
|
|
#define FADE_RATE 15
|
|
#define BLINK_RATE 250
|
|
|
|
//======================================================
|
|
// SET STRIP COLOR
|
|
//======================================================
|
|
|
|
void rgbLED(int red, int green, int blue)
|
|
{
|
|
for(int i=0; i<NUM_PIXELS; i++)
|
|
{
|
|
pixels.setPixelColor(i, pixels.Color(red,green,blue));
|
|
}
|
|
pixels.show();
|
|
}
|
|
|
|
//======================================================
|
|
// CLEAR SIGNAL LED COLOR : NO COLOR
|
|
//======================================================
|
|
|
|
void LED_CLEAR()
|
|
{
|
|
rgbLED(0, 0, 0);
|
|
}
|
|
|
|
//======================================================
|
|
// RED
|
|
//======================================================
|
|
|
|
void LED_RED()
|
|
{
|
|
rgbLED(255, 0, 0);
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// BLINK
|
|
//------------------------------------------------------
|
|
|
|
void LED_RED_BLINK(int times)
|
|
{
|
|
for(int i=0; i<times; i++)
|
|
{
|
|
LED_RED();
|
|
delay(BLINK_RATE);
|
|
LED_CLEAR();
|
|
delay(BLINK_RATE);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// FADEIN
|
|
//------------------------------------------------------
|
|
|
|
void LED_RED_FADEIN()
|
|
{
|
|
// Fade In Red Indicate That You Enter Battle
|
|
for(int i=0; i<=255; i=i+5)
|
|
{
|
|
rgbLED(i, 0, 0);
|
|
delay(FADE_RATE);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// FADEOUT
|
|
//------------------------------------------------------
|
|
|
|
void LED_RED_FADEOUT()
|
|
{
|
|
// Fade In Red Indicate That You Enter Battle
|
|
for(int i=255; i>=0; i=i-5)
|
|
{
|
|
rgbLED(i, 0, 0);
|
|
delay(FADE_RATE);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// CROSS FADE
|
|
//------------------------------------------------------
|
|
|
|
void LED_RED_CROSSFADE(int times)
|
|
{
|
|
for(int i=0; i<times; i++)
|
|
{
|
|
LED_RED_FADEIN();
|
|
delay(BETWEEN_FADE);
|
|
LED_RED_FADEOUT();
|
|
delay(BETWEEN_FADE);
|
|
}
|
|
}
|
|
|
|
//======================================================
|
|
// GREEN
|
|
//======================================================
|
|
|
|
void LED_GREEN()
|
|
{
|
|
rgbLED(0, 255, 0);
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// BLINK
|
|
//------------------------------------------------------
|
|
|
|
void LED_GREEN_BLINK(int times)
|
|
{
|
|
for(int i=0; i<times; i++)
|
|
{
|
|
LED_GREEN();
|
|
delay(BLINK_RATE);
|
|
LED_CLEAR();
|
|
delay(BLINK_RATE);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// FADEIN
|
|
//------------------------------------------------------
|
|
|
|
void LED_GREEN_FADEIN()
|
|
{
|
|
// Fade In Red Indicate That You Enter Battle
|
|
for(int i=0; i<=255; i=i+5)
|
|
{
|
|
rgbLED(0, i, 0);
|
|
delay(FADE_RATE);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// FADEOUT
|
|
//------------------------------------------------------
|
|
|
|
void LED_GREEN_FADEOUT()
|
|
{
|
|
// Fade In Red Indicate That You Enter Battle
|
|
for(int i=255; i>=0; i=i-5)
|
|
{
|
|
rgbLED(0, i, 0);
|
|
delay(FADE_RATE);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// CROSS FADE
|
|
//------------------------------------------------------
|
|
|
|
void LED_GREEN_CROSSFADE(int times)
|
|
{
|
|
for(int i=0; i<times; i++)
|
|
{
|
|
LED_GREEN_FADEIN();
|
|
delay(BETWEEN_FADE);
|
|
LED_GREEN_FADEOUT();
|
|
delay(BETWEEN_FADE);
|
|
}
|
|
}
|
|
|
|
//======================================================
|
|
// BLUE
|
|
//======================================================
|
|
|
|
void LED_BLUE()
|
|
{
|
|
rgbLED(0, 0, 255);
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// BLINK
|
|
//------------------------------------------------------
|
|
|
|
void LED_BLUE_BLINK(int times)
|
|
{
|
|
for(int i=0; i<times; i++)
|
|
{
|
|
LED_BLUE();
|
|
delay(BLINK_RATE);
|
|
LED_CLEAR();
|
|
delay(BLINK_RATE);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// FADEIN
|
|
//------------------------------------------------------
|
|
|
|
void LED_BLUE_FADEIN()
|
|
{
|
|
// Fade In Red Indicate That You Enter Battle
|
|
for(int i=0; i<=255; i=i+5)
|
|
{
|
|
rgbLED(0, 0, i);
|
|
delay(FADE_RATE);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// FADEOUT
|
|
//------------------------------------------------------
|
|
|
|
void LED_BLUE_FADEOUT()
|
|
{
|
|
// Fade In Red Indicate That You Enter Battle
|
|
for(int i=255; i>=0; i=i-5)
|
|
{
|
|
rgbLED(0, 0, i);
|
|
delay(FADE_RATE);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// CROSS FADE
|
|
//------------------------------------------------------
|
|
|
|
void LED_BLUE_CROSSFADE(int times)
|
|
{
|
|
for(int i=0; i<times; i++)
|
|
{
|
|
LED_BLUE_FADEIN();
|
|
delay(BETWEEN_FADE);
|
|
LED_BLUE_FADEOUT();
|
|
delay(BETWEEN_FADE);
|
|
}
|
|
}
|
|
|
|
//======================================================
|
|
// WHITE
|
|
//======================================================
|
|
|
|
void LED_WHITE()
|
|
{
|
|
rgbLED(255, 255, 255);
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// BLINK
|
|
//------------------------------------------------------
|
|
|
|
void LED_WHITE_BLINK(int times)
|
|
{
|
|
for(int i=0; i<times; i++)
|
|
{
|
|
LED_WHITE();
|
|
delay(BLINK_RATE);
|
|
LED_CLEAR();
|
|
delay(BLINK_RATE);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// FADEIN
|
|
//------------------------------------------------------
|
|
|
|
void LED_WHITE_FADEIN()
|
|
{
|
|
// Fade In Red Indicate That You Enter Battle
|
|
for(int i=0; i<=255; i=i+5)
|
|
{
|
|
rgbLED(i, i, i);
|
|
delay(FADE_RATE);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// FADEOUT
|
|
//------------------------------------------------------
|
|
|
|
void LED_WHITE_FADEOUT()
|
|
{
|
|
// Fade In Red Indicate That You Enter Battle
|
|
for(int i=255; i>=0; i=i-5)
|
|
{
|
|
rgbLED(i, i, i);
|
|
delay(FADE_RATE);
|
|
}
|
|
}
|
|
|
|
//------------------------------------------------------
|
|
// CROSS FADE
|
|
//------------------------------------------------------
|
|
|
|
void LED_WHITE_CROSSFADE(int times)
|
|
{
|
|
for(int i=0; i<times; i++)
|
|
{
|
|
LED_WHITE_FADEIN();
|
|
delay(BETWEEN_FADE);
|
|
LED_WHITE_FADEOUT();
|
|
delay(BETWEEN_FADE);
|
|
}
|
|
}
|
|
|
|
//======================================================
|
|
// COLOR WHIPE
|
|
//======================================================
|
|
|
|
// Fill the dots one after the other with a color
|
|
void colorWipe(uint32_t c, uint8_t wait)
|
|
{
|
|
for(uint16_t i=0; i<NUM_PIXELS; i++)
|
|
{
|
|
pixels.setPixelColor(i, c);
|
|
pixels.show();
|
|
delay(wait);
|
|
}
|
|
}
|
|
|
|
//======================================================
|
|
// END GAME LIGHTING SIGNAL
|
|
//======================================================
|
|
|
|
// 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< pixels.numPixels(); i++)
|
|
{
|
|
pixels.setPixelColor(i, Wheel(((i * 256 / pixels.numPixels()) + j) & 255));
|
|
}
|
|
pixels.show();
|
|
delay(wait);
|
|
}
|
|
}
|
|
|
|
//======================================================
|
|
// END GAME LIGHTING SIGNAL
|
|
//======================================================
|
|
|
|
// 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 pixels.Color(255 - WheelPos * 3, 0, WheelPos * 3);
|
|
}
|
|
if(WheelPos < 170)
|
|
{
|
|
WheelPos -= 85;
|
|
return pixels.Color(0, WheelPos * 3, 255 - WheelPos * 3);
|
|
}
|
|
WheelPos -= 170;
|
|
return pixels.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
|
|
}
|