Sommario:

Dimmer DMX a 4 canali: 6 passi
Dimmer DMX a 4 canali: 6 passi

Video: Dimmer DMX a 4 canali: 6 passi

Video: Dimmer DMX a 4 canali: 6 passi
Video: DMX Basics tutorial 2024, Novembre
Anonim
Dimmer DMX a 4 canali
Dimmer DMX a 4 canali

Il concetto è quello di progettare e creare un dimmer portatile.

Requisiti:

  • Controllabile DMX512
  • 4 canali
  • Portatile
  • Facile da usare

Ho proposto questa idea al mio professore alla WSU perché volevo unire le mie passioni per il teatro e l'informatica. Questo progetto ha agito un po' come il mio progetto senior nel dipartimento di teatro. Se hai commenti o domande, mi piacerebbe aiutarti.

Lo sviluppo futuro potrebbe includere più canali, connettore DMX a 5 pin, passthrough DMX, 8 dip switch per cambiare canale, circuito stampato.

Ho migrato questo progetto da https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html perché è ancora popolare, immagino. Inoltre ho perso il mio file seme iWeb, quindi non posso più aggiornarlo facilmente. Sarebbe bello consentire alle persone di condividere tra loro le loro domande sul progetto.

Passaggio 1: raccolta dell'hardware

Raccogliere l'hardware
Raccogliere l'hardware

Hardware utilizzato: la maggior parte è stata ordinata da Tayda Electronics. Mi piacciono di più di DigiKey a causa della selezione più piccola e più facile da capire.

  1. ATMEGA328, Microcontrollore
  2. MOC3020, TRIAC Optoaccoppiatore. Non ZeroCross.
  3. MAX458 o SN75176BP, ricevitore DMX
  4. ISP814, fotoaccoppiatore CA
  5. 7805, regolatore 5v
  6. BTA24-600, 600V 25A TRIAC
  7. Cristallo da 20 MHz
  8. Alimentazione 9V

Alcuni ostacoli e lezioni apprese lungo la strada

  • Se non sei un esperto di registro, mantieni un ATMEGA328P
  • Optoaccoppiatori sbagliati. Non vuoi Zero Cross
  • I canali alti erano instabili. Il passaggio da 16 MHz a 20 MHz ha risolto questo problema
  • Impossibile avere una spia di stato DMX perché la chiamata di interruzione doveva essere molto veloce
  • L'alimentazione CC deve essere estremamente stabile, qualsiasi ondulazione farà sì che il segnale DMX diventi molto rumoroso

Il design TRIAC è venuto da MRedmon, grazie.

Passaggio 2: progettazione del circuito

Progettazione di circuiti
Progettazione di circuiti

Ho usato Fritzing 7.7 su Mac per progettare il mio circuito.

Il MAX485 in alto viene utilizzato per convertire il segnale DMX in qualcosa che Arduino può leggere.

Il 4N35 a sinistra viene utilizzato per rilevare lo zero cross del segnale CA in modo che Arduino saprà a che ora attenuare l'uscita dell'onda sinusoidale. Maggiori informazioni su come l'hardware e il software interagiscono nella sezione software.

Ho ricevuto la domanda: questo progetto funzionerà in Europa con 230V e 50Hz? Non vivo in Europa, né ci vado spesso per poter testare questo design. Dovrebbe funzionare, dovresti solo modificare la linea di temporizzazione della luminosità del codice per il diverso ritardo di frequenza.

Passaggio 3: progettazione del circuito di Kovari

Il progetto del circuito di Kovari
Il progetto del circuito di Kovari
Il progetto del circuito di Kovari
Il progetto del circuito di Kovari

Attraverso il processo di creazione del mio sito Web sono stato in grado di avere alcune conversazioni via e-mail. Uno era con Kovari Andrei che ha realizzato un design del circuito basato su questo progetto e ha voluto condividere il suo design. Non sono un progettista di circuiti stampati, ma è un progetto Eagle. Fammi sapere come funziona per te se lo usi.

Fase 4: Progettazione del circuito di Giacomo

Il progetto del circuito di Giacomo
Il progetto del circuito di Giacomo

Di tanto in tanto le persone mi invieranno messaggi con gli emozionanti adattamenti che hanno fatto con questo istruttivo e ho pensato che dovrei condividerli con tutti voi.

