Не работает void loop(); esp32

Написал довольно простой код для бегущей строки на ESP32 с использованием FastLED. Компилятор ArduinoIDE. Столкнулся с проблемой анимации. Void loop(); лишь один раз проводит действия внутри себя. С чем это может быть связано? Начальное состояние Начальное состояние Конечное состояние Конечное состояние. Хотя вданном примере кода это и есть начальное состояние, но по принципу работы void loop(); должен быть постоянный сдвиг и вывод изображения.

#include <FastLED.h>
#define NUM_LEDS 240

#define LED_TYPE WS2812
#define COLOR_ORDER GRB
#define DATA_PIN 4
#define BRIGHTNESS 20

CRGB leds[NUM_LEDS];
int Mask[7][30] = { //Матрица-маска с символами.
{0,0,1,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,0,0,1,1,1,0,0,0},
{0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,1,0,0,1,0,0},
{1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0},
{1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,1,0},
{1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,1,0},
{1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,0},
{1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,1,0,1,1,1,1,0,0,1,1,1,0,0,0}
};

String color = "";
int temp = 0;
int temp2 = 6;

void setup() {
  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); // GRB ordering
  FastLED.setBrightness(BRIGHTNESS);
}

void loop() 
{
for (int i = 0; i < 7; i++)
        {
            for (int j = 0; j < 30; j++)
            {
                if (j < 29)
                {
                    Mask[i][j] = Mask[i][j + 1]; //сдвиг влево
                }
            }
        }
  
  while (temp2!=-1)          //Вывод на матрицу
  {
    if (temp2%2==0)
    {
      temp=0;
        while (temp<30)
        {
          if (Mask[temp2][temp]==0)
          {
            leds[abs(temp2-6)*30+temp]=0x000000;
          }
          if (Mask[temp2][temp]==1)
          {
            leds[abs(temp2-6)*30+temp]=0xFF0000;
          }
          temp++;
        }
    }

    if (temp2%2==1)
    {
      temp=29;
        while (temp!=-1)
        {
          if (Mask[temp2][temp]==0)
          {
            leds[abs(temp2-6)*30 +(29-temp)]=0x000000;
          }
          if (Mask[temp2][temp]==1)
          {
            leds[abs(temp2-6)*30+(29-temp)]=0xFF0000;
          }
          temp--;
        }
    }
    
    temp2--;
  }
  
  FastLED.show();
  delay(100);

}

Ответы (0 шт):