Это старая версия документа!
DMX512 приемник, на 4 канала
Описание
В этой статье, я расскажу вам как сделать приемник сигнала DMX512 на 3 канала управления. Данный приемник DMX способен управлять 3мя каналами RGB светодиодной ленты, или же любым другим неуправляемым оборудованием. Данная версия приемника может быть улучшена до 4-5-6 и до 8 каналов. Впринципе зависит от микросхемы контроллера, в зависимости от количества ее выходов. В данной версии 3 независимых выходных ШИМ канала основанных на МОСФЕТ транзисторах.
Элементы
| Элемент | Свойства | Описание |
|---|---|---|
| R1, R2, R3 | 120 Ω | Резистор коричневый, красный, черный, черный, коричневый или коричневый, красный, коричневый, серебряный |
| R4, R6 | 470 Ω | Резистор желтый, фиолетовый, черный, черный, коричневый или (желтый, фиолетовый, коричневый, серебряный |
| R5 | 10k Ω | Резистор коричневый, черный, черный, красный, коричневый или коричневый, черный, оранжевый, серебряный |
| R7 | 510 Ω | Резистор зеленый, коричневый, черный, черный, коричневый или зеленый, коричневый, коричневый, серебряный |
| D1 | 1N4004 | Диод выпрямитель для защиты. |
| Q1 | 16 МГц | 16 МГц часы кристалл.(Желателен, но не обязателен в сборке) |
| С2, С3 | 22 пФ | Конденсаторы на 22 пикрофарата |
| С6, С7 | 100 мкФ | Электролитические конденсаторы на 100 микрофарат(Установите правильно) |
| С4 | 33 мкФ | Электролитический конденсатор на 33 микрофарата |
| С1, С5, С8 | 100 нФ | Конденсаторы для фильтрации шума силовых линий. |
| LED1 | Светодиод | Светодиод для индикации |
| S1 | Переключатель для выбора адреса | |
| 7805 | 7805 | Регулятор напряжения 5 вольт. |
| POWER | PWD | Разьем питания |
| ATmega168 | ATmega168 | Микроконтроллер для управления |
| ICSP | ICSP | Разьем для программирования Atmega168 |
| DMX | XLR | Разьем XLR или схожий с ним |
| 6N137 | 6N137 | Оптрон для гальванической развязки линий.(Установите правильно) |
| MAX481 | MAX481(или MAX482) | Микросхема преобразователь дифференциального сигнала DMX в логический сигнал |
| DC1 | 0505 | Чип питания отдельной линии, используется для гальванической развязки |
Схема контроллера и платы
Схема
Плата
Прошивка Микроконтроллера
Скачать прошивку МКdmxspot.zip
Библиотека DMX 512 для МК dmxserial-master.zip
Модернизация
Вы сможете собрать готовую схему на монтажной плате, и попробовать как работает эта схема. А также в зависимости от опыта работы с МК, вы сможете заменять разные узлы данной схемы, например вместо транзисторов использовать реле для большой нагрузки, или сервоприводы и.т.д
Прошивка
Необходимую библиотеку добавить в папку с компилятором. Пример прошивки ниже
#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 адрес.







