Cuprins:

Dimmer DMX cu 4 canale: 6 pași
Dimmer DMX cu 4 canale: 6 pași

Video: Dimmer DMX cu 4 canale: 6 pași

Video: Dimmer DMX cu 4 canale: 6 pași
Video: 36 channel dmx decoder dmx512 led controller 2024, Iulie
Anonim
Dimmer DMX de 4 canale
Dimmer DMX de 4 canale

Conceptul este de a proiecta și crea un dimmer portabil.

Cerințe:

  • DMX512 Controlabil
  • 4 canale
  • Portabil
  • Ușor de folosit

I-am propus această idee profesorului meu de la WSU pentru că voiam să-mi combin pasiunile pentru teatru și computere. Acest proiect a acționat puțin ca proiectul meu senior din departamentul de teatru. Dacă aveți orice comentarii sau întrebări, mi-ar plăcea să vă ajut.

Dezvoltarea viitoare ar putea include mai multe canale, conector DMX cu 5 pini, passthrough DMX, 8 comutatoare dip pentru schimbarea canalului, placă cu circuite imprimate.

Am migrat acest proiect de pe https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html pentru că este încă popular, cred. De asemenea, mi-am pierdut fișierul de semințe iWeb, așa că nu îl mai pot actualiza cu ușurință. Ar fi frumos să le permiteți oamenilor să-și împărtășească întrebările cu privire la proiect.

Pasul 1: strângerea hardware-ului

Adunarea hardware-ului
Adunarea hardware-ului

Hardware folosit: cea mai mare parte a fost comandată de la Tayda Electronics. Îmi plac mai mult decât DigiKey din cauza selecției mai mici și mai ușor de înțeles.

  1. ATMEGA328, microcontroler
  2. MOC3020, optocuplor TRIAC. Nu ZeroCross.
  3. MAX458 sau SN75176BP, receptor DMX
  4. ISP814, optocuplator AC
  5. 7805, 5v Regulator
  6. BTA24-600, 600V 25A TRIAC
  7. Cristal de 20 MHz
  8. Sursa de alimentare de 9V

Câteva obstacole și lecții învățate pe parcurs

  • Dacă nu sunteți expert în registre, rămâneți cu un ATMEGA328P
  • Optocuploare greșite. Nu vrei Zero Cross
  • Canalele înalte erau instabile. Trecerea de la 16 MHz la 20 MHz a rezolvat această problemă
  • Imposibil de a avea o lumină de stare DMX, deoarece apelul de întrerupere trebuia să fie foarte rapid
  • Puterea continuă trebuie să fie extrem de stabilă, orice ondulare va face ca semnalul DMX să devină foarte zgomotos

Designul TRIAC a venit de la MRedmon, mulțumesc.

Pasul 2: Proiectarea circuitului

Proiectarea circuitului
Proiectarea circuitului

Am folosit Fritzing 7.7 pe Mac pentru a-mi proiecta circuitul.

MAX485 din partea de sus este folosit pentru a converti semnalul DMX în ceva pe care Arduino îl poate citi.

4N35 din stânga este utilizat pentru a detecta crucea zero a semnalului de curent alternativ, astfel încât Arduino să știe la ce oră va diminua ieșirea undei sinusoidale. Mai multe despre modul în care hardware-ul și software-ul interacționează în secțiunea software.

Am primit întrebarea va funcționa acest proiect în Europa cu 230V și 50Hz? Nu locuiesc în Europa și nici nu călătoresc acolo des pentru a putea testa acest design. Ar trebui să funcționeze, ar trebui doar să modificați linia de timp a luminozității codului pentru diferitele întârzieri de timp.

Pasul 3: Proiectarea circuitului Kovari

Proiectarea circuitului lui Kovari
Proiectarea circuitului lui Kovari
Proiectarea circuitului lui Kovari
Proiectarea circuitului lui Kovari

Prin procesul de promovare a site-ului meu web, am putut avea câteva conversații prin e-mail. Unul a fost cu Kovari Andrei, care a realizat un design de circuit bazat pe acest proiect și a dorit să împărtășească designul său. Nu sunt un designer de circuite, dar este un proiect Eagle. Spuneți-mi cum funcționează pentru dvs. dacă îl utilizați.

Pasul 4: Proiectarea circuitului lui Giacomo

Proiectarea circuitului lui Giacomo
Proiectarea circuitului lui Giacomo

Din când în când, oamenii îmi vor trimite mesaje cu adaptările interesante pe care le-au făcut cu acest instructabil și m-am gândit că ar trebui să le împărtășesc cu voi toți.

Giacomo a modificat circuitul, astfel încât nu a fost nevoie de un transformator cu filet central. PCB este o singură față și poate fi o soluție mai accesibilă pentru cei care nu pot face dublă față acasă (un pic dificil).

Pasul 5: Software

Software
Software

Sunt inginer de software de meserie, deci această parte este cea mai detaliată.