Giacomo modificò il circuito in modo che non fosse necessario un trasformatore a presa centrale. Il pcb è monofacciale e può essere una soluzione più abbordabile per chi non può realizzare bifacciale in casa (un po' difficoltoso).

Passaggio 5: software

Software
Software

Sono un ingegnere del software di professione, quindi questa parte è la più dettagliata.

Summery: quando Arduino si avvia per la prima volta, viene chiamato il metodo setup(). Lì ho impostato alcune delle variabili e delle posizioni di output da utilizzare in seguito. zeroCrossInterupt() viene chiamato/eseguito ogni volta che l'AC passa da una tensione positiva a una negativa. Imposterà il flag zeroCross per ogni canale e avvierà il timer. Il metodo loop() viene chiamato continuamente per sempre. Per attivare l'uscita, il TRIAC deve essere attivato solo per 10 microsecondi. Se è il momento di attivare il TRIAC e si è verificato lo zeroCross, l'uscita si attiverà fino alla fine della fase AC.

C'erano alcuni esempi online che ho usato per avviare questo progetto. La cosa principale che non riuscivo a trovare era avere più uscite TRIAC. Altri hanno usato la funzione di ritardo per PWM dell'uscita, ma nel mio caso non funzionerebbe perché l'ATMEGA deve ascoltare DMX tutto il tempo. Ho risolto questo facendo pulsare il TRIAC a così tanti ms dopo lo zero-cross. Impulsando il TRIAC più vicino allo zero-cross, viene emessa una quantità maggiore di onda sinusoidale.

Ecco come appare la metà dell'onda sinusoidale da 120 V CA su un oscilloscopio, sopra.

L'ISP814 è collegato all'interrupt 1. Quindi, quando riceve il segnale che l'AC passa da positivo a negativo o viceversa, imposta lo zeroCross per ciascun canale su vero e avvia il cronometro.

Nel metodo loop(), controlla ogni canale se zeroCross è vero e il tempo necessario per attivarlo è passato, attiverà il TRIAC per 10 microsecondi. Questo è sufficiente per accendere il TRIAC. Una volta acceso, un TRIAC rimarrà attivo fino a zeroCross. La luce tremolava quando il DMX era intorno al 3%, quindi ho aggiunto il troncamento per evitarlo. Ciò è stato causato dal fatto che l'Arduino era troppo lento e l'impulso a volte innescava la successiva onda sin invece dell'ultimo 4% dell'onda.

Inoltre nel loop() ho impostato il valore PWM dei LED di stato. Questi LED possono utilizzare il PWM interno generato da Arduino perché non dobbiamo preoccuparci dello zeroCross di AC. Una volta impostato il PWM, Arduino continuerà a quella luminosità fino a quando non viene detto diversamente.

Come notato nei commenti in alto, per utilizzare un interrupt DMX sul pin 2 ed eseguire a 20 MHz dovrai modificare alcuni dei file dell'applicazione Arduino. In HardwareSerial.cpp un pezzo di codice deve essere cancellato, questo ci permette di scrivere la nostra chiamata di interrupt. Questo metodo ISR è in fondo al codice per gestire l'interrupt DMX. Se hai intenzione di utilizzare un Arduino come programmatore ISP, assicurati di ripristinare le modifiche su HardwareSerial.cpp altrimenti l'ATMEGA328 sulla breadboard sarà irraggiungibile. Il secondo cambiamento è più facile. Il file board.txt deve essere cambiato alla nuova velocità di clock di 20MHz.

luminosità[ch]=map(DmxRxField[ch], 0, 265, 8000, 0);

La luminosità è mappata a 8000 perché è la quantità di microsecondi di 1/2 di un'onda sinusoidale CA a 60 hz. Quindi a piena luminosità 256 DMX il programma lascerà 1/2 dell'onda sinusoidale AC ON per 8000us. Ho trovato 8000 tramite ipotesi e controllo. Fare la matematica di 1000000us/60hz/2 = 8333 in modo che potrebbe essere un numero migliore, ma avere 333us extra in testa consente l'apertura del TRIAC e qualsiasi jitter nel programma è probabilmente una buona idea.

Su Arduino 1.5.3 hanno spostato la posizione del file HardwareSerial.cpp. Ora è /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp Dovrai commentare l'intero se il blocco inizia con la riga 39: #if definito(USART_RX_vect)

Altrimenti ti ritroverai con questo errore: core/core.a(HardwareSerial0.cpp.o): Nella funzione `_vector_18':

Passaggio 6: impacchettarlo

Imballaggio
Imballaggio
Imballaggio
Imballaggio
Imballaggio
Imballaggio

Ho preso la scatola grigia del progetto a Menards nella loro sezione elettrica. Ho usato un seghetto alternativo per tagliare i fori delle spine elettriche. Il caso ha un morsetto a c da teatro attaccato alla parte superiore per scopi di sospensione. Spie di stato per ogni ingresso e uscita per aiutare a diagnosticare se c'è mai un problema. Un'etichettatrice è stata utilizzata per spiegare le diverse porte sul dispositivo. I numeri accanto a ciascuna presa rappresentano il numero del canale DMX. Ho fissato il circuito stampato e il trasformatore con della colla a caldo. I LED sono bloccati in posizione con i supporti per LED.

Consigliato: