Talaan ng mga Nilalaman:

4 Ch DMX Dimmer: 6 na Hakbang
4 Ch DMX Dimmer: 6 na Hakbang

Video: 4 Ch DMX Dimmer: 6 na Hakbang

Video: 4 Ch DMX Dimmer: 6 na Hakbang
Video: DIMMER PACK dmx 4ch WDP-4 4-х канальный диммер сценического света work pro 2024, Hulyo
Anonim
4 Ch DMX Dimmer
4 Ch DMX Dimmer

Ang konsepto ay upang magdisenyo at lumikha ng isang portable dimmer.

Mga Kinakailangan:

  • Makokontrol ang DMX512
  • 4 na Channel
  • Madadala
  • Madaling gamitin

Iminungkahi ko ang ideyang ito sa aking propesor sa WSU dahil nais kong pagsamahin ang aking mga hilig para sa teatro at computer. Ang proyektong ito ay kumilos nang kaunti tulad ng aking nakatatandang proyekto sa departamento ng teatro. Kung mayroon kang anumang mga puna o katanungan, nais kong tumulong.

Ang pag-unlad sa hinaharap ay maaaring magsama ng maraming mga channel, 5 pin DMX konektor, DMX passthrough, 8 dip switch upang baguhin ang channel, naka-print na circuit board.

Inilipat ko ang proyektong ito mula sa https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html dahil popular pa rin ito, hulaan ko. Nawala rin ang aking iWeb seed file kaya't hindi ko na ito madaling ma-update. Masarap na payagan ang mga tao na ibahagi ang kanilang mga katanungan sa proyekto sa bawat isa.

Hakbang 1: Pagtitipon ng Hardware

Pagtitipon ng Hardware
Pagtitipon ng Hardware

Ginamit ang Hardware: Karamihan sa mga ito ay iniutos mula sa Tayda Electronics. Mas gusto ko sila kaysa DigiKey dahil sa mas maliit at mas madaling maunawaan ang pagpipilian.

  1. ATMEGA328, Micro-controller
  2. MOC3020, TRIAC Optocoupler. Hindi ZeroCross.
  3. MAX458 o SN75176BP, DMX Receiver
  4. ISP814, AC Optocoupler
  5. 7805, 5v Regulator
  6. BTA24-600, 600V 25A TRIAC
  7. 20MHz Crystal
  8. 9V Power supply

Ilang hadlang at aral na natutunan sa daan

  • Kung hindi ka isang dalubhasa sa pagrehistro, manatili sa isang ATMEGA328P
  • Maling mga optocoupler. Hindi mo nais ang Zero Cross
  • Ang mga mataas na channel ay hindi matatag. Ang paglipat mula sa 16MHz hanggang 20MHz ay nalutas ang isyung ito
  • Hindi magkaroon ng isang ilaw ng katayuan ng DMX dahil ang naputol na tawag ay kailangang maging napakabilis
  • Ang lakas ng DC ay dapat na maging sobrang matatag, ang anumang ripple ay magiging sanhi ng signal ng DMX na maging napaka ingay

Ang disenyo ng TRIAC ay nagmula sa MRedmon, salamat.

Hakbang 2: Disenyo ng Circuit

Disenyo ng Circuit
Disenyo ng Circuit

Ginamit ko ang Fritzing 7.7 sa Mac upang idisenyo ang aking circuit.

Ang MAX485 sa itaas ay ginagamit upang baguhin ang signal ng DMX sa isang bagay na maaaring mabasa ng Arduino.

Ang 4N35 sa kaliwa ay ginagamit upang makita ang zero cross ng AC signal kaya't malalaman ng Arduino kung anong oras upang madilim ang output ng Sine wave. Dagdag pa tungkol sa kung paano nakikipag-ugnayan ang hardware at software sa seksyon ng software.

Nakuha ko ang tanong na gagana ba ang proyektong ito sa Europa na may 230V at 50Hz? Hindi ako nakatira sa Europa, ni maglakbay din ako doon madalas upang masubukan ang disenyo na ito. Dapat itong gumana, kakailanganin mong baguhin ang linya ng tiyempo ng ningning ng code para sa iba't ibang pagkaantala ng oras ng dalas.

Hakbang 3: Disenyo ng Circuit ni Kovari

Disenyo ng Circuit ni Kovari
Disenyo ng Circuit ni Kovari
Disenyo ng Circuit ni Kovari
Disenyo ng Circuit ni Kovari

Sa pamamagitan ng proseso ng pagkakaroon ng aking website ay nakagawa ako ng ilang mga pag-uusap sa email. Ang isa ay kasama ni Kovari Andrei na gumawa ng isang disenyo ng circuit batay sa proyektong ito at nais na ibahagi ang kanyang disenyo. Hindi ako taga-disenyo ng circuit board ngunit ito ay isang proyekto ng Eagle. Ipaalam sa akin kung paano ito gumagana para sa iyo kung gagamitin mo ito.

Hakbang 4: Disenyo ng Circuit ng Giacomo

Disenyo ng Circuit ng Giacomo
Disenyo ng Circuit ng Giacomo

Paminsan-minsan ay ipapadala ng mga tao ang mensahe sa akin ng mga nakagaganyak na mga pag-aangkop na nagawa nila sa itinuro na ito at naisip kong dapat kong ibahagi ang mga ito sa inyong lahat.

Binago ni Giacomo ang circuit kaya hindi kinakailangan ang isang center tapped transpormer. Ang pcb ay isang solong panig at maaaring maging isang mas abot-kayang solusyon para sa kung sino ang hindi makakagawa ng dobleng panig sa bahay (medyo mahirap).

Hakbang 5: Software

Software
Software

Ako ay isang software engineer sa pamamagitan ng kalakalan kaya't ang bahaging ito ay ang pinaka detalyado.

Tag-init: Kapag ang Arduino unang nag-boot ang setup () na pamamaraan ay tinawag. Sa doon nag-set up ako ng ilan sa mga variable at lokasyon ng output na gagamitin sa paglaon. ang zeroCrossInterupt () ay tinatawag / tumakbo tuwing tumatawid ang AC mula positibo hanggang sa negatibong boltahe. Itatakda nito ang zeroCross flag para sa bawat channel at simulan ang timer. Ang pamamaraan ng loop () ay tinatawag na patuloy na magpakailanman. Upang i-on ang output, ang TRIAC ay dapat lamang ma-trigger para sa 10 microseconds. Kung oras na upang ma-trigger siya TRIAC at zeroCross ay nangyari ang output ay bubuksan hanggang sa katapusan ng AC phase.

Mayroong ilang mga halimbawa sa online na ginamit ko upang masimulan ang proyektong ito. Ang pangunahing bagay na hindi ko mahanap ay ang pagkakaroon ng maraming mga output ng TRIAC. Ginamit ng iba ang pagpapaandar na pagpapaandar upang PWM ang output, ngunit hindi ito gagana sa aking kaso dahil ang ATMEGA ay dapat na nakikinig sa DMX sa lahat ng oras. Nalutas ko ito sa pamamagitan ng pag-pulso ng TRIAC sa napakaraming ms pagkatapos ng zero-cross. Sa pamamagitan ng pag-pulso ng TRIAC na malapit sa zero-cross mas maraming output ng sin ang output.

Narito kung ano ang hitsura ng kalahating 120VAC na alon ng kasalanan sa isang osiloskoup, sa itaas.

Ang ISP814 ay konektado upang makagambala 1. Kaya't kapag nakatanggap ito ng senyas na ang mga paglipat ng AC mula positibo hanggang negatibo o kabaligtaran itinatakda nito ang zeroCross para sa bawat channel sa totoo at sinisimulan ang stopwatch.

Sa pamamaraang loop (), sinusuri nito ang bawat channel kung ang zeroCross ay totoo at ang oras para sa pag-aktibo nito ay lumipas na ay pulso ang TRIAC para sa 10 microseconds. Sapat na ito upang buksan ang TRIAC. Kapag naka-on ang isang TRIAC mananatili ito hanggang sa zeroCross. Ang ilaw ay magpapitik kapag ang DMX ay nasa 3% kaya idinagdag ko ang pagpuputol doon upang maiwasan ito. Ito ay sanhi ng Arduino na masyadong mabagal, at ang pulso ay ilang beses magpapalitaw sa susunod na alon ng kasalanan sa halip na ang huling 4% ng alon.

Gayundin sa loop () Itinakda ko ang halaga ng PWM ng mga LED status. Ang mga LED na ito ay maaaring gumamit ng panloob na PWM na nabuo ng Arduino dahil hindi namin kailangang mag-alala tungkol sa zeroCross ng AC. Kapag ang PWM ay itinakda ang Arduino ay magpapatuloy sa ningning hanggang sa masabi sa ibang pantas.

Tulad ng nabanggit sa tuktok na mga puna upang magamit ang isang makagambala na DMX sa pin 2 at patakbuhin sa 20MHz kakailanganin mong i-edit ang ilan sa mga file ng application ng Arduino. Sa HardwareSerial.cpp ang isang tipak ng code ay dapat na tinanggal, pinapayagan kaming magsulat ng aming sariling nakakagambalang tawag. Ang pamamaraang ISR na ito ay nasa ilalim ng code upang mahawakan ang abala ng DMX. Kung gagamit ka ng isang Arduino bilang isang ISP programmer, tiyaking ibalik ang iyong mga pagbabago sa HardwareSerial.cpp kung hindi man ang ATMEGA328 sa bread board ay hindi maaabot. Ang pangalawang pagbabago ay isang mas madali. Ang boards.txt file ay dapat mapalitan sa bagong bilis ng orasan na 20MHz.

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

Ang ilaw ay nagma-map sa 8000 sapagkat iyon ang halaga ng microseconds ng 1/2 isang AC sine wave sa 60hz. Kaya't sa buong ningning 256 DMX ang programa ay iiwan ang 1/2 ang AC sine wave ON para sa 8000us. Nakarating ako ng 8000 sa pamamagitan ng hula at tseke. Ang paggawa ng matematika ng 1000000us / 60hz / 2 = 8333 nang sa gayon ay maaaring maging isang mas mahusay na numero, ngunit ang pagkakaroon ng labis na 333us sa ulo ay nagbibigay-daan para sa TRIAC na buksan at ang anumang jitter sa programa ay marahil isang magandang ideya.

Sa Arduino 1.5.3 na inilipat nila ang lokasyon ng HardwareSerial.cpp file. Ito ay ngayon /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp Kakailanganin mong puna ang buong ito kung ang block ay nagsisimula sa linya 39: #if na tinukoy (USART_RX_vect)

Kung hindi man magtatapos ka sa error na ito: core / core.a (HardwareSerial0.cpp.o): Sa pagpapaandar na _vector_18 ':

Hakbang 6: Pag-iimpake Ito

Pagbabalot Na Ito
Pagbabalot Na Ito
Pagbabalot Na Ito
Pagbabalot Na Ito
Pagbabalot Na Ito
Pagbabalot Na Ito

Kinuha ko ang kulay-abo na kahon ng proyekto sa Menards sa kanilang seksyong elektrikal. Gumamit ako ng isang gumanti na lagari upang gupitin ang mga butas ng plug ng elektrikal. Ang kaso ay nakakuha ng isang teatro c-clamp na nakakabit sa itaas para sa hang hangarin. Mga ilaw sa katayuan para sa bawat pag-input at output upang makatulong na masuri kung mayroong kailanman problema. Ginamit ang isang tagagawa ng label upang ipaliwanag ang iba't ibang mga port sa aparato. Ang mga numero sa tabi ng bawat plug ay kumakatawan sa numero ng DMX channel. Nilagyan ko ang circuit board at transpormer ng ilang mainit na pandikit. Ang mga LED ay natigil sa lugar na may mga humantong na may hawak.

Inirerekumendang: