Светодиодная матрица 16×16 на WS2812 и Arduino: бегущая строка и эффекты

Светодиодная матрица 16×16 на WS2812 — яркий дисплей для Arduino с 256 адресными RGB-светодиодами. Каждая точка управляется индивидуально, создавая анимации, бегущие строки, узоры или текст. Библиотека FastLED для эффектов огня/пятен, Adafruit NeoMatrix для текста. Русификация шрифта для кириллицы. Проект для бегущих строк, новогодних гирлянд, рекламы или индикации. Питание 5В, отдельный блок для стабильности. Расширьте до 32×32 или ленты для больших экранов.

Матрица 16x16 WS2812 Arduino бегущая строка эффекты FastLED

Возможности матрицы 16×16 WS2812

256 NeoPixel в компактном 16×16 см. Полноцветные анимации: огонь, искры, радуга, пятна. Бегущая строка с русским текстом. Русификация шрифта GFX. Смена цвета, яркости, скорости. Интеграция с часами, датчиками или Wi-Fi (ESP8266). Каскад для больших экранов. Новогодние эффекты, реклама, индикация статуса.

Компоненты

  • Arduino Uno/Nano
  • Матрица 16×16 WS2812
  • Блок питания 5В 5–10А
  • Конденсатор 1000 мкФ
  • Резистор 330 Ом (DIN)

Подключение матрицы

  • DIN → D6 Arduino (через 330 Ом)
  • 5V → внешний БП
  • GND → общий
  • Конденсатор параллельно питанию

DOUT для каскада к DIN следующей.

Библиотеки

FastLED для эффектов (огонь, линии). Adafruit NeoPixel, NeoMatrix, GFX для текста. Русификатор glcdfont.c для кириллицы.

Эффект Lines

Меняющиеся линии, цветовые переходы. Настройка скорости, яркости в коде.

Эффект Spots

Плавные расплывающиеся пятна. Регулировка масштаба, охлаждения.

Бегущая строка

Русский текст, смена цвета (радуга). Яркость фона/текста, позиция, скорость.

Скетч бегущей строки

#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>

#define PIN 6
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(16, 16, PIN, NEO_MATRIX_TOP + NEO_MATRIX_LEFT + NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG, NEO_GRB + NEO_KHZ800);

const uint16_t colors[] = {matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(0, 0, 255), matrix.Color(255, 255, 0), matrix.Color(255, 255, 255)};
int numColors = 5;

void setup() {
  matrix.begin();
  matrix.setTextWrap(false);
  matrix.setBrightness(40);
  matrix.setTextColor(colors[0]);
}

int x = matrix.width();
int pass = 0;

void loop() {
  matrix.fillScreen(0);
  matrix.setCursor(x, 5);
  matrix.print("С Новым Годом!");
  if(--x < -100) {
    x = matrix.width();
    if(++pass >= numColors) pass = 0;
    matrix.setTextColor(colors[pass]);
  }
  matrix.show();
  delay(50);
}
Инициализирует матрицу NeoPixel 16×16 на пине 6.
Прокручивает текст «С Новым Годом!» справа налево по экрану.
После полного выхода текста меняет цвет на следующий из массива (красный → зеленый → синий → жёлтый → белый).
Задержка 50 мс обеспечивает плавное движение.
Яркость матрицы установлена на 40.

Русификация

Замените glcdfont.c в Adafruit_GFX на русифицированный. Вывод кириллицы без кракозябр.

Расширение

Каскад матриц для больших экранов. Wi-Fi управление ESP8266. Часы, температура DHT. Новогодние анимации.

Заключение

Матрица 16×16 WS2812 — универсальный дисплей для Arduino. Бегущая строка, эффекты, русский текст. Готово к новогодним гирляндам или рекламе.

FAQ — Матрица 16×16 WS2812

Мерцание матрицы?

Добавьте конденсатор 1000 мкФ параллельно питанию. Отдельный БП 5В 10А для стабильности.

Русский текст кракозябры?

Замените glcdfont.c в Adafruit_GFX на русифицированный. Или используйте символы латиницей.

Больше матриц каскадом?

DOUT первой → DIN второй. NUM_LEDS = 512 для 32×16. Общий пин данных.

Питание от Arduino?

Нет, максимум 20–30 LED. Для 256 — внешний БП 5В 10–15А.

Другие эффекты?

FastLED примеры: Fire2012, Rainbow, Confetti. Меняйте в скетче.

ESP8266 вместо Arduino?

Да, те же библиотеки, пины GPIO другие. Wi-Fi для удалённого управления.

Скорость анимации?

delay() в loop или FPS в FastLED. Меньше delay — быстрее.

📁 Скачать примеры