Sommario:
- Passaggio 1: raccolta dell'hardware
- Passaggio 2: progettazione del circuito
- Passaggio 3: progettazione del circuito di Kovari
- Fase 4: Progettazione del circuito di Giacomo
- Passaggio 5: software
- Passaggio 6: impacchettarlo
Video: Dimmer DMX a 4 canali: 6 passi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
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
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.
- ATMEGA328, Microcontrollore
- MOC3020, TRIAC Optoaccoppiatore. Non ZeroCross.
- MAX458 o SN75176BP, ricevitore DMX
- ISP814, fotoaccoppiatore CA
- 7805, regolatore 5v
- BTA24-600, 600V 25A TRIAC
- Cristallo da 20 MHz
- 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
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
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
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
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
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:
Relè a 4 canali: 14 passaggi
Relè a 4 canali: --di Bhawna Singh, Prerna Gupta, Maninder Bir Singh Gulshan
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino - Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero - Elicottero Rc - Aereo RC con Arduino: 5 passaggi (con immagini)
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino | Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero | Elicottero Rc | Aereo radiocomandato con Arduino: per far funzionare un'auto radiocomandata | Quadricottero | Drone | Aereo RC | Barca RC, abbiamo sempre bisogno di un ricevitore e trasmettitore, supponiamo che per RC QUADCOPTER abbiamo bisogno di un trasmettitore e ricevitore a 6 canali e quel tipo di TX e RX è troppo costoso, quindi ne faremo uno sul nostro
Antenna da Interno BIQUAD, in Rame e Legno per la Ricezione di Canali HDTV in Banda UHF (CANALI 14-51): 7 Passi
Antenna da Interno BIQUAD, Realizzata in Rame e Legno per la Ricezione di Canali HDTV in Banda UHF (CANALI 14-51): In commercio esistono svariate antenne per la televisione. I più popolari secondo i miei criteri sono: UDA-YAGIS, Dipolo, Dipolo con riflettori, Antenne Patch e Logaritmiche. A seconda delle condizioni, la distanza dalla trasmissione a
Fai da te Massiccio 12000 Watt 230 V Programmabile Illuminazione Programmabile 12 Canali: 10 Passi
Configurazione dell'illuminazione programmabile a 12 canali da 12000 Watt e 230 V fai-da-te: Ciao a tutti, in questo progetto ti mostrerò come creare un enorme controller di luci a led da 12000 watt. Questa è una configurazione a 12 canali, utilizzando questo circuito puoi controllare qualsiasi luce da 230 V .Puoi creare diversi modelli di illuminazione. In questo video ho
Ricetrasmettitore DMX a 4 canali: 24 passaggi
Ricetrasmettitore DMX a 4 canali: il modulo piattaforma DMX IO è un ricetrasmettitore DMX a 4 canali. In modalità di ricezione può controllare fino a quattro canali di uscita TTL a bassa corrente (3,3v, ad es. per servi e piccoli LED) o ad alta corrente (12v, ad es. lampade, relè, solenoidi, motori passo-passo, ecc.)