#include <FastLED.h>
const uint8_t kMatrixWidth = 23;
const uint8_t kMatrixHeight = 13;
#define LED_PIN 3
#define LAST_VISIBLE_LED 114
#define NUM_LEDS ((kMatrixWidth*kMatrixHeight) + 1)
#define DUMMY_LED (NUM_LEDS - 1)
CRGB leds[NUM_LEDS];
#define MAX_DIMENSION ((kMatrixWidth>kMatrixHeight)? kMatrixWidth: kMatrixHeight)
// XYtable moved to global scope so it works correctly with PROGMEM
const uint16_t XYTable[] PROGMEM = {
0, 0, 0, 0, 0, 0, 0, 5, 0, 4, 0, 3, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 18, 0, 17, 0, 16, 0, 15, 0, 14, 0, 13, 0, 12, 0, 0, 0, 0, 0,
0, 0, 0, 0, 19, 0, 20, 0, 21, 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, 0, 0, 0, 0,
0, 0, 0, 35, 0, 34, 0, 33, 0, 32, 0, 31, 0, 30, 0, 29, 0, 28, 0, 27, 0, 0, 0,
0, 0, 36, 0, 37, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, 45, 0, 0,
0, 56, 0, 55, 0, 54, 0, 53, 0, 52, 0, 51, 0, 50, 0, 49, 0, 48, 0, 47, 0, 46, 0,
57, 0, 58, 0, 59, 0, 60, 0, 61, 0, 62, 0, 63, 0, 64, 0, 65, 0, 66, 0, 67, 0, 68,
0, 79, 0, 78, 0, 77, 0, 76, 0, 75, 0, 74, 0, 73, 0, 72, 0, 71, 0, 70, 0, 69, 0,
80, 0, 81, 0, 82, 0, 83, 0, 84, 0, 85, 0, 86, 0, 87, 0, 88, 0, 89, 0, 90, 0, 91,
0, 0, 0, 0, 0, 98, 0, 97, 0, 96, 0, 95, 0, 94, 0, 93, 0, 92, 0, 0, 0, 0, 0,
0, 0, 0, 0, 99, 0, 100, 0, 101, 0, 102, 0, 103, 0, 104, 0, 105, 0, 106, 0, 0, 0, 0,
0, 0, 0, 115, 0, 114, 0, 113, 0, 112, 0, 111, 0, 110, 0, 109, 0, 108, 0, 107, 0, 0, 0,
};
uint16_t XY (uint16_t x, uint16_t y) {
// any out of bounds address maps to the first hidden pixel
if ( (x >= kMatrixWidth) || (y >= kMatrixHeight) ) {
return DUMMY_LED;
}
uint16_t i = (y * kMatrixWidth) + x;
uint16_t j = pgm_read_word_near(&XYTable[i]) != 0 ? i : DUMMY_LED;
return j;
}
// Color correction for the SmartMatrix
#define COLOR_CORRECTION CRGB(255,110,178)
//Patterns
#include "Rainbow.h"
#include "Drops.h"
void setup()
{
// Serial.begin(115200);
FastLED.addLeds<WS2812, LED_PIN, RGB>(leds, NUM_LEDS);
}
void loop()
{
runRainbow();
}
void runRainbow(){
bool isRunning = true;
Rainbow rainbow = Rainbow();
while(isRunning) isRunning = rainbow.runPattern();
}
void runDrops(){
bool isRunning = true;
Drops drops = Drops();
while(isRunning) isRunning = drops.runPattern();
}
FPS: 0
Power: 0.00W
Power: 0.00W