451 lines
8.8 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)
{
#ifdef ESP32
BOOST_ON;
#endif
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()
{
#ifdef ESP32
BOOST_ON;
#endif
rgbLED(255, 0, 0);
}
//------------------------------------------------------
// BLINK
//------------------------------------------------------
void LED_RED_BLINK(int times)
{
#ifdef ESP32
BOOST_ON;
#endif
for(int i=0; i<times; i++)
{
LED_RED();
delay(BLINK_RATE);
LED_CLEAR();
delay(BLINK_RATE);
}
#ifdef ESP32
BOOST_OFF;
#endif
}
//------------------------------------------------------
// FADEIN
//------------------------------------------------------
void LED_RED_FADEIN()
{
#ifdef ESP32
BOOST_ON;
#endif
// 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);
}
#ifdef ESP32
BOOST_OFF;
#endif
}
//------------------------------------------------------
// CROSS FADE
//------------------------------------------------------
void LED_RED_CROSSFADE(int times)
{
#ifdef ESP32
BOOST_ON;
#endif
for(int i=0; i<times; i++)
{
LED_RED_FADEIN();
delay(BETWEEN_FADE);
LED_RED_FADEOUT();
delay(BETWEEN_FADE);
}
#ifdef ESP32
BOOST_OFF;
#endif
}
//======================================================
// GREEN
//======================================================
void LED_GREEN()
{
#ifdef ESP32
BOOST_ON;
#endif
rgbLED(0, 255, 0);
}
//------------------------------------------------------
// BLINK
//------------------------------------------------------
void LED_GREEN_BLINK(int times)
{
#ifdef ESP32
BOOST_ON;
#endif
for(int i=0; i<times; i++)
{
LED_GREEN();
delay(BLINK_RATE);
LED_CLEAR();
delay(BLINK_RATE);
}
#ifdef ESP32
BOOST_OFF;
#endif
}
//------------------------------------------------------
// FADEIN
//------------------------------------------------------
void LED_GREEN_FADEIN()
{
#ifdef ESP32
BOOST_ON;
#endif
// 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);
}
#ifdef ESP32
BOOST_OFF;
#endif
}
//------------------------------------------------------
// CROSS FADE
//------------------------------------------------------
void LED_GREEN_CROSSFADE(int times)
{
#ifdef ESP32
BOOST_ON;
#endif
for(int i=0; i<times; i++)
{
LED_GREEN_FADEIN();
delay(BETWEEN_FADE);
LED_GREEN_FADEOUT();
delay(BETWEEN_FADE);
}
#ifdef ESP32
BOOST_OFF;
#endif
}
//======================================================
// BLUE
//======================================================
void LED_BLUE()
{
#ifdef ESP32
BOOST_ON;
#endif
rgbLED(0, 0, 255);
}
//------------------------------------------------------
// BLINK
//------------------------------------------------------
void LED_BLUE_BLINK(int times)
{
#ifdef ESP32
BOOST_ON;
#endif
for(int i=0; i<times; i++)
{
LED_BLUE();
delay(BLINK_RATE);
LED_CLEAR();
delay(BLINK_RATE);
}
#ifdef ESP32
BOOST_OFF;
#endif
}
//------------------------------------------------------
// FADEIN
//------------------------------------------------------
void LED_BLUE_FADEIN()
{
#ifdef ESP32
BOOST_ON;
#endif
// 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()
{
#ifdef ESP32
BOOST_ON;
#endif
// Fade In Red Indicate That You Enter Battle
for(int i=255; i>=0; i=i-5)
{
rgbLED(0, 0, i);
delay(FADE_RATE);
}
#ifdef ESP32
BOOST_OFF;
#endif
}
//------------------------------------------------------
// CROSS FADE
//------------------------------------------------------
void LED_BLUE_CROSSFADE(int times)
{
#ifdef ESP32
BOOST_ON;
#endif
for(int i=0; i<times; i++)
{
LED_BLUE_FADEIN();
delay(BETWEEN_FADE);
LED_BLUE_FADEOUT();
delay(BETWEEN_FADE);
}
#ifdef ESP32
BOOST_OFF;
#endif
}
//======================================================
// WHITE
//======================================================
void LED_WHITE()
{
#ifdef ESP32
BOOST_ON;
#endif
rgbLED(255, 255, 255);
}
//------------------------------------------------------
// BLINK
//------------------------------------------------------
void LED_WHITE_BLINK(int times)
{
#ifdef ESP32
BOOST_ON;
#endif
for(int i=0; i<times; i++)
{
LED_WHITE();
delay(BLINK_RATE);
LED_CLEAR();
delay(BLINK_RATE);
}
#ifdef ESP32
BOOST_OFF;
#endif
}
//------------------------------------------------------
// FADEIN
//------------------------------------------------------
void LED_WHITE_FADEIN()
{
#ifdef ESP32
BOOST_ON;
#endif
// 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);
}