Obsah:

4kanálový stmievač DMX: 6 krokov
4kanálový stmievač DMX: 6 krokov

Video: 4kanálový stmievač DMX: 6 krokov

Video: 4kanálový stmievač DMX: 6 krokov
Video: Начало работы с QLC+ Управление цветомузыкой с компьютера. Как управлять светом. 2024, Júl
Anonim
4 -kanálový stmievač DMX
4 -kanálový stmievač DMX

Cieľom je navrhnúť a vytvoriť prenosný stmievač.

Požiadavky:

  • Ovládateľný DMX512
  • 4 kanály
  • Prenosný
  • Jednoduché použitie

Túto myšlienku som navrhol svojmu profesorovi na WSU, pretože som chcel spojiť svoje vášne pre divadlo a počítače. Tento projekt pôsobil trochu ako môj seniorský projekt v divadelnom oddelení. Ak máte akékoľvek otázky alebo pripomienky, rád vám pomôžem.

Budúci vývoj by mohol zahŕňať viac kanálov, 5 -kolíkový konektor DMX, prechod DMX, 8 prepínačov DIP na zmenu kanála a dosku s plošnými spojmi.

Tento projekt som migroval z https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html, pretože je hádam stále populárny. Tiež som stratil svoj základný súbor iWeb, takže ho už nemôžem ľahko aktualizovať. Bolo by pekné umožniť ľuďom navzájom sa podeliť o svoje otázky týkajúce sa projektu.

Krok 1: Zhromaždenie hardvéru

Zhromažďovanie hardvéru
Zhromažďovanie hardvéru

Použitý hardvér: Väčšina bola objednaná u spoločnosti Tayda Electronics. Mám ich radšej ako DigiKey kvôli menšiemu a zrozumiteľnejšiemu výberu.

  1. ATMEGA328, Mikroprocesor
  2. MOC3020, optočlen TRIAC. Nie ZeroCross.
  3. Prijímač MAX458 alebo SN75176BP, DMX
  4. ISP814, AC optočlen
  5. 7805, 5v regulátor
  6. BTA24-600, 600V 25A TRIAC
  7. 20 MHz kryštál
  8. Napájanie 9V

Na ceste bolo niekoľko prekážok a ponaučení

  • Ak nie ste odborníkom na registre, držte sa ATMEGA328P
  • Nesprávne optočleny. Nechcete Zero Cross
  • Vysoké kanály boli nestabilné. Tento problém vyriešil prechod zo 16 MHz na 20 MHz
  • Nemohlo mať kontrolku stavu DMX, pretože prerušovací hovor musel byť veľmi rýchly
  • Jednosmerný prúd musí byť extrémne stabilný, akékoľvek zvlnenie spôsobí, že signál DMX bude veľmi hlučný

Dizajn TRIAC pochádza od spoločnosti MRedmon, ďakujem.

Krok 2: Návrh obvodu

Návrh obvodu
Návrh obvodu

Na navrhnutie obvodu som použil Fritzing 7.7 na počítačoch Mac.

MAX485 v hornej časti slúži na konverziu signálu DMX na niečo, čo dokáže Arduino prečítať.

4N35 vľavo sa používa na detekciu kríženia nuly signálu AC, takže Arduino bude vedieť, v akom čase stlmiť výstup sínusovej vlny. Viac informácií o interakcii hardvéru a softvéru v softvérovej časti.

Dostal som otázku, bude tento projekt fungovať v Európe s 230 V a 50 Hz? Nežijem v Európe, ani tam často necestujem, aby som mohol otestovať tento dizajn. Malo by to fungovať, len by ste museli upraviť riadok časovania jasu kódu pre rôzne časové oneskorenie frekvencie.

Krok 3: Návrh obvodu Kovari

Kovariho obvodový dizajn
Kovariho obvodový dizajn
Kovariho obvodový dizajn
Kovariho obvodový dizajn

Vďaka procesu spustenia svojej webovej stránky som mohol viesť niekoľko e -mailových konverzácií. Jeden bol s Kovari Andreim, ktorý na základe tohto projektu urobil návrh obvodu a chcel sa o svoj návrh podeliť. Nie som návrhár obvodov, ale je to projekt Eagle. Dajte mi vedieť, ako to funguje pre vás, ak ho použijete.

Krok 4: Návrh obvodu Giacomo

Návrh obvodu Giacoma
Návrh obvodu Giacoma

Čas od času mi ľudia pošlú správu so vzrušujúcimi úpravami, ktoré urobili s týmto pokynom, a ja som prišiel na to, že by som sa o ne mal s vami všetkými podeliť.

Giacomo upravil obvod tak, aby nebol potrebný stredový odpichový transformátor. Doska plošných spojov je jednostranná a môže byť cenovo dostupnejším riešením pre tých, ktorí si doma nevedia vyrobiť obojstranné (trochu ťažké).

Krok 5: Softvér

Softvér
Softvér

Som obchodný softvérový inžinier, takže táto časť je najpodrobnejšia.

Summery: Keď sa Arduino prvýkrát spustí, zavolá sa metóda setup (). Tam som nastavil niekoľko premenných a umiestnení výstupov, ktoré sa majú použiť neskôr. zeroCrossInterupt () sa volá/ beží vždy, keď AC prechádza z kladného na záporné napätie. Nastaví príznak zeroCross pre každý kanál a spustí časovač. Metóda loop () sa nazýva nepretržite navždy. Na zapnutie výstupu musí byť TRIAC spustený iba na 10 mikrosekúnd. Ak nastane čas na spustenie TRIAC a zeroCross, výstup sa zapne až do konca fázy AC.

Na internete bolo niekoľko príkladov, ktoré som použil na spustenie tohto projektu. Hlavná vec, ktorú som nemohol nájsť, bolo mať viac výstupov TRIAC. Iní použili funkciu oneskorenia na výstup PWM, ale to v mojom prípade nefungovalo, pretože ATMEGA musí neustále počúvať DMX. Vyriešil som to tak, že som TRIAC pulzoval po toľkých ms po prechode nulou. Pulzovaním TRIAC bližšie k nulovému kríženiu sa vydáva viac sinusovej vlny.

Takto vyzerá polovica 120 VAC sinovej vlny na osciloskope vyššie.

ISP814 je pripojený k prerušeniu 1. Keď teda prijme signál, že striedavý prúd prechádza z kladného na záporný alebo naopak, nastaví nulový kríž pre každý kanál na hodnotu true a spustí stopky.

Pri metóde loop () kontroluje každý kanál, či je zeroCross pravdivý a uplynie čas, počas ktorého sa aktivuje, TRIAC bude pulzovať 10 mikrosekúnd. To stačí na zapnutie systému TRIAC. Keď je TRIAC zapnutý, zostane zapnutý až do nulového kríža. Svetlo by blikalo, keď bol DMX okolo 3%, takže som tam pridal skrátenie, aby som tomu zabránil. To spôsobilo, že Arduino bolo príliš pomalé a pulz niekedy spustil ďalšiu vlnu hriechu namiesto posledných 4% vlny.

Tiež v slučke () som nastavil hodnotu PWM stavových LED diód. Tieto diódy LED môžu používať interný PWM generovaný Arduinom, pretože sa nemusíme starať o nulový kríž AC. Akonáhle je PWM nastavený, Arduino bude pokračovať v tomto svetle, kým to nepovie inak.

Ako je uvedené v najvyšších komentároch, ak chcete použiť prerušenie DMX na kolíku 2 a bežať na frekvencii 20 MHz, budete musieť upraviť niektoré súbory aplikácií Arduino. V HardwareSerial.cpp musí byť časť kódu vymazaná, čo nám umožňuje napísať vlastné volanie prerušenia. Táto metóda ISR je v spodnej časti kódu na zvládnutie prerušenia DMX. Ak sa chystáte používať Arduino ako programátor ISP, vráťte svoje zmeny na HardwareSerial.cpp, inak bude ATMEGA328 na doske s chlebom nedostupný. Druhá zmena je jednoduchšia. Súbor boards.txt je potrebné zmeniť na novú taktovaciu frekvenciu 20 MHz.

jas [ch] = mapa (DmxRxField [ch], 0, 265, 8000, 0);

Jas sa mapuje na 8 000, pretože to je množstvo mikrosekúnd 1/2 sínusovej vlny AC pri 60 Hz. Pri plnom jase 256 DMX teda program nechá 8 000us zapnúť 1/2 sínusovej vlny striedavého prúdu. Prišiel som na 8 000 odhadom a kontrolou. Vypočítať matematiku 10 000 000/60 Hz/2 = 8333 tak, aby to bolo lepšie číslo, ale ďalších 333US nad hlavou umožňuje, aby sa TRIAC otvoril a akékoľvek chvenie v programe je pravdepodobne dobrý nápad.

Na Arduino 1.5.3 presunuli umiestnenie súboru HardwareSerial.cpp. Teraz je /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp Toto celé budete musieť okomentovať, ak blok začína riadkom 39: #if je definovaný (USART_RX_vect)

V opačnom prípade skončíte s touto chybou: core/core.a (HardwareSerial0.cpp.o): Vo funkcii `_vector_18 ':

Krok 6: Zabaľte to

Zabaliť to
Zabaliť to
Zabaliť to
Zabaliť to
Zabaliť to
Zabaliť to

Zobral som sivý projektový box u Menarda v ich elektrickej sekcii. Piestovou pílou som vyrezal otvory pre elektrické zástrčky. Prípad má na vrchu pripevnenú divadelnú c-svorku na zavesenie. Kontrolky stavu pre každý vstup a výstup pomáhajú diagnostikovať, ak sa vyskytne problém. Na vysvetlenie rôznych portov zariadenia bol použitý štítkovač. Čísla vedľa každého konektora predstavujú číslo kanála DMX. Dosku a transformátor som pripevnil horúcim lepidlom. LED diódy sú prichytené na mieste pomocou držiakov LED.

Odporúča: