Стандарт DMX-512 стар, стабилен и хорошо документирован
Протокол, прежде всего, ориентирован на управление до 512 устройствами, расположенными на одной шине. Каждое устройство имеет свой адрес
Вот примеры:
Хотя, как оказалось, тут тоже есть засада. Подробности ниже:
Для подключения всех LED светильников я заказал на AliExpress две такие вот платы:
Возможность управлять почти полутора киловаттами 24V лент с ограничением 2А на канал всего за 2,5 тыс руб подкупала. Причем, выходные ключи по даташиту тянут аж до 60 Ампер.
Но после подключения диммера к контроллеру он напрочь отказался понимать генерируемый им DMX512 сигнал.
При этом обе платы вели себя абсолютно идентично: в демо режиме функционировали абсолютно нормально. При помехах на входе, также, моргали каналами, а вот DMX сигнал ни с одного из двух имевшихся в наличии DMX Мастеров (панели на стену и собранного на Arduino) упорно не понимали.
Проблема оказалась в следующем:
Стандарт DMX не специфицирует интервал между передаваемыми каналами. То есть, Мастеру не возбраняется выдать в шину 3-4 канала, задуматься, затем следующие 3-4 канала и так далее.
Так, в частности, устроена популярная библиотека DMXSimple для Arduino
Как оказалось, контроллер не переваривал 2ms задержку между каналами (interframe delay). Несложная модификация кода библиотеки (сократил цикл в два раза) - и все работает
Вот так выглядит DMX сигнал после модификации библиотеки (цикл около 1 ms):