Управление освещением
Презентации
Технические решения на LogicMachine
Визуализация
  logicmachine.net.ru    Технические решения на LogicMachine    Управление яркостью LED RGB ленты с заранее заданным цветом

Управление яркостью LED RGB ленты с заранее заданным цветом

Позволяет выбрать нужный цвет и в последствии менять яркость свечения, при этом не изменяя цвет.

Настройка

Для установки уровня яркости потребуется еще один групповой адрес (0/0/10)

Шаг 1 — Соединитесь с LogicMachine

Соединитесь с LogicMachine при помощи стандартных параметров доступа (IP: 192.168.0.10; login/password: admin/admin)

Шаг 2 – Создайте групповые адреса

Создайте 6 групповых адресов управления каждым цветом RGB светильника.

Для отправки значений на EVIKA KNXLED используйте адреса: 0/0/5, 0/0/6 и 0/0/7

Для выбора цвета будут использоваться адреса: 0/0/12, 0/0/13 и 0/0/14

Для установки уровня яркости потребуется еще один групповой адрес (0/0/10)

Шаг 3 — Создайте скрипт: “RGB диммирование”

На панели Скрипты (Scripts) нажмите кнопку Событийные (Event-based), затем добавьте сценарий, нажав Добавить новый скрипт (Add new script). В данном примере сценарий будет запущен каждый раз при отправке значения на любой из групповых адресов KNX, управляющих RGB светильником (если меняется значение одного из цветов или яркость).

Шаг 4 — Cохраните сценарий и войдите в редактор

После сохранения сценария, нажмите на значке в колонке Редактор (Editor), чтобы войти в редактор сценариев. Вы легко можете найти подходящий код для ввода среди встроенных шаблонов.

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

-- получение значение яркости с регулятора
bright = event.getvalue()
 
-- получение значения о выбранном цвете из групповых адресов
red1 = grp.getvalue('0/0/12')
green1 = grp.getvalue('0/0/13')
blue1 = grp.getvalue('0/0/14')
 
-- получение нового значения каждого канала с учетом уровня яркости
red2 = red1*bright/100
green2 = green1*bright/100
blue2 = blue1*bright/100
 
-- запись новых значений
grp.write('0/0/5', red2)
grp.write('0/0/6', green2)
grp.write('0/0/7', blue2)
-- с учетом уровня яркости
new_red = value_red * value_lum / 100
new_green = value_green * value_lum / 100
new_blue = value_blue * value_lum / 100
-- запишите новые значения
grp.write('1/1/2', new_red, dt.scale)
grp.write('1/1/3', new_green, dt.scale)
grp.write('1/1/4', new_blue, dt.scale)

Шаг 5 — Создаем 3 скрипта на каждую из составляющих цвета

Необходимо создать 3 событийных скрипта на групповых адресах, использующихся для выбора цвета (0/0/12, 0/0/13, 0/0/14).

На примере красного цвета (0/0/12):

-- получение значения на вводе
value = event.getvalue()
-- получение значения яркости из группового адреса
bright = grp.getvalue('0/0/10')
-- получение нового значения канала с учетом уровня яркости
red = value*bright/100
color = math.floor(red + 0.5)
-- запись нового значения
grp.write('0/0/5', color)




Copyright
© Embedded Systems Rus
2019. All Rights Reserved