Matrix RGB (обновлено: 07 Jun 2021, 14:50:24)

Цветные матричные дисплеи, основанные на RGB светодиодах ws2812 массивом 8х32 с возможностью расширения.

При работе бегущей строки возможны артефакты изображения из-за проблем с помехами  от ближайших электронных устройств и проблем с питанием.

На конструкторе ESP8266 RTOS возможны артефакты - тут не решен вопрос с работой I2S драйвера и используется программная реализация.


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

Поддерживаются матрицы, в которых светодиоды подключены вертикальной или горизонтальной змейкой. Начало змейки - вверх слева. Режим горизонтальной змейки включается через шестеренку.

Требуется отдельный источник питания на 5В (лучше 4.5 в) и не менее 8А (для одной 8х32 при максимальной яркости 255), чем больше планируется включать яркость, тем больше требуется ток. При постоянной включенной большой яркости требуется установка на радиатор!

Для защиты входа первого светодиода матрицы рекомендуется на нём последовательно подключить резистор 200..500 Ом.

Настройка опции

Для экономии ОЗУ по умолчанию включен режим 4 оттенков.

Настройка выбора GPIO у ESP32 / ESP32S2 для подключения матрицы находится в веб модуля поле DATAIN. Используется RMT драйвер и раздельный код с опцией WS2812.

У ESP8266 вывод поменять невозможно и подключается всегда к GPIO 3 (RX). Используется I2S драйвер и общий код с опцией WS2812.

На модуле ESP8266(NoOS) рекомендуется свободной памяти не менее 20кб(при выключенной опции)  -иначе возможен отказ или сбой в работе при большом количестве матриц и длинной бегущей строке !

Так же на ESP8266(NoOS) количество матриц ограничено до 4 в связи с нехваткой ресурсов.

Для матрицы 8х32 требуется указать количество матриц - 4 (8х8 - это одно знакоместо), для двух матриц 8х32 соответственно количество матриц - 8.

Максимальное значение яркости - 255.

Для вывода своего текста на матрицу необходимо установить опцию "конструктор строк" в конструкторе прошивки.

Для поддержки русского языка необходимо включить русский шрифт в конструкторе прошивки.

Ниже необходимо установить соответствующие опции вывода времени, а так же выбрать профили конструктора строки, которые необходимо вывести.

Можно выбрать несколько профилей, они будут склеены.

Для плавного хода бегущей строки - рекомендуется в конце и в начале строки добавить несколько пробелов.

Красивый вариант, если включен вывод часов и  в конце и в начале поставить макрос _TIME_ в бегущей строке, то бегущая строка плавно уползает со временем в начале и в конце время приползает обратно.

Пример: _TIME_ Дома _VS11_°C _VS12_% Улица _NM2_°C Прогноз Сегодня _GTT_°C, Завтра _GYT_°C _TIME_

Дополнительно можно настроить с какой секунды текущей минуты запускать бегущую строку в поле "Line print", а так же установить скорость бегущей строки в "Speed print", при установленной скорости равной нулю строка не будет бегать. Указать интервал бегущей строки в минутах можно в поле Interval.

Работа с цветами

Опция поддерживает до 16 или до 4 оттенков каждого из 3 цветов. Режим 4 оттенков включен по умолчанию. Установленная яркость ограничивает количество оттенков т.к. используется интерполяция значения от значения яркости. Для получения всех оттенков яркость должна быть установлена не менее 15(16 оттенков) и не менее 3(4 оттенка).

Базовые цвета текста и фона можно установить на странице настроек опции модуля. Там так же действуют буквенные коды цветов, описанных ниже.

В любом виде установки текста через опции прошивки доступна установка цвета текста и цвета фона части строки, следующий за шаблоном цвета.

Доступные цветовые шаблоны:

!Х - задает цвет текста

#X - задает цвет фона

Где Х - это код или буква цвета:

R - Красный

G - Зеленый

B - Синий

W - Белый (R+G+B)

Y - Желтый (R+G)

M - Пурпурный(R+B)

C - Голубой(G+B)

N - Черный(выкл. светодиоды)

Или можно задать HEX значение в виде RGB как число FFF , например F00 будет соответствовать красному. В данном случае яркость конкретного цвета можно задать hex числом от 0 до F. Для режима 4 оттенков максимальная яркость 3 ,т.е. 030 будет соответствовать зеленому.

Учитывайте, что при использовании 2 или 3 цветов(комбинированный цвет) одновременно яркость будет выше, чем один цвет и для выравнивания яркости выбирать нужно яркость ниже.

Пример: _TIME_ !CДома _VS11_°C _VS12_% !RУлица _NM2_°C !M#WПрогноз Сегодня _GTT_°C, Завтра _GYT_°C !F0F_TIME_

При использовании опции логических выражений цвет текста или фона можно менять по условиям.

Управление через MQTT

Текст отправить в топик login/hostname/[set/]matrix/msgX, где X - скорость бегущей строки, параметр не обязательный.

Топик  login/hostname/[set/]matrix/light - Управление яркостью.

Топик - set добавляется, если включены отдельные топики.

Управление через GET запрос

Для отправки сообщения через GET запрос необходимо отправить команду http://[ip_adr]/matrixmsg?txt=text&shift=X, где X - скорость бегущей строки, параметр не обязательный.

Управление через Interpreter

Через опцию Interpreter доступно управление и вывод любых данных по условиям ,используя шаблоны или метрики через функцию printm(скорость строки, текст),  например: printm(0, _TIMES_ _DATE_) 

Подробнее в документации Interpreter


Управление яркостью через планировщик заданий (Scheduler) и Logic2

При установленном модуле планировщика заданий доступно управлением яркостью дисплея по времени.

Для этого необходимо на вкладке Scheduler модуля выбрать задачу matrix и указать в полях время и дни недели.

В поле state указать желаемую яркость дисплея.

При установленном модуле Logic2 (Логический модуль2) возможно управлять яркостью по цепочке условий, например по датчику освещенности и/или по времени комбинируя условия.

На вкладке event требуется указать событие Matrix brightness. Более подробное описание доступно на странице данной опции.

Управление бегущей строкой

Бегущая строка вызывается по интервалу, указанному в поле Interval настроек модуля, а так же при обращению к GPIO 198.

К примеру можно вызвать бегущую строку через ИК пульт, Радио пульт, прерывание (KEY), по событию в логическом модуле, указав данный GPIO в настройках опции.