DMX512 приемник, на 4 канала

В этой статье, я расскажу вам как сделать приемник сигнала DMX512 на 3 канала управления. Данный приемник DMX способен управлять 3мя каналами RGB светодиодной ленты, или же любым другим неуправляемым оборудованием. Данная версия приемника может быть улучшена до 4-5-6 и до 8 каналов. Впринципе зависит от микросхемы контроллера, в зависимости от количества ее выходов. В данной версии 3 независимых выходных ШИМ канала основанных на МОСФЕТ транзисторах.

Основная цель этого проекта заключается в создании недорогого DMX512 приемника, собранного на простых элементах.
Элемент Свойства Описание
R1, R2, R3 120 Ω Резистор коричневый, красный, черный, черный, коричневый или коричневый, красный, коричневый, серебряный
R4, R6 470 Ω Резистор желтый, фиолетовый, черный, черный, коричневый или (желтый, фиолетовый, коричневый, серебряный
R5 10k Ω Резистор коричневый, черный, черный, красный, коричневый или коричневый, черный, оранжевый, серебряный
R7510 ΩРезистор зеленый, коричневый, черный, черный, коричневый или зеленый, коричневый, коричневый, серебряный
D11N4004Диод выпрямитель для защиты.
Q116 МГц16 МГц часы кристалл.(Желателен, но не обязателен в сборке)
С2, С322 пФКонденсаторы на 22 пикрофарата
С6, С7100 мкФЭлектролитические конденсаторы на 100 микрофарат(Установите правильно)
С433 мкФЭлектролитический конденсатор на 33 микрофарата
С1, С5, С8100 нФКонденсаторы для фильтрации шума силовых линий.
LED1Светодиод Светодиод для индикации
S1Переключатель для выбора адреса
78057805Регулятор напряжения 5 вольт.
POWERPWDРазьем питания
ATmega168ATmega168Микроконтроллер для управления
ICSPICSPРазьем для программирования Atmega168
DMXXLRРазьем XLR или схожий с ним
6N1376N137Оптрон для гальванической развязки линий.(Установите правильно)
MAX481MAX481(или MAX482)Микросхема преобразователь дифференциального сигнала DMX в логический сигнал
DC10505Чип питания отдельной линии, используется для гальванической развязки

Схема

Плата

Скачать прошивку МКdmxspot.zip

Библиотека DMX 512 для МК dmxserial-master.zip

Вы сможете собрать готовую схему на монтажной плате, и попробовать как работает эта схема. А также в зависимости от опыта работы с МК, вы сможете заменять разные узлы данной схемы, например вместо транзисторов использовать реле для большой нагрузки, или сервоприводы и.т.д

Необходимую библиотеку добавить в папку с компилятором. Пример прошивки ниже

DMXReciver.txt
#include <DMXSerial.h>
 
// Константы выходных пинов
 
const int RedPin =    9;  // Пин для красного
const int GreenPin =  6;  // Пин для зеленого
const int BluePin =   5;  // Пин для синего
 
 
void setup(void)
{
 
 
  DMXSerial.init(DMXController);
 
 
 
  pinMode(RedPin,   OUTPUT); 
  pinMode(GreenPin, OUTPUT);
  pinMode(BluePin,  OUTPUT);
 
  analogWrite(RedPin, 80); 
  analogWrite(GreenPin, 80); 
  analogWrite(BluePin, 80); 
} 
 
 
//Установка значений для 3 каналов RGB с указанным оттенком (0...764)
void setChannelRGB(int channel, int hue) {
  hue = hue % 765;
  if (hue < 256) {
    /// От синего к красному
    DMXSerial.write(channel  , hue);
    DMXSerial.write(channel+1, 0);
    DMXSerial.write(channel+2, 255-hue);
 
  } else if (hue < 511) {
    /// От красного до зеленого
    DMXSerial.write(channel  , 255 - (hue-255));
    DMXSerial.write(channel+1, hue-255);
    DMXSerial.write(channel+2, 0);
 
  } else {
    /// От зеленого к синему
    DMXSerial.write(channel  , 0);
    DMXSerial.write(channel+1, 255 - (hue-510));
    DMXSerial.write(channel+2, hue-510);
  } // if
} // setChannelRGB()
 
 
void loop(void)
{
  unsigned long now = millis();
  int channeldmx= 1;
 
 
  int alpha = (now / 12) % 765;
 
 
 
  for (int n = 0; n < 20; n++) {
    setChannelRGB (n*3+1, alpha + n*64);
  } 
 
 
  analogWrite(RedPin,   DMXSerial.read(channeldmx+0));
  analogWrite(GreenPin, DMXSerial.read(channeldmx+1));
  analogWrite(BluePin,  DMXSerial.read(channeldmx+2));
}

Переменная channeldmx - устанавливает DMX адрес.

, eee, 2017/01/22 14:16

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

Относительно прошивки - фьюзы и код можна  в  хексе? 
, about_dmx-priemnik-svoimi-rukami, 2016/04/19 10:38, 2016/04/19 10:41

А как здесь задавать DMX-адрес приемника? Как использовать кнопку S1? Или какой адрес указан в прошивке?

Leo, 2016/04/25 02:22

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

Ваш комментарий. Вики-синтаксис разрешён: