Заголовок темы должен отражать содержимое. Исправь или тема будет удалена
C++:
#include <FS.h>
#include <FastLED.h>
#include <SPI.h>
#define NUM_LEDS 322 // Количество светодиодов
File fxdata;
CRGB leds[NUM_LEDS];
int led_speed = 10; // Скоррость анимации
int led_brigh = 20; // Яркость светодиода //
void setup()
{
Serial.begin(115200);
FastLED.setBrightness(led_brigh); // Яркость светодиода //
FastLED.addLeds<WS2812B/*CHIPSET*/, 4/*LED_PIN*/, GRB>(leds, NUM_LEDS); //смотрите документацию для различных светодиодных лент
for (int y = 0 ; y < NUM_LEDS ; y++)
{
leds[y] = CRGB::Black; // установите все светодиоды на черный цвет во время настройки
}
FastLED.show();
//delay(1000);
//SPIFFS.begin();
//SPIFFS.format(); //форматирование файловой системы
//SPIFFS.end();
}
void loop() {
SPIFFS.begin();
Dir dir = SPIFFS.openDir("/files");
while (dir.next())
{
Serial.println(dir.fileName());
fxdata = SPIFFS.open(dir.fileName(), "r");
if (fxdata)
{
Serial.println("file open ok");
}
while (fxdata.available())
{
Sortled();
fxdata.readBytes((char*)leds, NUM_LEDS * 3);
FastLED.setBrightness(led_brigh);
FastLED.show();
delay(1000/ led_speed); // Скоррость анимации
}
fxdata.close();
}
SPIFFS.end();
}
int Sortled ()
{
CRGB templeds[NUM_LEDS];
const uint8_t XYTable[] =
{
16, 17, 50, 51, 84, 85, 118, 119, 152, 153, 186, 187, 220, 221, 254, 255, 288, 289, 322,
15, 18, 49, 52, 83, 86, 117, 120, 151, 154, 185, 188, 219, 222, 253, 256, 287, 290, 321,
14, 19, 48, 53, 82, 87, 116, 121, 150, 155, 184, 189, 218, 223, 252, 257, 286, 291, 320,
13, 20, 47, 54, 81, 88, 115, 122, 149, 156, 183, 190, 217, 224, 251, 258, 285, 292, 319,
12, 21, 46, 55, 80, 89, 114, 123, 148, 157, 182, 191, 216, 225, 250, 259, 284, 293, 318,
11, 22, 45, 56, 79, 90, 113, 124, 147, 158, 181, 192, 215, 226, 249, 260, 283, 294, 317,
10, 23, 44, 57, 78, 91, 112, 125, 146, 159, 180, 193, 214, 227, 248, 261, 282, 295, 316,
9, 24, 43, 58, 77, 92, 111, 126, 145, 160, 179, 194, 213, 228, 247, 262, 281, 296, 315,
8, 25, 42, 59, 76, 93, 110, 127, 144, 161, 178, 195, 212, 229, 246, 263, 280, 297, 314,
7, 26, 41, 60, 75, 94, 109, 128, 143, 162, 177, 196, 211, 230, 245, 264, 279, 298, 313,
6, 27, 40, 61, 74, 95, 108, 129, 142, 163, 176, 197, 210, 231, 244, 265, 278, 299, 312,
5, 28, 39, 62, 73, 96, 107, 130, 141, 164, 175, 198, 209, 232, 243, 266, 277, 300, 311,
4, 29, 38, 63, 72, 97, 106, 131, 140, 165, 174, 199, 208, 233, 242, 267, 276, 301, 310,
3, 30, 37, 64, 71, 98, 105, 132, 139, 166, 173, 200, 207, 234, 241, 268, 275, 302, 309,
2, 31, 36, 65, 70, 99, 104, 133, 138, 167, 172, 201, 206, 235, 240, 269, 274, 303, 308,
1, 32, 35, 66, 69, 100, 103, 134, 137, 168, 171, 202, 205, 236, 239, 270, 273, 304, 307,
0, 33, 34, 67, 68, 101, 102, 135, 136, 169, 170, 203, 204, 237, 238, 271, 272, 305, 306,
};
fxdata.readBytes((char*)templeds, NUM_LEDS * 3);
for (int k = 0; k < NUM_LEDS; k++)
{
leds[XYTable[k]] = templeds[k];
}
}
Изменено: