Sadržaj:

4 -kanalni DMX prigušivač: 6 koraka
4 -kanalni DMX prigušivač: 6 koraka

Video: 4 -kanalni DMX prigušivač: 6 koraka

Video: 4 -kanalni DMX prigušivač: 6 koraka
Video: Тупак в студии — Голос улиц (2015) Сцена из фильма 10/10 2024, Lipanj
Anonim
4 -kanalni DMX prigušivač
4 -kanalni DMX prigušivač

Koncept je dizajnirati i stvoriti prijenosni prigušivač svjetla.

Zahtjevi:

  • DMX512 Može se kontrolirati
  • 4 kanala
  • Prijenosni
  • Jednostavan za korištenje

Predložio sam ovu ideju svom profesoru na WSU -u jer sam želio spojiti svoje strasti prema kazalištu i računalima. Ovaj projekt djelovao je pomalo kao moj stariji projekt na kazališnom odjelu. Ako imate bilo kakvih komentara ili pitanja, rado bih vam pomogao.

Budući razvoj mogao bi uključivati više kanala, 5 -polni DMX konektor, DMX prolaz, 8 preklopnih prekidača za promjenu kanala, tiskanu ploču.

Ovaj sam projekt preselio s https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html jer je još uvijek popularan, pretpostavljam. Također sam izgubio svoju iWeb početnu datoteku pa je više ne mogu lako ažurirati. Bilo bi lijepo dopustiti ljudima da međusobno podijele svoja pitanja o projektu.

Korak 1: Skupljanje hardvera

Skupljanje hardvera
Skupljanje hardvera

Korišteni hardver: Većina je naručena od Tayda Electronics. Više mi se sviđaju od DigiKeya zbog manjeg i lakše razumljivog odabira.

  1. ATMEGA328, Mikrokontroler
  2. MOC3020, Optička spojnica TRIAC. Ne ZeroCross.
  3. MAX458 ili SN75176BP, DMX prijemnik
  4. ISP814, Optoelement za izmjeničnu struju
  5. 7805, 5v regulator
  6. BTA24-600, 600V 25A TRIAC
  7. 20MHz kristal
  8. 9V napajanje

Nekoliko prepreka i lekcija naučenih usput

  • Ako niste stručnjak za registraciju, držite se ATMEGA328P
  • Pogrešne optičke sprege. Ne želite Zero Cross
  • Visoki kanali bili su nestabilni. Prebacivanje sa 16MHz na 20MHz riješilo je ovaj problem
  • Nije moguće imati svjetlo statusa DMX -a jer je poziv za prekid morao biti vrlo brz
  • Napajanje istosmjernom strujom mora biti izuzetno stabilno, bilo koje talasanje uzrokovat će da DMX signal postane vrlo bučan

Dizajn TRIAC -a došao je iz MRedmona, hvala vam.

Korak 2: Dizajn kruga

Dizajn sklopa
Dizajn sklopa

Koristio sam Fritzing 7.7 na Macu za projektiranje svog kruga.

MAX485 na vrhu koristi se za pretvaranje DMX signala u nešto što Arduino može pročitati.

4N35 s lijeve strane koristi se za detekciju nultog križa AC signala tako da će Arduino znati u koje vrijeme prigušiti izlaz sinusnog vala. Više o interakciji hardvera i softvera u odjeljku o softveru.

Dobio sam pitanje hoće li ovaj projekt funkcionirati u Europi s 230V i 50Hz? Ne živim u Europi, niti često putujem tamo kako bih mogao isprobati ovaj dizajn. To bi trebalo funkcionirati, samo biste morali izmijeniti vremensku liniju svjetline koda za različito vremensko kašnjenje frekvencije.

Korak 3: Kovarijevo projektiranje kruga

Kovarijev dizajn kola
Kovarijev dizajn kola
Kovarijev dizajn kola
Kovarijev dizajn kola

Kroz proces podizanja web stranice uspio sam obaviti nekoliko razgovora putem e -pošte. Jedan je bio s Kovarijem Andrejem koji je napravio dizajn kola na temelju ovog projekta i želio je podijeliti svoj dizajn. Nisam dizajner pločica, ali to je projekt Eagle. Javite mi kako vam to funkcionira ako ga koristite.

Korak 4: Giacomovo oblikovanje kruga

Giacomov dizajn kola
Giacomov dizajn kola

S vremena na vrijeme ljudi će mi slati poruke s uzbudljivim prilagodbama koje su napravili s ovim uputstvom, a ja sam zaključio da bih ih trebao podijeliti sa svima vama.

Giacomo je izmijenio krug pa nije bio potreban transformator s središnjim priključkom. Pcb je jednostrana i može biti pristupačnije rješenje za one koji ne mogu napraviti dvostrano kod kuće (pomalo teško).

Korak 5: Softver

Softver
Softver

Po zanimanju sam softverski inženjer pa je ovaj dio najdetaljniji.

Summery: Kada se Arduino prvi put pokrene, poziva se metoda setup (). Tamo sam postavio nekoliko varijabli i izlazna mjesta koja će se kasnije koristiti. zeroCrossInterupt () se poziva/ pokreće svaki put kad AC prijeđe s pozitivnog na negativni napon. Postavit će oznaku zeroCross za svaki kanal i pokrenuti mjerač vremena. Metoda loop () poziva se neprestano zauvijek. Za uključivanje izlaza, TRIAC se mora aktivirati samo 10 mikrosekundi. Ako je došlo vrijeme za aktiviranje TRIAC -a i zeroCross -a, izlaz će se uključiti do kraja AC faze.

Na internetu je bilo nekoliko primjera za početak ovog projekta. Glavna stvar koju nisam mogao pronaći bilo je više TRIAC izlaza. Drugi su koristili funkciju odgode za PWM izlaz, ali to u mom slučaju ne bi uspjelo jer ATMEGA mora slušati DMX cijelo vrijeme. Riješio sam to pulsiranjem TRIAC-a na toliko ms nakon križanja nula. Pulsiranjem TRIAC-a bliže nultom prijelazu dobiva se veći dio grešnog vala.

Evo kako gornji val od 120 VAC izgleda na osciloskopu iznad.

ISP814 je spojen na prekid 1. Dakle, kad primi signal da AC prelazi iz pozitivnog u negativan ili obrnuto, postavlja zeroCross za svaki kanal na true i pokreće štopericu.

U metodi loop () provjerava svaki kanal je li zeroCross istinit i prošlo je vrijeme za njegovu aktivaciju pulsirat će TRIAC 10 mikrosekundi. To je dovoljno za uključivanje TRIAC -a. Nakon što je TRIAC uključen, ostat će uključen do zeroCross. Svjetlo bi treperilo kad bi DMX bio oko 3% pa sam tu dodao skraćivanje kako bih to spriječio. Zbog toga je Arduino bio prespor, a puls bi ponekad pokrenuo sljedeći val grijeha umjesto posljednjih 4% vala.

Također u loop () postavljam PWM vrijednost statusnih LED dioda. Ove LED diode mogu koristiti unutarnji PWM koji generira Arduino jer ne moramo brinuti o nultom križu izmjenične struje. Nakon što je PWM postavljen, Arduino će nastaviti s tom svjetlinom sve dok se ne kaže drugačije.

Kao što je navedeno u gornjim komentarima, da biste koristili DMX prekid na pin 2 i radili na 20MHz, morat ćete urediti neke datoteke aplikacije Arduino. U HardwareSerial.cpp komad koda mora biti izbrisan, što nam omogućuje pisanje vlastitog prekida poziva. Ova ISR metoda nalazi se na dnu koda za obradu DMX prekida. Ako ćete Arduino koristiti kao programer ISP -a, svakako vratite promjene na HardwareSerial.cpp inače ATMEGA328 na ploči za kruh neće biti dostupan. Druga je promjena lakša. Datoteka Board.txt mora se promijeniti na novu brzinu takta od 20 MHz.

svjetlina [ch] = karta (DmxRxField [ch], 0, 265, 8000, 0);

Svjetlina se preslikava na 8000 jer je to količina mikrosekundi 1/2 sinusnog vala na 60 Hz. Tako će pri punoj svjetlini 256 DMX program ostaviti 1/2 AC sinusnog vala UKLJUČENIM za 8000us. Došao sam do 8000 putem pogađanja i provjere. Izračunati 1000000us/60hz/2 = 8333 tako da bi to mogao biti bolji broj, ali imati dodatnih 333us iznad glave omogućuje da se TRIAC otvori i bilo kakvo podrhtavanje u programu vjerojatno je dobra ideja.

Na Arduinu 1.5.3 premjestili su lokaciju datoteke HardwareSerial.cpp. Sada je /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp Morat ćete komentirati ovu cjelinu ako blok počinje s retkom 39: #if definirano (USART_RX_vect)

Inače ćete završiti s ovom pogreškom: core/core.a (HardwareSerial0.cpp.o): U funkciji `_vector_18 ':

Korak 6: Pakirajte ga

Pakiranje
Pakiranje
Pakiranje
Pakiranje
Pakiranje
Pakiranje

Pokupio sam sivu projektnu kutiju u Menards -u u njihovom odjelu za elektriku. Pomoću klipne pile izrezao sam otvore za utikač. Kućište ima kino stezaljku za kino pričvršćeno na vrh radi vješanja. Svjetla statusa za svaki ulaz i izlaz pomažu u dijagnosticiranju problema. Za objašnjenje različitih priključaka na uređaju korišten je izrađivač naljepnica. Brojevi pored svakog utikača predstavljaju broj DMX kanala. Spojio sam ploču i transformator vrućim ljepilom. LED diode su zaglavljene sa LED držačima.

Preporučeni: