[SLOT_n]
mode = pwmLedsПрограммный модуль трёх ШИМ-каналов с частотой 5 кГц — для светодиодных лент, ламп и прочих нагрузок с плавной регулировкой.
Совместимость
Принцип работы
Три канала ШИМ трактуются как компоненты цвета R, G и B. Целевой цвет задаётся
опцией RGBcolor или командой setRGB, режим анимации — опцией ledMode.
Яркость меняется плавно: за время fadeTime значение переходит между minBright и maxBright кадрами с частотой refreshRate.
Каналами можно управлять и по отдельности — командой ch_N/setBright. Это удобно,
когда к модулю подключены три независимые одноцветные нагрузки, а не одна
RGB-лента.
Топики
База топика события:
<deviceName>/pwmLeds_<slot>— напримерmoduleBox/pwmLeds_0
База топика действия:
<deviceName>/pwmLeds_<slot>— напримерmoduleBox/pwmLeds_0
Полный топик — база плюс направление и имя: moduleBox/pwmLeds_0/action/setRGB.
Опции
Доступные опции:
- disableOnStart — флаг, стартовать в выключенном состоянии и ждать
action/enableсо значением1. По умолчанию модуль активен сразу. - inverse — флаг, инверсия значений.
- maxBright — число(int), максимальная яркость. Диапазон 1–4096. По умолчанию 255.
- minBright — число(int), минимальная яркость. Диапазон 0–4096. По умолчанию 0.
- refreshRate — число(int), период обновления. Диапазон 1–100. По умолчанию 40.
- fadeTime — число(int), время затухания свечения в миллисекундах. Диапазон 10–10000. По умолчанию 100.
- RGBcolor — строка(RGB), начальный цвет. Задаётся десятичными значениями R G B через пробел. 0 0 255 - синий по умолчанию. По умолчанию 0 0 255.
- ledMode — строка(enum), задаёт режим анимации: default - постоянное свечение целевым цветом. flash - мигание между min и max яркостью. rainbow - циклический перебор оттенков HSV. Значения:
default,flash,rainbow.
События
| Топик | Payload | Описание |
|---|---|---|
pwmLeds_<slot>/event/enable | 0 / 1 | Состояние модуля - активен (1) или спит (0) |
Команды
| Топик | Payload | Описание |
|---|---|---|
pwmLeds_<slot>/action/setRGB | R G B | Установить новый целевой цвет. Цвет задаётся десятичными значениями R G B через пробел. Пример, 255 0 0 - красный |
pwmLeds_<slot>/action/setMode | default, flash, rainbow | Установить новый режим анимации цветов. default - постоянное свечение целевым цветом. flash - мигание между min и max яркостью. rainbow - циклический перебор оттенков HSV |
pwmLeds_<slot>/action/setIncrement | 1–255 | Приращение яркости за кадр — скорость анимации и переходов |
pwmLeds_<slot>/action/setMaxBright | 1–255 | Установить максимальное значение яркости для всех каналов. Значение |
pwmLeds_<slot>/action/ch_0/setBright | 0–255 | Яркость канала 0 |
pwmLeds_<slot>/action/ch_1/setBright | 0–255 | Яркость канала 1 |
pwmLeds_<slot>/action/ch_2/setBright | 0–255 | Яркость канала 2 |
pwmLeds_<slot>/action/setMinBright | 0–254 | Установить минимальное значение яркости. Значение |
pwmLeds_<slot>/action/setFadeTime | 100–10000 | Время переходного процесса при изменении яркости, |
pwmLeds_<slot>/action/enable | 0 / 1 | Включить (1) или выключить (0) модуль |
Пример: топик moduleBox/pwmLeds_0/action/ch_1/setBright, payload 128.
Режимы анимации
- default — постоянное свечение целевым цветом.
- flash — мигание между minBright и maxBright.
- rainbow — циклический перебор оттенков по палитре HSV.
Примеры
[SLOT_0]
mode = pwmLeds
options = ledMode:rainbow, fadeTime:5000, RGBcolor:0 0 255
;кнопка включает и выключает подсветку
crosslink = button_1/event/press:@->pwmLeds_0/action/enable:@При включении подсветка плавно переливается по палитре HSV, время перехода 5 секунд.
[SLOT_1]
mode = pwmLeds
options = ledMode:default, maxBright:200, fadeTime:300
;три канала как три независимые лампы
crosslink = in_2/event/ch_0:1->pwmLeds_1/action/ch_0/setBright:200, in_2/event/ch_0:0->pwmLeds_1/action/ch_0/setBright:0Подробнее — внутренние связи (crossLink).