// библиотека для работы с RGB-матрицей #include // номер пина, к которому подключена RGB-матрица constexpr uint8_t MATRIX_PIN = 4; // количество светодиодов в матрице constexpr uint8_t LED_COUNT = 16; // яркость матрицы, // задаётся в диапазоне от 0 (минимальная яркость) до 255 (максимальная яркость) constexpr uint8_t BRIGHTNESS = 20; // создаём объект класса Adafruit_NeoPixel Adafruit_NeoPixel matrix = Adafruit_NeoPixel(LED_COUNT, MATRIX_PIN, NEO_GRB + NEO_KHZ800); void setup() { // инициализация RGB-матрицы matrix.begin(); // очищаем матрицу matrix.show(); // устанавливаем яркость светодиодов matrix.setBrightness(BRIGHTNESS); } void loop(){ // заполняем RGB-матрицу по сегментам «бегущий огонь» красного цвета colorWipe(matrix.Color(255, 0, 0), 50); // заполняем RGB-матрицу по сегментам «бегущий огонь» зелёного цвета colorWipe(matrix.Color(0, 255, 0), 50); // заполняем RGB-матрицу по сегментам «бегущий огонь» синего цвета colorWipe(matrix.Color(0, 0, 255), 50); // гасим RGB-матрицу по сегментам «бегущая тень» colorWipe(matrix.Color(0, 0, 0), 50); } // функция заполнения каждого сегмента 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); } }