Стандарт DMX-512 стар, стабилен и хорошо документирован

Протокол, прежде всего, ориентирован на управление до 512 устройствами, расположенными на одной шине. Каждое устройство имеет свой адрес

Вот примеры:

DC 12-24 V Dimmer

AC 220V диммер

Хотя, как оказалось, тут тоже есть засада. Подробности ниже:

Для подключения всех LED светильников я заказал на AliExpress две такие вот платы:

http://ru.aliexpress.com/item/30-channel-27channel-Easy-DMX-LED-controller-dmx-decoder-driver-rgb-led-controller/2015743918.html?spm=2114.13010608.0.109.oHZEX8

Возможность управлять почти полутора киловаттами 24V лент с ограничением 2А на канал всего за 2,5 тыс руб подкупала. Причем, выходные ключи по даташиту тянут аж до 60 Ампер. 

Но после подключения диммера к контроллеру он напрочь отказался понимать генерируемый им DMX512 сигнал.

При этом обе платы вели себя абсолютно идентично: в демо режиме функционировали абсолютно нормально. При помехах на входе, также, моргали каналами, а вот DMX сигнал ни с одного из двух имевшихся в наличии DMX Мастеров (панели на стену и собранного на Arduino) упорно не понимали.

Проблема оказалась в следующем:

Стандарт DMX не специфицирует интервал между передаваемыми каналами. То есть, Мастеру не возбраняется выдать в шину 3-4 канала, задуматься, затем следующие 3-4 канала и так далее.

Так, в частности, устроена популярная библиотека DMXSimple для Arduino

Как оказалось, контроллер не переваривал 2ms задержку между каналами (interframe delay). Несложная модификация кода библиотеки (сократил цикл в два раза) - и все работает

 Вот так выглядит DMX сигнал после модификации библиотеки (цикл около 1 ms):

После исправления

 

 

 

 

Добавить комментарий


Защитный код
Обновить

0
0
0
s2sdefault