// Библиотека для работы со светодиодами WS2812 #include // Номер пина, к которому подключена матрица WS2812 // Библиотека использует блок PIO, // который в свою очередь использует нумерацию // микроконтроллера RP2040, а не Arduino. constexpr uint8_t PIN_GPIO_WS2812 = 25; // Количество светодиодов в матрице constexpr uint8_t LED_COUNT = 16; // Создаём объект для работы со светодиодной матрицей Adafruit_NeoPixel matrix = Adafruit_NeoPixel(LED_COUNT, PIN_GPIO_WS2812, NEO_GRB + NEO_KHZ800); void setup() { // Инициализация матрицы matrix.begin(); // Устанавливаем яркость светодиодов // Диапазон значений от 0 до 255 matrix.setBrightness(40); } void loop() { // Заполняем матрицу по сегментам «бегущий огонь» красного цвета colorWipe(matrix.Color(255, 0, 0), 100); // Заполняем матрицу по сегментам «бегущий огонь» зелёного цвета colorWipe(matrix.Color(0, 255, 0), 100); // Заполняем матрицу по сегментам «бегущий огонь» синего цвета colorWipe(matrix.Color(0, 0, 255), 100); // Гасим матрицу по сегментам «бегущая тень» colorWipe(matrix.Color(0, 0, 0), 100); } // Функция заполнения каждого сегмента void colorWipe(uint32_t c, uint8_t wait) { for (uint16_t i = 0; i < matrix.numPixels(); i++) { // Заполняем текущий сегмент выбранным цветом matrix.setPixelColor(i, c); matrix.show(); // Ждём delay(wait); } }