Summery: Când Arduino pornește pentru prima dată, se apelează metoda setup (). Acolo am configurat câteva dintre variabilele și locațiile de ieșire pentru a fi utilizate ulterior. zeroCrossInterupt () este apelat / rulat de fiecare dată când AC trece de la tensiunea pozitivă la cea negativă. Acesta va seta pavilionul zeroCross pentru fiecare canal și va porni temporizatorul. Metoda loop () este numită continuu pentru totdeauna. Pentru a activa ieșirea, TRIAC trebuie declanșat doar timp de 10 microsecunde. Dacă este timpul să declanșeze TRIAC și zeroCross sa produs, ieșirea se va activa până la sfârșitul fazei AC.

Au fost câteva exemple online pe care le-am folosit pentru a începe acest proiect. Principalul lucru pe care nu l-am putut găsi a fost să am mai multe ieșiri TRIAC. Alții au folosit funcția de întârziere pentru ieșirea PWM, dar asta nu ar funcționa în cazul meu, deoarece ATMEGA trebuie să asculte DMX tot timpul. Am rezolvat acest lucru pulsând TRIAC la atât de mulți ms după zero-cross. Prin pulsarea TRIAC-ului mai aproape de zero-cross, se emite mai multă undă de păcat.

Iată cum arată jumătatea de păcat de 120VAC pe un osciloscop, deasupra.

ISP814 este conectat la întreruperea 1. Deci, când primește semnalul că AC trece de la pozitiv la negativ sau viceversa, setează zeroCross pentru fiecare canal la adevărat și pornește cronometrul.

În metoda loop (), verifică fiecare canal dacă zeroCross este adevărat și timpul pentru activare a trecut, acesta va impulsiona TRIAC timp de 10 microsecunde. Acest lucru este suficient pentru a porni TRIAC. Odată ce un TRIAC este pornit, acesta va rămâne pornit până la zeroCross. Lumina ar pâlpâi atunci când DMX era în jur de 3%, așa că am adăugat trunchierea acolo pentru a o preveni. Acest lucru a fost cauzat de faptul că Arduino a fost prea lent, iar pulsul ar declanșa uneori următoarea undă de păcat în loc de ultimii 4% din undă.

De asemenea, în buclă () am setat valoarea PWM a LED-urilor de stare. Aceste LED-uri pot utiliza PWM intern generat de Arduino, deoarece nu trebuie să ne facem griji cu privire la zeroCross de AC. Odată ce PWM este setat, Arduino va continua la acea strălucire până când i se spune altfel.

După cum sa menționat în comentariile de sus pentru a utiliza o întrerupere DMX pe pinul 2 și a rula la 20 MHz, va trebui să editați unele dintre fișierele aplicației Arduino. În HardwareSerial.cpp o parte din cod trebuie ștearsă, acest lucru ne permite să scriem propriul apel de întrerupere. Această metodă ISR se află în partea de jos a codului pentru a gestiona întreruperea DMX. Dacă intenționați să utilizați un Arduino ca programator ISP, asigurați-vă că reveniți la modificările HardwareSerial.cpp, altfel ATMEGA328 de pe placa de pană nu va putea fi accesat. A doua schimbare este mai ușoară. Fișierul boards.txt trebuie schimbat la noua viteză de ceas de 20 MHz.

luminozitate [ch] = hartă (DmxRxField [ch], 0, 265, 8000, 0);

Luminozitatea se mapează la 8000, deoarece aceasta este cantitatea de microsecunde de 1/2 o undă sinusoidală CA la 60hz. Deci, la luminozitate maximă de 256 DMX, programul va lăsa 1/2 undă sinusoidală AC pornită pentru 8000us. Am venit cu 8000 prin ghicire și verificare. Efectuarea calculului de 1000000us / 60hz / 2 = 8333, astfel încât ar putea fi un număr mai bun, dar având 333us suplimentar peste cap permite deschiderea TRIAC și orice jitter din program este probabil o idee bună.

Pe Arduino 1.5.3, au mutat locația fișierului HardwareSerial.cpp. Acum este /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp Va trebui să comentați acest întreg dacă blocați începând cu linia 39: #if definit (USART_RX_vect)

În caz contrar, veți ajunge la această eroare: core / core.a (HardwareSerial0.cpp.o): În funcția „_vector_18”:

Pasul 6: Împachetarea

Împachetarea
Împachetarea
Împachetarea
Împachetarea
Împachetarea
Împachetarea

Am ridicat cutia gri de proiect la Menards în secțiunea lor electrică. Am folosit un ferăstrău alternativ pentru a tăia găurile prizei electrice. Carcasa a avut o clemă de teatru atașată la partea superioară pentru a fi suspendată. Luminile de stare pentru fiecare intrare și ieșire pentru a ajuta la diagnosticarea dacă există vreodată o problemă. Un producător de etichete a fost folosit pentru a explica diferitele porturi de pe dispozitiv. Numerele de lângă fiecare mufă reprezintă numărul canalului DMX. Am fixat placa de circuit și transformatorul cu niște lipici fierbinți. LED-urile sunt blocate la locul lor cu suporturi de led.

Recomandat: