Sisällysluettelo:

4 -kanavainen DMX -himmennin: 6 vaihetta
4 -kanavainen DMX -himmennin: 6 vaihetta

Video: 4 -kanavainen DMX -himmennin: 6 vaihetta

Video: 4 -kanavainen DMX -himmennin: 6 vaihetta
Video: Как собрать и установить Hadoop в Windows 2024, Heinäkuu
Anonim
4 -kanavainen DMX -himmennin
4 -kanavainen DMX -himmennin

Ideana on suunnitella ja luoda kannettava himmennin.

Vaatimukset:

  • DMX512 ohjattavissa
  • 4 kanavaa
  • Kannettava
  • Helppokäyttöinen

Ehdotin tätä ajatusta professorilleni WSU: ssa, koska halusin yhdistää intohimoni teatteriin ja tietokoneisiin. Tämä projekti toimi vähän kuin vanhempi projektini teatteriosastolla. Jos sinulla on kommentteja tai kysymyksiä, autan sinua mielelläni.

Tuleva kehitys voi sisältää enemmän kanavia, 5 -nastainen DMX -liitin, DMX -läpivienti, 8 dip -kytkintä kanavan vaihtamiseksi, painettu piirilevy.

Olen siirtänyt tämän projektin osoitteesta https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html, koska se on edelleen suosittu. Menetin myös iWeb -siementiedoston, joten en voi enää helposti päivittää sitä. Olisi mukavaa, jos ihmiset saisivat jakaa hankkeeseen liittyviä kysymyksiä keskenään.

Vaihe 1: Laitteiston kerääminen

Laitteiston kokoaminen
Laitteiston kokoaminen

Käytetty laitteisto: Suurin osa siitä tilattiin Tayda Electronicsilta. Pidän niistä paremmin kuin DigiKey pienemmän ja helpommin ymmärrettävän valikoiman vuoksi.

  1. ATMEGA328, mikro-ohjain
  2. MOC3020, TRIAC Optocoupler. Ei ZeroCross.
  3. MAX458 tai SN75176BP, DMX -vastaanotin
  4. ISP814, AC -optoeritin
  5. 7805, 5v säädin
  6. BTA24-600, 600V 25A TRIAC
  7. 20MHz Crystal
  8. 9V virtalähde

Muutamia esteitä ja oppitunteja matkan varrella

  • Jos et ole rekisteriasiantuntija, käytä ATMEGA328P -laitetta
  • Väärät optoerottimet. Et halua Zero Crossia
  • Korkeat kanavat olivat epävakaita. Vaihtaminen 16 MHz: stä 20 MHz: iin ratkaisi tämän ongelman
  • DMX -tilavaloa ei voi saada, koska keskeytyspuhelun piti olla erittäin nopea
  • DC -virran on oltava erittäin vakaa, mikä tahansa aaltoilu saa DMX -signaalin erittäin meluisaksi

TRIAC -suunnittelu tuli MRedmonilta, kiitos.

Vaihe 2: Piirin suunnittelu

Piirin suunnittelu
Piirin suunnittelu

Käytin Fritzing 7.7: ää Macissa piirini suunnittelussa.

Yläosassa olevaa MAX485: tä käytetään DMX -signaalin muuntamiseen sellaiseksi, mitä Arduino voi lukea.

Vasemmanpuoleista 4N35: tä käytetään tunnistamaan AC -signaalin nollapiste, joten Arduino tietää mihin aikaan siniaallon ulostulon himmentämiseksi. Lisätietoja laitteiston ja ohjelmiston vuorovaikutuksesta on ohjelmisto -osiossa.

Olen saanut kysymyksen, toimiiko tämä projekti Euroopassa 230 V: n ja 50 Hz: n taajuudella? En asu Euroopassa, enkä matkusta sinne usein voidakseni testata tätä mallia. Sen pitäisi toimia, sinun tarvitsee vain muuttaa koodin kirkkauden ajoitusriviä eri taajuusviiveelle.

Vaihe 3: Kovarin piirisuunnittelu

Kovarin piirisuunnittelu
Kovarin piirisuunnittelu
Kovarin piirisuunnittelu
Kovarin piirisuunnittelu

Verkkosivustoni saamisen aikana pystyin käymään muutaman sähköpostikeskustelun. Yksi oli Kovari Andrein kanssa, joka teki piirisuunnittelun tämän projektin perusteella ja halusi jakaa suunnittelunsa. En ole piirilevyn suunnittelija, mutta se on Eagle -projekti. Kerro minulle, miten se toimii sinulle, jos käytät sitä.

Vaihe 4: Giacomon piirisuunnittelu

Giacomon piirisuunnittelu
Giacomon piirisuunnittelu

Aika ajoin ihmiset lähettävät minulle viestejä jännittävistä mukautuksista, joita he ovat tehneet tällä ohjeella, ja ajattelin, että minun pitäisi jakaa ne teille kaikille.

Giacomo muutti piiriä, joten keskellä kierrettyä muuntajaa ei tarvittu. Piirilevy on yksipuolinen ja voi olla edullisempi ratkaisu niille, jotka eivät voi tehdä kaksipuolista kotona (hieman vaikeaa).

Vaihe 5: Ohjelmisto

Ohjelmisto
Ohjelmisto

Olen ammatiltani ohjelmistosuunnittelija, joten tämä osa on yksityiskohtaisin.

Kesäinen: Kun Arduino käynnistyy ensimmäisen kerran, setup () -menetelmää kutsutaan. Siellä asetin muutamia muuttujia ja tulostuspaikkoja käytettäväksi myöhemmin. zeroCrossInterupt () kutsutaan/ suoritetaan joka kerta, kun vaihtovirta ylittää positiivisen jännitteen negatiiviseksi. Se asettaa zeroCross -lipun jokaiselle kanavalle ja käynnistää ajastimen. Silmukka () -menetelmää kutsutaan jatkuvasti ikuisesti. Lähdön käynnistämiseksi TRIAC on käynnistettävä vain 10 mikrosekunnin ajan. Jos on aika laukaista TRIAC ja zeroCross on tapahtunut, lähtö kytkeytyy päälle AC -vaiheen loppuun asti.

Netistä löytyi muutama esimerkki, joilla aloitin tämän projektin. Tärkein asia, jota en löytänyt, oli useita TRIAC -ulostuloja. Toiset käyttivät viivetoimintoa PWM -lähdön tuottamiseen, mutta se ei toimisi minun tapauksessani, koska ATMEGA: n on kuunneltava DMX: tä koko ajan. Ratkaisin tämän pulssoimalla TRIACia niin monta ms nollapisteen jälkeen. Pulssimalla TRIAC lähemmäksi nollapistettä saadaan enemmän siniaaltoa.

Tässä on puoli 120 VAC: n syniaalto, joka näyttää oskilloskoopilla yllä.

ISP814 on kytketty keskeytykseen 1. Joten kun se vastaanottaa signaalin, että AC siirtyy positiivisesta negatiiviseksi tai päinvastoin, se asettaa jokaisen kanavan zeroCross -arvon tosi -arvoon ja käynnistää sekuntikellon.

Silmukka () -menetelmässä se tarkistaa jokaisen kanavan, onko zeroCross tosi ja että sen aktivoitumisaika on kulunut, se pulssi TRIAC: a 10 mikrosekuntia. Tämä riittää TRIACin käynnistämiseen. Kun TRIAC on kytketty päälle, se pysyy päällä, kunnes zeroCross. Valo välkkyy, kun DMX on noin 3%, joten lisäsin katkaisun sinne estämään sen. Tämä aiheutti Arduinon olevan liian hidas, ja pulssi toisinaan laukaisi seuraavan syntoaallon aallon viimeisten 4%: n sijasta.

Myös silmukassa () asetan tila -LEDien PWM -arvon. Nämä LEDit voivat käyttää Arduinon tuottamaa sisäistä PWM: ää, koska meidän ei tarvitse huolehtia AC: n zeroCrossista. Kun PWM on asetettu, Arduino jatkaa samalla kirkkaudella, kunnes toiselle kerrotaan.

Kuten ylemmissä kommenteissa todettiin, jotta voit käyttää DMX -keskeytystä nastassa 2 ja ajaa 20 MHz: llä, sinun on muokattava joitain Arduino -sovellustiedostoja. HardwareSerial.cpp -ohjelmassa on poistettava pala koodia, jolloin voimme kirjoittaa oman keskeytyspuhelun. Tämä ISR -menetelmä on koodin alareunassa DMX -keskeytyksen käsittelemiseksi. Jos aiot käyttää Arduinoa Internet -palveluntarjoajan ohjelmoijana, muista palauttaa HardwareSerial.cpp -muutoksesi, muuten leipätaululla oleva ATMEGA328 ei ole tavoitettavissa. Toinen muutos on helpompi. Boards.txt -tiedosto on vaihdettava uuteen 20 MHz: n kellotaajuuteen.

kirkkaus [ch] = kartta (DmxRxField [ch], 0, 265, 8000, 0);

Kirkkaus kartoitetaan 8000: een, koska se on 1/2 sekunnin AC -siniaallon mikrosekuntia 60 Hz: n taajuudella. Joten täydellä kirkkaudella 256 DMX ohjelma jättää 1/2 AC -siniaaltoa PÄÄLLE 8000US: lle. Keksin 8000 arvaamalla ja tarkistamalla. Jos lasket 1000000us/60hz/2 = 8333, niin se voisi olla parempi luku, mutta ylimääräisen 333us -pään yläpuolella mahdollistaa TRIACin avautumisen ja kaikki ohjelman tärinä on luultavasti hyvä idea.

Arduinolla 1.5.3 siirrettiin HardwareSerial.cpp -tiedoston sijainti. Se on nyt /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp Sinun on kommentoitava tämä kokonaisuus, jos lohko alkaa rivillä 39: #if määritetty (USART_RX_vect)

Muuten saat tämän virheen: core/core.a (HardwareSerial0.cpp.o): Toiminnossa `_vector_18 ':

Vaihe 6: Pakkaa se

Pakkaus ylös
Pakkaus ylös
Pakkaus ylös
Pakkaus ylös
Pakkaus ylös
Pakkaus ylös

Otin harmaan projektilaatikon Menardsilta heidän sähköosastostaan. Käytin edestakaisin sahaa katkaisemaan sähköpistokkeen reiät. Kotelon yläosaan kiinnitettiin teatterin c-puristin ripustamista varten. Jokaisen tulon ja lähdön tilamerkkivalot auttavat diagnosoimaan, onko ongelmia koskaan. Tarratulostinta käytettiin laitteen eri porttien selittämiseen. Kunkin pistokkeen vieressä olevat numerot edustavat DMX -kanavan numeroa. Kiinnitin piirilevyn ja muuntajan kuumalla liimalla. LEDit ovat jumissa paikallaan led -pidikkeillä.

Suositeltava: