Съдържание:

4 -канален DMX димер: 6 стъпки
4 -канален DMX димер: 6 стъпки

Видео: 4 -канален DMX димер: 6 стъпки

Видео: 4 -канален DMX димер: 6 стъпки
Видео: Начало работы с QLC+ Управление цветомузыкой с компьютера. Как управлять светом. 2024, Ноември
Anonim
4 -канален DMX димер
4 -канален DMX димер

Концепцията е да се проектира и създаде преносим димер.

Изисквания:

  • DMX512 Контролируем
  • 4 канала
  • Преносим
  • Лесен за използване

Предложих тази идея на моя професор в WSU, защото исках да комбинирам страстите си към театъра и компютрите. Този проект действаше малко като моя старши проект в театралния отдел. Ако имате някакви коментари или въпроси, ще се радвам да помогна.

Бъдещото развитие може да включва повече канали, 5 пинов DMX конектор, DMX преминаване, 8 dip превключвателя за смяна на канала, печатна платка.

Мигрирах този проект от https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html, защото все още е популярен, предполагам. Също така загубих моя начален файл iWeb, така че вече не мога лесно да го актуализирам. Би било хубаво да се позволи на хората да споделят своите въпроси по проекта помежду си.

Стъпка 1: Събиране на хардуера

Събиране на хардуера
Събиране на хардуера

Използван хардуер: Повечето от тях бяха поръчани от Tayda Electronics. Харесвам ги повече от DigiKey поради по -малкия и по -лесен за разбиране избор.

  1. ATMEGA328, Микроконтролер
  2. MOC3020, оптичен съединител TRIAC. Не ZeroCross.
  3. MAX458 или SN75176BP, DMX приемник
  4. ISP814, променливотоков променлив ток
  5. 7805, 5v регулатор
  6. BTA24-600, 600V 25A TRIAC
  7. 20MHz кристал
  8. 9V захранване

Няколко препятствия и поуки, научени по пътя

  • Ако не сте експерт по регистрация, придържайте се към ATMEGA328P
  • Грешни оптрони. Не искате Zero Cross
  • Високите канали бяха нестабилни. Преминаването от 16MHz на 20MHz реши този проблем
  • Не може да има индикатор за състоянието на DMX, защото повикването за прекъсване трябваше да бъде много бързо
  • Захранването с постоянен ток трябва да бъде изключително стабилно, всяко вълнение ще предизвика DMX сигнала да стане много шумен

Дизайнът TRIAC дойде от MRedmon, благодаря.

Стъпка 2: Дизайн на верига

Дизайн на вериги
Дизайн на вериги

Използвах Fritzing 7.7 на Mac, за да проектирам моята схема.

MAX485 отгоре се използва за преобразуване на DMX сигнала в нещо, което Arduino може да прочете.

4N35 вляво се използва за откриване на нулевия кръст на променливотоковия сигнал, така че Arduino ще знае по кое време да затъмни изхода на синусоидалната вълна. Повече за това как хардуерът и софтуерът взаимодействат в раздела за софтуера.

Получих въпроса дали този проект ще работи в Европа с 230V и 50Hz? Не живея в Европа, нито пътувам често, за да мога да тествам този дизайн. Трябва да работи, просто ще трябва да промените кода за време на яркостта на кода за различното забавяне на честотата.

Стъпка 3: Дизайнът на веригата на Kovari

Дизайн на веригата на Ковари
Дизайн на веригата на Ковари
Дизайн на веригата на Ковари
Дизайн на веригата на Ковари

В процеса на издигане на моя уебсайт успях да проведа няколко разговора по имейл. Единият беше с Ковари Андрей, който направи схемен дизайн въз основа на този проект и искаше да сподели своя дизайн. Не съм дизайнер на платки, но това е проект на Eagle. Кажете ми как работи за вас, ако го използвате.

Стъпка 4: Дизайнът на веригата на Джакомо

Дизайн на веригата на Джакомо
Дизайн на веригата на Джакомо

От време на време хората ще ми изпращат съобщения с вълнуващите адаптации, които са направили с тази инструкция и реших, че трябва да ги споделя с всички вас.

Джакомо модифицира веригата, така че не е необходим централен трансформатор. Печатната платка е едностранна и може да бъде по -достъпно решение за тези, които не могат да направят двустранно у дома (малко трудно).

Стъпка 5: Софтуер

Софтуер
Софтуер

Аз съм софтуерен инженер по професия, така че тази част е най -подробна.

Summery: Когато Arduino първо стартира, се извиква методът setup (). Там настроих няколко от променливите и изходните места, които да се използват по -късно. zeroCrossInterupt () се извиква/ изпълнява всеки път, когато AC пресича от положително към отрицателно напрежение. Той ще зададе флага zeroCross за всеки канал и ще стартира таймера. Методът loop () се извиква непрекъснато завинаги. За да включите изхода, TRIAC трябва да се задейства само за 10 микросекунди. Ако е време за задействане на TRIAC и zeroCross се е случило, изходът ще се включи до края на AC фазата.

Имаше няколко примера онлайн, с които стартирах този проект. Основното нещо, което не можах да намеря, беше наличието на множество изходи TRIAC. Други използваха функцията за забавяне, за да PWM изхода, но това не би работило в моя случай, защото ATMEGA трябва да слуша DMX през цялото време. Реших това, като пулсирах TRIAC на толкова много ms след нулево кръстосване. Чрез пулсиране на TRIAC по-близо до нулево кръстосване се извежда повече от грешката на греха.

Ето как изглежда половината грешна вълна от 120VAC на осцилоскоп, по -горе.

ISP814 е свързан към прекъсване 1. Така че, когато получи сигнал, че AC преминава от положително към отрицателно или обратно, той настройва нулевия кръст за всеки канал на истинско и стартира хронометъра.

В метода loop () той проверява всеки канал дали zeroCross е вярно и времето за активиране е изтекло, ще пулсира TRIAC за 10 микросекунди. Това е достатъчно, за да включите TRIAC. След като TRIAC е включен, той ще остане включен до zeroCross. Светлината ще мига, когато DMX е около 3%, така че добавих прерязването там, за да го предотвратя. Това беше причината Arduino да е твърде бавен и пулсът понякога би задействал следващата грешна вълна вместо последните 4% от вълната.

Също така в loop () задавам PWM стойността на светодиодите за състоянието. Тези светодиоди могат да използват вътрешната ШИМ, генерирана от Arduino, защото не е нужно да се притесняваме за нулевия кръст на AC. След като ШИМ е настроен, Arduino ще продължи с тази яркост, докато не бъде казано по друг начин.

Както е отбелязано в горните коментари, за да използвате DMX прекъсване на пин 2 и да работите на 20MHz, ще трябва да редактирате някои от файловете на приложението Arduino. В HardwareSerial.cpp парче код трябва да бъде изтрит, което ни позволява да напишем наше собствено повикване за прекъсване. Този ISR метод е в долната част на кода за обработка на DMX прекъсването. Ако ще използвате Arduino като ISP програмист, не забравяйте да върнете промените в HardwareSerial.cpp, в противен случай ATMEGA328 на дъската за хляб ще бъде недостъпен. Втората промяна е по -лека. Файлът board.txt трябва да бъде променен на новата 20MHz тактова честота.

яркост [ch] = карта (DmxRxField [ch], 0, 265, 8000, 0);

Яркостта се съпоставя с 8000, защото това е количеството микросекунди от 1/2 синусоидална вълна при 60 Hz. Така че при пълна яркост 256 DMX програмата ще остави 1/2 AC синусоида ВКЛЮЧЕНА за 8000us. Дойдох с 8000 чрез предположение и проверка. Изчисляването на 1000000us/60hz/2 = 8333, така че това може да е по -добро число, но наличието на допълнителни 333us над главата позволява TRIAC да се отвори и всяко трептене в програмата вероятно е добра идея.

На Arduino 1.5.3, че са преместили местоположението на файла HardwareSerial.cpp. Сега е /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp Ще трябва да коментирате цялото това, ако блокът започва с ред 39: #if дефиниран (USART_RX_vect)

В противен случай ще получите тази грешка: core/core.a (HardwareSerial0.cpp.o): Във функцията `_vector_18 ':

Стъпка 6: Опаковане

Опаковане
Опаковане
Опаковане
Опаковане
Опаковане
Опаковане

Взех сивата кутия за проекти в Menards в тяхната електрическа секция. Използвах бутален трион, за да изрежа отворите за електрически щепсел. Случаят има театрална c-скоба, прикрепена към горната част за окачване. Индикаторите за състоянието на всеки вход и изход помагат за диагностициране, ако има проблем. За обяснение на различните портове на устройството е използван създател на етикети. Цифрите до всеки щепсел представляват номера на DMX канала. Закрепих платката и трансформатора с малко горещо лепило. Светодиодите са залепени на място с държачи за светодиоди.

Препоръчано: