Kazalo:

4 -kanalni zatemnilnik DMX: 6 korakov
4 -kanalni zatemnilnik DMX: 6 korakov

Video: 4 -kanalni zatemnilnik DMX: 6 korakov

Video: 4 -kanalni zatemnilnik DMX: 6 korakov
Video: Флэш против КидФлэша. Гонка на скорость 2024, Julij
Anonim
4 -kanalni DMX zatemnilnik
4 -kanalni DMX zatemnilnik

Koncept je oblikovanje in izdelava prenosnega zatemnilnika.

Zahteve:

  • DMX512 Nadzor
  • 4 kanali
  • Prenosni
  • Enostaven za uporabo

To idejo sem predlagal svojemu profesorju na WSU, ker sem hotel združiti svoje strasti do gledališča in računalnikov. Ta projekt je deloval nekoliko kot moj višji projekt v gledališkem oddelku. Če imate kakršne koli pripombe ali vprašanja, vam bom z veseljem pomagal.

Prihodnji razvoj bi lahko vključeval več kanalov, 5 -polni priključek DMX, prehod DMX, 8 preklopnih stikal za spremembo kanala, tiskano vezje.

Ta projekt sem preselil s spletnega mesta https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html, ker je verjetno še vedno priljubljen. Izgubil sem tudi datoteko semena iWeb, zato je ne morem več preprosto posodobiti. Lepo bi bilo ljudem omogočiti, da med seboj delijo svoja vprašanja o projektu.

1. korak: Zbiranje strojne opreme

Zbiranje strojne opreme
Zbiranje strojne opreme

Uporabljena strojna oprema: Večino je bilo naročenih pri Tayda Electronics. Meni so bolj všeč kot DigiKey zaradi manjše in lažje razumljive izbire.

  1. ATMEGA328, mikro krmilnik
  2. MOC3020, Optični sklopnik TRIAC. Ne ZeroCross.
  3. MAX458 ali SN75176BP, sprejemnik DMX
  4. ISP814, Optični sklopnik za izmenični tok
  5. 7805, 5v regulator
  6. BTA24-600, 600V 25A TRIAC
  7. 20MHz kristal
  8. 9V napajalnik

Nekaj ovir in naučenih lekcij na poti

  • Če niste strokovnjak za registre, se držite ATMEGA328P
  • Napačni optični sklopniki. Ne želite Zero Cross
  • Visoki kanali so bili nestabilni. Prehod s 16 MHz na 20 MHz je rešil to težavo
  • Lučke stanja DMX ni mogoče imeti, ker je moral biti prekinitveni klic zelo hiter
  • Napajanje enosmernega toka mora biti izjemno stabilno, zaradi vsakega valovanja bo signal DMX postal zelo hrupen

Oblikovanje TRIAC je prišlo iz MRedmona, hvala.

2. korak: Oblikovanje vezja

Oblikovanje vezja
Oblikovanje vezja

Za oblikovanje vezja sem uporabil Fritzing 7.7 na Macu.

MAX485 na vrhu se uporablja za pretvorbo signala DMX v nekaj, kar lahko prebere Arduino.

4N35 na levi se uporablja za zaznavanje ničelnega križa AC signala, tako da bo Arduino vedel, kdaj zatemniti izhod sinusnega vala. Več o interakciji strojne in programske opreme v razdelku s programsko opremo.

Dobil sem vprašanje, ali bo ta projekt deloval v Evropi z 230V in 50Hz? Ne živim v Evropi in niti ne potujem pogosto tja, da bi lahko preizkusil to zasnovo. Moral bi delovati, samo morate spremeniti časovno vrstico svetlosti kode za različne časovne zakasnitve frekvence.

3. korak: Kovarijevo vezje

Kovarijevo vezje
Kovarijevo vezje
Kovarijevo vezje
Kovarijevo vezje

Skozi postopek odpiranja moje spletne strani sem lahko imel nekaj e -poštnih pogovorov. Eden je bil s Kovarijem Andrejem, ki je na podlagi tega projekta oblikoval vezje in želel deliti svojo zasnovo. Nisem oblikovalec tiskanih vezij, ampak gre za projekt Eagle. Povejte mi, kako deluje za vas, če ga uporabljate.

4. korak: Giacomovo vezje

Giacomovo vezje
Giacomovo vezje

Občasno mi bodo ljudje sporočali z vznemirljivimi prilagoditvami, ki so jih naredili s tem navodilom, in mislil sem, da jih moram deliti z vsemi vami.

Giacomo je spremenil vezje, tako da transformator s središčnim priključkom ni bil potreben. PCB je enostranski in je lahko ugodnejša rešitev za tiste, ki doma ne morejo narediti dvostranskega dela (nekoliko težko).

5. korak: Programska oprema

Programska oprema
Programska oprema

Po poklicu sem inženir programske opreme, zato je ta del najbolj podroben.

Povzetek: Ko se Arduino prvič zažene, se pokliče metoda setup (). Tam sem nastavil nekaj spremenljivk in izhodnih mest, ki bodo uporabljeni pozneje. zeroCrossInterupt () se pokliče/ zažene vsakič, ko AC preide iz pozitivne v negativno napetost. Nastavila bo zastavico zeroCross za vsak kanal in zagnala časovnik. Metoda loop () se kliče neprekinjeno za vedno. Za vklop izhoda mora biti TRIAC sprožen le 10 mikrosekund. Če je čas za sprožitev TRIAC -a in zeroCross se je izhod vklopil do konca faze AC.

Na spletu je bilo nekaj primerov, s katerimi sem začel ta projekt. Glavna stvar, ki je nisem našel, je bila več izhodov TRIAC. Drugi so uporabili funkcijo zakasnitve za PWM izhod, vendar v mojem primeru to ne bi delovalo, ker mora ATMEGA ves čas poslušati DMX. To sem rešil s pulziranjem TRIAC-a pri toliko ms po prehodu skozi ničlo. S pulziranjem TRIAC-a bližje ničelnemu križu se prikaže več sin greha.

Evo, kako izgleda zgornji grelni val 120VAC na osciloskopu zgoraj.

ISP814 je priključen na prekinitev 1. Ko torej sprejme signal, da AC preide iz pozitivnega v negativnega ali obratno, nastavi zeroCross za vsak kanal na true in zažene štoparico.

Pri metodi loop () vsak kanal preveri, ali je zeroCross res in če je minil čas, da se aktivira, bo TRIAC utripal 10 mikrosekund. To je dovolj za vklop TRIAC -a. Ko je TRIAC vklopljen, bo ostal vklopljen do zeroCross. Lučka bi utripala, ko je bil DMX okoli 3%, zato sem vanj dodal skrajšanje, da bi to preprečil. To je bilo posledica tega, da je Arduino prepočasen, in impulz bi včasih namesto zadnjih 4% vala sprožil naslednji grešni val.

Tudi v zanki () sem nastavil vrednost PWM statusnih LED. Te LED diode lahko uporabljajo notranji PWM, ki ga ustvari Arduino, ker nam ni treba skrbeti za zeroCross AC. Ko je PWM nastavljen, bo Arduino nadaljeval s to svetlostjo, dokler ne pove drugače.

Kot je navedeno v zgornjih komentarjih, boste za uporabo DMX prekinitve na pin 2 in zagon pri 20 MHz morali urediti nekatere datoteke aplikacije Arduino. V HardwareSerial.cpp je treba del kode izbrisati, kar nam omogoča, da sami napišemo prekinitveni klic. Ta metoda ISR je na dnu kode za obravnavo prekinitve DMX. Če boste Arduino uporabljali kot programer ISP, ne pozabite razveljaviti sprememb v HardwareSerial.cpp, sicer ATMEGA328 na plošči za kruh ne bo dosegljiv. Druga sprememba je lažja. Datoteko board.txt je treba spremeniti v novo takto 20MHz.

svetlost [ch] = zemljevid (DmxRxField [ch], 0, 265, 8000, 0);

Svetlost preslika na 8000, ker je to količina mikrosekund 1/2 sinusnega vala AC pri 60Hz. Tako bo pri polni svetlosti 256 DMX program pustil 1/2 AC sinusnega vala ON za 8000us. Z ugibanjem in preverjanjem sem prišel do 8000. Računajte 1000000us/60hz/2 = 8333, tako da je to morda boljša številka, toda dodatni 333us nad glavo omogoča, da se TRIAC odpre in vsako tresenje v programu je verjetno dobra ideja.

V Arduinu 1.5.3 so premaknili lokacijo datoteke HardwareSerial.cpp. Zdaj je /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp To celoto morate komentirati, če je blok, ki se začne z vrstico 39: #if definirano (USART_RX_vect)

V nasprotnem primeru boste dobili to napako: core/core.a (HardwareSerial0.cpp.o): V funkciji `_vector_18 ':

Korak 6: Pakiranje

Pakiranje
Pakiranje
Pakiranje
Pakiranje
Pakiranje
Pakiranje

Sivo projektno škatlo sem pobral pri podjetju Menards v njihovem oddelku za elektriko. Z vrtljivo žago sem izrezal luknje za električne vtiče. Ohišje je na vrh pritrjeno gledališko c-sponko za obešanje. Lučke stanja za vsak vhod in izhod za pomoč pri diagnosticiranju, če je kdaj prišlo do težave. Za razlago različnih vrat na napravi je bil uporabljen izdelovalec nalepk. Številke poleg vsakega vtiča predstavljajo številko kanala DMX. Vezje in transformator sem pritrdil z vročim lepilom. LED diode so pritrjene na nosilcih LED.

Priporočena: