Светильник с DMX-управлением и установкой адреса

Задача

Разработать схему и изготовить светодиодный источник света для театральных постановок с управлением по протоколу DMX512 и возможностью индикации и изменения текущего адреса устройства в диапазоне от 1 до 512.

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

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

Техническое решение

В качестве управляющего устройства выбран микроконтроллерный блок Arduino Duemilanove с процессором Atmega 328 и модуль DMX-приемника и четырехканального ключа.

Для индикации текущего адреса устройства выбран четырехразрядный семисегментный светодиодный индикатор с контроллером ТМ1637. Контроллер позволяет выводить информацию на индикатор последовательно (по двухпроводной линии), что значительно упрощает конструкцию и программирование устройства.

В качестве источников света использованы отрезки светодиодной ленты соответствующих цветов.
увеличить

Принципиальная схема

DMX-адрес устройства (1-512) хранится в энергонезависимой памяти контроллера и его значение выводится на семисегментный индикатор. В случае необходимости текущий адрес устройства может быть изменен кнопками "MENU", "UP", "DOWN" и "ENTER".

Внешний управляющий сигнал в стандарте DMX512 поступает на микросхему SN75176, включенную в режиме приемника, а с нее - на вход последовательного приема (RX) микроконтроллера Arduino.

Если текущий адрес устройства совпадает с адресом, заданным внешним пультом управления, микроконтроллер принимает и обрабатывает поступающие сигналы. В соответстви с ними, контроллер в режиме широтно-импульсной модуляции (PWM) управляет четырьмя транзисторными ключами.

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

Конструкция

Для питания устройства от сети использован внешний промышленный стабилизатор напряжения 12 вольт с рабочим током до 5А.

Для питания микроконтроллера приемника DMX-сигналов и семисегментного индикатора используется дополнительный стабилизатор напряжения +5 вольт на микросхеме LM7805 с радиатором.

Правильно собранное устройство не требует настройки и начинает работать сразу.

Алгоритм работы и программа для Arduino

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

Уровни яркости задаются при помощи формирования сигналов с широтно-импульсной модуляцией (PWM) для каждого канала, причем уровень яркости каждого канала пропорционален произведению уровня яркости соответствующего цвета и общего уровня яркости для всех каналов.

Текущий DMX-адрес устройства хранится в энергонезависимой памяти контроллера и может быть изменен при помощи кнопок на передней панели устройства.

При включении прибора текущий DMX-адрес высвечивается на семисегментном индикаторе.

Для изменения адреса необходимо нажать кнопку "MENU", при этом на индикаторе появится буква "А" и три цифры адреса (в диапазоне от 1 до 512). Кнопками "UP" и "DOWN" можно увеличить или уменьшить значение адреса, причем длительное нажатие на кнопку увеличивает скорость изменения адреса (шаг прокрутки).

Новый адрес устройства может быть подтвержден кнопкой "ENTER" (при этом в энергонезависимой памяти контроллера будет сохранено его новое значение) или отменен нажатием на кнопку "MENU". В этом случае DMX-адрес устройства останется прежним.

Если новый адрес устройства совпадает с предыдущим, запись в ПЗУ микроконтроллера не производится даже при нажатой кнопке "ENTER". Это сделано для экономии количества циклов перезаписи ПЗУ. Ресурс числа перезаписей ограничен, поэтому не следует изменять текущий DMX-адрес слишком часто.

Программа занимает в памяти около пяти килобайт, поэтому можно использовать микроконтроллер Arduino с процессором Atmega 168. Число каналов PWM легко увеличить до шести (с использованием платы DMX-приемника и шестиканального ключа) или уменьшить до трех (для стандартной RGB-ленты).

Для работы программы потребуется установка в папку "library" IDE-оболочки для Arduino дополнительных библиотек: DMXSerial, display TM1637, EEPROM

программа для Arduino
Скачать программу для Arduino - dmx_led2.ino

PostScriptum
Внимание!: перед записью программы в память микроконтроллера отключите вход RX (контакт 0 на плате Arduino) от платы DMX-приемника. Выход TX (контакт 1) подключен к кнопке с нормально разомкнутыми контактами, поэтому специально отключать его нет необходимости, однако случайное нажатие на кнопку "ENTER" может привести к сбою программы при записи.

Следует внимательно паять входы на разъеме DMX - проводники DMX-A и DMX-B менять местами нельзя!

Ссылки по теме