# include <SoftwareSerial.h>
# include <Adafruit_NeoPixel.h>
# define rxPin 8
# define txPin 7
const int led_row = 4;
const int led_col = 36;
int led_count = led_row * led_col;
int pot = A1;
Adafruit_NeoPixel strip = Adafruit_NeoPixel (led_count, 2, NEO_GRB + NEO_KHZ800);
SoftwareSerial mySerial(rxPin, txPin); // RX, TX
byte numChar = 0;
byte numChar1 = 0;
byte myChar[40];
byte i = 0;
byte h1 = 0;
byte io = 0;
byte value_r = 255;
byte value_g = 0;
byte value_b = 0;
byte color_in_row[12];
int index_animasi = 0;
byte color_data[9][3] {
{0, 255, 255},
{255, 255, 0},
{255, 0, 0},
{0, 255, 0},
{0, 0, 255},
{0, 255, 255},
{255, 0, 0},
{0, 0, 255},
{255, 255, 255}
};
void ani1();
void ani2();
void ani3();
void ani4();
void ani5();
void ani6();
void ani7();
void ani8();
void ani9();
void ani10();
void ani11();
void ani12();
void ani13();
void ani14();
void ani15();
void ani16();
void ani17();
void ani18();
void ani20();
void ani21();
void ani22();
void ani23();
void ani24();
void ani25();
void ani26();
void ani27();
void ani28();
void ani29();
void ani30();
void ani31();
void ani32();
void ani33();
void ani34();
void ani35();
void ani36();
void ani37();
void ani38();
void (*animations[])() =
{
ani1,
ani2,
ani3,
ani4,
ani5,
ani6,
ani7,
ani8,
ani9,
ani10,
ani11,
ani12,
ani13,
ani14,
ani15,
ani16,
ani17,
ani18,
ani20,
ani21,
ani22,
ani23,
ani24,
ani25,
ani26,
ani27,
ani28,
ani29,
ani30,
ani31,
ani32,
ani33,
ani34,
ani35,
ani36,
ani37,
ani38,
};
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Test Wave");
mySerial.begin(9600);
mySerial.println("Hello, world?");
strip.begin();
strip.show();
}
void loop() {
/* just run through these animations */
static unsigned char doN = 0;
Serial.print("animation "); Serial.println(doN + 1);
animations[doN]();
if (++doN == 38) doN = 0;
return;
if (mySerial.available()) {
i = 0;
myChar[numChar1] = mySerial.read();
delay(100);
Serial.print(myChar[numChar1]);
Serial.print(" ");
Serial.print(numChar1);
numChar1++;
if (numChar1 >= 37) {
numChar1 = 0;
}
h1 = 1;
io = 1;
}
else {
numChar1 = 0;
if (io == 0) {
i = 0;
for (int g = 0; g <= 37; g++) {
myChar[numChar] = g;
Serial.print(myChar[numChar]);
Serial.print(" ");
Serial.print(numChar);
Serial.println();
numChar++;
}
if (numChar >= 37) {
numChar = 0;
}
io = 1;
}
}
if (h1 == 0) {
animations[myChar[i]]();
Serial.print(myChar[i]);
Serial.print(" ");
Serial.print(i);
i++;
if (i >= 37) {
i = 0;
}
}
h1 = 0;
Serial.println();
}
void ani1() {
int color_index = 0;
int i = 0;
int half_col = led_col / 2;
int quarter_col = led_col / 4;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c + half_col + quarter_col);
strip.setPixelColor(i, strip.Color(125, 125, 125));
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(255, 0, 0));
i = led_from_pixel(r, c + quarter_col);
strip.setPixelColor(i, strip.Color(125, 125, 125));
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(255, 0, 0));
i = led_from_pixel(r, c - quarter_col);
strip.setPixelColor(i, strip.Color(125, 125, 125));
i = led_from_pixel(r, c - half_col);
strip.setPixelColor(i, strip.Color(255, 0, 0));
i = led_from_pixel(r, c - quarter_col + half_col);
strip.setPixelColor(i, strip.Color(125, 125, 125));
i = led_from_pixel(r, c - led_col);
strip.setPixelColor(i, strip.Color(255, 0, 0));
}
delay(50);
strip.show();
}
for (int c = led_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(255, 0, 0));
i = led_from_pixel(r, c + quarter_col);
strip.setPixelColor(i, strip.Color(125, 125, 125));
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(255, 0, 0));
i = led_from_pixel(r, c + quarter_col + half_col);
strip.setPixelColor(i, strip.Color(125, 125, 125));
i = led_from_pixel(r, c - quarter_col);
strip.setPixelColor(i, strip.Color(125, 125, 125));
i = led_from_pixel(r, c - half_col);
strip.setPixelColor(i, strip.Color(255, 0, 0));
i = led_from_pixel(r, c - (quarter_col + half_col));
strip.setPixelColor(i, strip.Color(125, 125, 125));
i = led_from_pixel(r, c - led_col);
strip.setPixelColor(i, strip.Color(255, 0, 0));
}
delay(50);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani2() {
int i = 0;
int color_index = 0;
int half_col = (led_col / 2);
int quarter_col = (led_col / 4);
for (int lp = 0; lp < 5; lp++) {
for (int p = 0; p < 5; p++) {
for (int c = quarter_col; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(500);
strip.show();
strip.clear();
for (int c = 0; c < quarter_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(500);
strip.show();
strip.clear();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani3() {
int i = 0;
int color_index = 0;
int half_col = (led_col / 2);
for (int lp = 0; lp < 5; lp++) {
for (int c = half_col; c >= -1; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
for (int m = half_col - 1; m < half_col + 1; m++) {
i = led_from_pixel(r, m);
strip.setPixelColor(i, strip.Color(125, 125, 125));
}
strip.show();
delay(5);
}
delay(50);
strip.show();
strip.clear();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani4() {
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(5);
}
}
void ani5() {
int color_index = 0;
int i = 0;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int v = 0; v < half_col; v++) {
for (int c = 0; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c - v);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c - 1 - v);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, led_col - c - 1 + v);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c + v);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(25);
strip.show();
}
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani6() {
int i = 0;
int color_index = 0;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
if (c < half_col) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - 1 - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
i = led_from_pixel(r, c - half_col);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, led_col - c + half_col);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(25);
strip.show();
}
for (int c = 0; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
strip.show();
}
delay(50);
strip.show();
strip.clear();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani7() {
int br = 250;
int half_col = led_col / 2;
int i = 0;
int color_index = 0;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(125, 125, 125));
}
delay(50);
strip.show();
strip.clear();
}
for (int g = 0; g < 5; g++) {
for (int c = half_col; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(led_set_brightness(value_r, br), led_set_brightness(value_g, br), led_set_brightness(value_b, br)));
}
}
delay(100);
strip.show();
br = br - 50;
if (br == 0) {
br = 250;
}
}
for (int c = led_col; c >= half_col; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(255, 255, 255));
}
delay(50);
strip.show();
strip.clear();
}
for (int g = 0; g < 5; g++) {
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(led_set_brightness(value_r, br), led_set_brightness(value_g, br), led_set_brightness(value_b, br)));
}
}
delay(100);
strip.show();
br = br - 50;
if (br == 0) {
br = 250;
}
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani8() {
int i = 0;
int color_index = 0;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(50);
strip.show();
strip.clear();
}
for (int c = led_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
if (c < half_col) {
}
else {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
i = led_from_pixel(r, c - half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
if (c > half_col) {
}
else {
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
if (c > half_col) {
}
else {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
}
delay(50);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
for (int c = 0; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
if (c > half_col) {
}
else {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
i = led_from_pixel(r, c - half_col);
strip.setPixelColor(i, strip.Color(0, 0, 0));
if (c > half_col) {
}
else {
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
if (c < half_col) {
}
else {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
}
delay(50);
strip.show();
}
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(50);
strip.show();
strip.clear();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani9() {
int half_col = led_col / 2;
int i = 0;
int color_index = 0;
for (int lp = 0; lp < 5; lp++) {
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(50);
strip.show();
//Serial.print(i);
//Serial.print(" ");
}
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(50);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani10() {
int color_index = 0;
int i = 0;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c <= half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(125, 125, 125));
for (int c = half_col; c < led_col; c++) {
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
}
delay(100);
strip.show();
strip.clear();
}
for (int c = led_col; c >= half_col; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_b, value_b));
for (int c = half_col; c >= 0; c--) {
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(125, 125, 125));
}
}
}
delay(100);
strip.show();
strip.clear();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani11() {
int i = 0;
int color_index = 0;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c - 3);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(50);
strip.show();
}
for (int c = led_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + 3);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(50);
strip.show();
}=
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani12() {
int i = 0;
int color_index = 0;
for (int lp = 0; lp < 5; lp++) {
for (int h = 0; h < led_col; h++) {
for (int c = led_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c + h);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + h + 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(10);
strip.show();
}
}
for (int h = 0; h < led_col; h++) {
for (int c = 0; c < led_col; c++) {
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c - h);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c - h - 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(10);
strip.show();
}
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani13() {
int i = 0;
int color_index = 0;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c - 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, c + half_col - 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(50);
strip.show();
}
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(25);
strip.show();
}
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(50);
strip.show();
}
strip.clear();
color_index++;
if (color_index >= 9) {
color_index = 0;
}
for (int c = half_col - 1; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col + 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(50);
strip.show();
}
for (int c = 0; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
if (c > half_col) {
}
else {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
if (c > half_col) {
}
else {
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
i = led_from_pixel(r, c - half_col);
strip.setPixelColor(i, strip.Color(0, 0, 0));
if (c < half_col) {
}
else {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
}
delay(25);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani14() {
int i = 0;
int h = 0;
int color_index = 0;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < led_col + 7; c++) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
//Serial.print(i);
//Serial.print(" ");
i = led_from_pixel(r, c - 3);
strip.setPixelColor(i, strip.Color(0, 0, 0));
color_select(color_index + 1);
i = led_from_pixel(r, c - 4);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c - 7);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(50);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
for (int c = led_col + 7; c >= 0; c--) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, c - 7);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c - 4);
strip.setPixelColor(i, strip.Color(0, 0, 0));
color_select(color_index + 1);
i = led_from_pixel(r, c - 3);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(50);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani15() {
int i = 0;
int color_index = 0;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int g = 0; g < 5; g++) {
for (int c = 0; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(100);
strip.show();
for (int c = 0; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
}
delay(100);
strip.show();
}
for (int g = 0; g < 5; g++) {
for (int c = half_col; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(100);
strip.show();
for (int c = half_col; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
}
delay(100);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani16() {
int i = 0;
int color_index = 0;
int half_col = led_col / 2;
int quarter_col = led_col / 4;
for (int lp = 0; lp < 5; lp++) {
for (int g = 0; g < 5; g++) {
for (int c = 0; c < quarter_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(75);
strip.show();
strip.clear();
}
for (int g = 0; g < 5; g++) {
for (int c = quarter_col; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(75);
strip.show();
strip.clear();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani17() {
int color_index = 0;
int half_col = led_col / 2;
int i = 0;
int quarter_col = led_col / 4;
for (int lp = 0; lp < 5; lp++) {
for (int g = 0; g < 5; g++) {
for (int c = 0; c < quarter_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col + quarter_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(75);
strip.show();
strip.clear();
}
for (int g = 0; g < 5; g++) {
for (int c = quarter_col; c < half_col + quarter_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(75);
strip.show();
strip.clear();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani18() {
int i = 0;
int color_index = 0;
int quarter_col = led_col / 4;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < quarter_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(75);
strip.show();
strip.clear();
for (int c = quarter_col; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(75);
strip.show();
strip.clear();
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani19() {
int color_index = 0;
int i = 0;
int h = 0;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c - 3);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, led_col - c - 1);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c + 3 - 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
h = c;
for (int v = 0; v < h; v++) {
color_select(color_index);
for (int rv = 0; rv < led_row; rv++) {
i = led_from_pixel(rv, v);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(rv, v - 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(rv, led_col - v);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(rv, led_col - v + 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
for (int b = 0; b < h; b++) {
color_select(color_index);
for (int rb = 0; rb < led_row; rb++) {
i = led_from_pixel(rb, b);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(rb, b - 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(rb, led_col - b);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(rb, led_col - b + 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
for (int n = 0; n < h; n++) {
color_select(color_index);
for (int rn = 0; rn < led_row; rn++) {
i = led_from_pixel(rn, n);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(rn, n - 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(rn, led_col - n);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(rn, led_col - n + 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(1 / 2);
strip.show();
}
}
}
}
}
strip.clear();
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani20() {
int i = 0;
int color_index = 0;
int half_col = led_col / 2;
int quarter_col = led_col / 4;
for (int lp = 0; lp < 5; lp++) {
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(25);
strip.show();
}
delay(100);
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani21() {
int i = 0;
int color_index = 0;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
if (c > half_col) {
}
else {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(25);
strip.show();
}
strip.clear();
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(50);
strip.show();
strip.clear();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani22() {
int color_index = 0;
int half_col = led_col / 2;
int i = 0;
for (int lp = 0; lp < 5; lp++) {
for (int c = led_col; c >= -led_col; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + led_col);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(25);
strip.show();
}
for (int c = 0; c <= half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
//Serial.print(i);
//Serial.print(" ");
}
//Serial.println();
delay(50);
strip.show();
strip.clear();
}
for (int c = 0; c <= led_col * 2; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c - led_col);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
//Serial.println();
delay(25);
strip.show();
}
for (int c = led_col; c > half_col; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
//Serial.print(i);
//Serial.print(" ");
}
//Serial.println();
delay(50);
strip.show();
strip.clear();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani23() {
int i = 0;
int color_index = 0;
for (int lp = 0; lp < 5; lp++) {
for (int g = 0; g < 3; g++) {
for (int c = 0; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
//Serial.print(c);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(25);
strip.show();
for (int c = 0; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
//Serial.print(c);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
}
delay(25);
strip.show();
//Serial.println();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
delay(500);
}
}
void ani24() {
int a = 0;
int i = 0;
int color_index = 0;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int g = 0; g < half_col; g++) {
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
int m = c + g;
if (m > half_col) {
m = -1;
}
i = led_from_pixel(r, m);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
m = led_col - c - g;
if (m < half_col) {
m = -1;
}
i = led_from_pixel(r, m);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
m = led_col - c - g - 1;
if (m < half_col) {
m = -1;
}
i = led_from_pixel(r, m);
strip.setPixelColor(i, strip.Color(0, 0, 0));
m = c + g + 1;
if (m > half_col) {
m = -1;
}
i = led_from_pixel(r, m);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
//Serial.println();
delay(15);
strip.show();
}
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani25() {
int color_index = 0;
int i = 0;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int c = half_col; c >= -half_col; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
int m = c;
if (m > half_col) {
m = -1;
}
i = led_from_pixel(r, m);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
m = led_col - c;
if (m < half_col) {
m = -1;
}
i = led_from_pixel(r, m);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
m = c + half_col;
if (m > half_col) {
m = -1;
}
i = led_from_pixel(r, m);
strip.setPixelColor(i, strip.Color(0, 0, 0));
m = led_col - c - half_col;
if (m < half_col) {
m = -1;
}
i = led_from_pixel(r, m);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
//Serial.println();
delay(25);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
for (int c = 0; c <= led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
if (c > half_col) {
i = led_from_pixel(r, -1);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, -1);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
else {
i = led_from_pixel(r, c);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
i = led_from_pixel(r, c - half_col);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, led_col - c + half_col);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
//Serial.println();
delay(25);
strip.show();
}
}
}
void ani26() {
int i = 0;
int color_index = 0;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c - 3);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, led_col - c + 3);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(50);
strip.show();
}
for (int g = 0; g < 5; g++) {
for (int c = 0; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(100);
strip.show();
for (int c = 0; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
}
delay(50);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani38() {
uint16_t i, j, c;
int half_col = led_col / 2;
for (j = 0; j < 125 * 1; j++) { // 5 cycles of all colors on wheel
for (c = half_col; c > 0; c--) {
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
}
}
strip.show();
delay(5);
}
for (j = 0; j < 256 * 1; j++) { // 5 cycles of all colors on wheel
for (c = 0; c <= half_col; c++) {
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
}
}
strip.show();
delay(5);
}
}
void ani27() {
int i = 0;
int half_col = led_col / 2;
int color_index = 0;
for (int lp = 0; lp < 5; lp++) {
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(25);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(25);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
for (int c = 0; c <= half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(25);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani28() {
int color_index = 0;
int i = 0;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < led_col + 8; c++) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
color_select(color_index + 1);
i = led_from_pixel(r, c - 2);
strip.setPixelColor(i, strip.Color(0, 0, 0));;
i = led_from_pixel(r, c - 3);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
color_select(color_index + 2);
i = led_from_pixel(r, c - 5);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, c - 6);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c - 8);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(100);
strip.show();
}
for (int c = led_col + 8; c >= 0; c--) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c - 8);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
color_select(color_index + 1);
i = led_from_pixel(r, c - 6);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, c - 5);
color_select(color_index + 2);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c - 3);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, c - 2);
color_select(color_index + 3);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(100);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani29() {
int i = 0;
int half_col = led_col / 2;
int color_index = 0;
for (int lp = 0; lp < half_col; lp++) {
for (int c = half_col; c >= 0; c--) {
for (int v = led_col; v > half_col - 1; v--) {
for (int r = 0; r < led_row; r++) {
int mn = v - lp;
if (mn < half_col) {
mn = -1;
}
color_select(color_index);
i = led_from_pixel(r, mn);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
for (int r = 0; r < led_row; r++) {
color_select(color_index + 1);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(25);
strip.show();
strip.clear();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
for (int lp = 0; lp < half_col; lp++) {
for (int c = half_col; c < led_col; c++) {
for (int v = 0; v < half_col + 1; v++) {
for (int r = 0; r < led_row; r++) {
int mn = v + lp;
if (mn > half_col) {
mn = -1;
}
color_select(color_index);
i = led_from_pixel(r, mn);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
for (int r = 0; r < led_row; r++) {
color_select(color_index + 1);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(25);
strip.show();
strip.clear();
}
strip.clear();
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani30() {
int color_index = 0;
int i = 0;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(255, 0, 0));
i = led_from_pixel(r, c - 2);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, c - 3);
strip.setPixelColor(i, strip.Color(0, 255, 0));
i = led_from_pixel(r, c - 5);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, c - 6);
strip.setPixelColor(i, strip.Color(0, 0, 255));
i = led_from_pixel(r, c - 8);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(255, 0, 0));
i = led_from_pixel(r, led_col - c + 2);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, led_col - c + 3);
strip.setPixelColor(i, strip.Color(0, 255, 0));
i = led_from_pixel(r, led_col - c + 5);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, led_col - c + 6);
strip.setPixelColor(i, strip.Color(0, 0, 255));
i = led_from_pixel(r, led_col - c + 8);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(100);
strip.show();
}
strip.clear();
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani37() {
int i = 0;
int color_index = 0;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < led_col; c++) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(25);
strip.show();
}
for (int c = led_col; c >= 0; c--) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(25);
strip.show();
}
for (int c = led_col; c >= 0; c--) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(25);
strip.show();
}
for (int c = 0; c < led_col; c++) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
delay(25);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani31() {
int color_index = 0;
int i = 0;
int quarter_col = led_col / 4;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int g = 0; g < 5; g++) {
for (int c = 0; c < quarter_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, half_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(25);
strip.show();
strip.clear();
}
}
for (int g = 0; g < 5; g++) {
for (int c = 0; c < quarter_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c + half_col);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(25);
strip.show();
strip.clear();
}
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani32() {
int color_index = 0;
int i = 0;
int half_col = led_col / 2;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
Serial.print(i);
Serial.print(" ");
}
Serial.println();
delay(25);
strip.show();
}
Serial.println();
strip.clear();
for (int c = 0; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
Serial.print(i);
Serial.print(" ");
}
Serial.println();
}
Serial.println();
strip.show();
for (int c = half_col; c < led_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
Serial.print(i);
Serial.print(" ");
}
Serial.println();
delay(25);
strip.show();
strip.clear();
}
Serial.println();
for (int c = led_col; c >= half_col; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
if (c < half_col) {
}
else {
i = led_from_pixel(r, c);
Serial.print(i);
Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
Serial.println();
delay(25);
strip.show();
}
Serial.println();
for (int c = led_col; c >= half_col; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
if (c < half_col) {
}
else {
i = led_from_pixel(r, c);
Serial.print(i);
Serial.print(" ");
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
}
Serial.println();
}
strip.show();
Serial.println();
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
Serial.print(i);
Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
Serial.println();
delay(25);
strip.show();
strip.clear();
}
Serial.println();
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani33() {
int color_index = 0;
int half_col = led_col / 2;
int i = 0;
for (int lp = 0; lp < 5; lp++) {
for (int g = 0; g < 5; g++) {
for (int c = 0; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
//Serial.println();
delay(15);
strip.show();
}
Serial.println();
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, c + half_col);
//Serial.print(i);
//Serial.print(" ");
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
//Serial.println();
delay(15);
strip.show();
}
//Serial.println();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
for (int g = 0; g < 5; g++) {
for (int c = half_col; c >= 0; c--) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
Serial.print(i);
Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + half_col);
Serial.print(i);
Serial.print(" ");
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
Serial.println();
delay(15);
strip.show();
}
Serial.println();
for (int c = 0; c < half_col; c++) {
color_select(color_index);
for (int r = 0; r < led_row; r++) {
i = led_from_pixel(r, c);
Serial.print(i);
Serial.print(" ");
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, c + half_col);
Serial.print(i);
Serial.print(" ");
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
Serial.println();
delay(15);
strip.show();
}
Serial.println();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani34() {
int i = 0;
int color_index = 0;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c < led_col - 2; c++) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c + 2);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, c + 1);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(0, 0, 0));
color_select(color_index + 1);
i = led_from_pixel(r, c - 1);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(50);
strip.show();
}
for (int c = led_col; c >= 3; c--) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c - 3);
strip.setPixelColor(i, strip.Color(0, 0, 0));
i = led_from_pixel(r, c - 2);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c - 1);
strip.setPixelColor(i, strip.Color(0, 0, 0));
color_select(color_index + 1);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(50);
strip.show();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani35() {
int i = 0;
int color_index = 0;
int inter_col = led_col * 3 / 4;
for (int lp = 0; lp < 5; lp++) {
for (int c = 0; c <= inter_col; c++) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(50);
strip.show();
strip.clear();
}
for (int c = inter_col; c >= 0; c--) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, led_col - c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
delay(50);
strip.show();
strip.clear();
}
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
void ani36() {
int i = 0;
int half_col = led_col / 2;
int quardapel_col = led_col / 6;
int quarter_col = led_col / 4;
int color_index = 0;
for (int lp = 0; lp < 5; lp++) {
for (int c = quardapel_col * 2; c < quardapel_col * 4; c++) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(200);
strip.show();
strip.clear();
color_index++;
if (color_index >= 9) {
color_index = 0;
}
for (int c = quardapel_col; c < quardapel_col * 2; c++) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + quardapel_col * 3);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(200);
strip.show();
strip.clear();
color_index++;
if (color_index >= 9) {
color_index = 0;
}
for (int c = 0; c < quardapel_col; c++) {
for (int r = 0; r < led_row; r++) {
color_select(color_index);
i = led_from_pixel(r, c);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
i = led_from_pixel(r, c + quardapel_col * 5);
strip.setPixelColor(i, strip.Color(value_r, value_g, value_b));
}
}
delay(200);
strip.show();
strip.clear();
color_index++;
if (color_index >= 9) {
color_index = 0;
}
}
}
int led_from_pixel(byte row, byte col) {
int a = 0;
if (row % 2 == 0) {
if (col > led_col) {
col = -5;
}
a = (row * led_col) + col;
}
else {
if (col > led_col) {
col = -5;
}
a = ((row + 1) * led_col) - 1 - col;
}
return a;
}
void color_select(int index_color) {
value_r = color_data[index_color][0];
value_g = color_data[index_color][1];
value_b = color_data[index_color][2];
}
void led_off() {
for (int i = 0; i < led_count; i++) {
strip.setPixelColor(i, strip.Color(0, 0, 0));
}
strip.show();
}
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);
}
byte led_set_brightness(byte v, byte br) {
return map(v, 0, 255, 0, br);
}