Tabla de contenido:
- Paso 1: recopilación del hardware
- Paso 2: Diseño de circuito
- Paso 3: Diseño del circuito de Kovari
- Paso 4: Diseño del circuito de Giacomo
- Paso 5: software
- Paso 6: empaquetarlo
Video: Atenuador DMX de 4 canales: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
El concepto es diseñar y crear un atenuador portátil.
Requerimientos:
- DMX512 controlable
- 4 canales
- Portátil
- Fácil de usar
Le propuse esta idea a mi profesor en WSU porque quería combinar mis pasiones por el teatro y las computadoras. Este proyecto actuó un poco como mi proyecto senior en el departamento de teatro. Si tiene algún comentario o pregunta, me encantaría ayudarlo.
El desarrollo futuro podría incluir más canales, conector DMX de 5 pines, paso a través de DMX, 8 interruptores DIP para cambiar el canal, placa de circuito impreso.
He migrado este proyecto de https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html porque todavía es popular, supongo. También perdí mi archivo semilla de iWeb, por lo que ya no puedo actualizarlo fácilmente. Sería bueno permitir que las personas compartan sus preguntas sobre el proyecto entre sí.
Paso 1: recopilación del hardware
Hardware utilizado: la mayor parte se solicitó a Tayda Electronics. Me gustan más que DigiKey debido a la selección más pequeña y más fácil de entender.
- ATMEGA328, Microcontrolador
- MOC3020, Optoacoplador TRIAC. No ZeroCross.
- MAX458 o SN75176BP, receptor DMX
- ISP814, optoacoplador de CA
- 7805, regulador de 5v
- BTA24-600, 600 V 25 A TRIAC
- Cristal de 20 MHz
- Fuente de alimentación de 9V
Algunos obstáculos y lecciones aprendidas en el camino
- Si no es un experto en registros, quédese con un ATMEGA328P
- Optoacopladores incorrectos. Tu no quieres Zero Cross
- Los canales altos eran inestables. Cambiar de 16 MHz a 20 MHz resolvió este problema
- No se puede tener una luz de estado DMX porque la llamada de interrupción tenía que ser muy rápida
- La alimentación de CC tiene que ser extremadamente estable, cualquier ondulación hará que la señal DMX se vuelva muy ruidosa
El diseño de TRIAC vino de MRedmon, gracias.
Paso 2: Diseño de circuito
Usé Fritzing 7.7 en Mac para diseñar mi circuito.
El MAX485 en la parte superior se usa para convertir la señal DMX en algo que Arduino pueda leer.
El 4N35 de la izquierda se usa para detectar el cruce por cero de la señal de CA para que Arduino sepa a qué hora atenuar la salida de la onda sinusoidal. Más sobre cómo interactúan el hardware y el software en la sección de software.
Me han preguntado si este proyecto funcionará en Europa con 230V y 50Hz. No vivo en Europa, ni viajo allí a menudo para poder probar este diseño. Debería funcionar, solo tendría que modificar la línea de tiempo de brillo del código para el retardo de tiempo de frecuencia diferente.
Paso 3: Diseño del circuito de Kovari
A través del proceso de tener mi sitio web, pude tener algunas conversaciones por correo electrónico. Uno fue con Kovari Andrei, quien hizo un diseño de circuito basado en este proyecto y quería compartir su diseño. No soy diseñador de placas de circuito, pero es un proyecto de Eagle. Déjame saber cómo te funciona si lo usas.
Paso 4: Diseño del circuito de Giacomo
De vez en cuando, la gente me envía mensajes con las emocionantes adaptaciones que han hecho con este instructivo y pensé que debería compartirlas con todos ustedes.
Giacomo modificó el circuito para que no se requiriera un transformador con toma central. La placa de circuito impreso es de una cara y puede ser una solución más asequible para quienes no pueden hacer la doble cara en casa (un poco difícil).
Paso 5: software
Soy ingeniero de software de profesión, por lo que esta parte es la más detallada.
Summery: Cuando Arduino arranca por primera vez, se llama al método setup (). Allí configuré algunas de las variables y ubicaciones de salida para usarlas más adelante. zeroCrossInterupt () se llama / se ejecuta cada vez que la CA cruza de voltaje positivo a negativo. Establecerá la bandera zeroCross para cada canal e iniciará el temporizador. El método loop () se llama continuamente para siempre. Para encender la salida, el TRIAC solo debe activarse durante 10 microsegundos. Si es el momento de activar el TRIAC y ha ocurrido zeroCross, la salida se encenderá hasta el final de la fase de CA.
Hubo algunos ejemplos en línea que utilicé para comenzar este proyecto. Lo principal que no pude encontrar fue tener múltiples salidas TRIAC. Otros usaron la función de retardo para PWM en la salida, pero eso no funcionaría en mi caso porque el ATMEGA tiene que estar escuchando DMX todo el tiempo. Resolví esto pulsando el TRIAC a tantos ms después del cruce por cero. Pulsando el TRIAC más cerca del cruce por cero, se emite más onda sinusoidal.
Así es como se ve la media onda sinusoidal de 120 VCA en un osciloscopio, arriba.
El ISP814 está conectado a la interrupción 1. Por lo tanto, cuando recibe la señal de que la CA pasa de positivo a negativo o viceversa, establece el cruce cero para cada canal en verdadero e inicia el cronómetro.
En el método loop (), verifica cada canal si zeroCross es verdadero y ha pasado el tiempo para que se active, pulsará el TRIAC durante 10 microsegundos. Esto es suficiente para encender el TRIAC. Una vez que se enciende un TRIAC, permanecerá encendido hasta zeroCross. La luz parpadeaba cuando el DMX estaba alrededor del 3%, así que agregué el truncado allí para evitarlo. Esto se debió a que el Arduino era demasiado lento, y el pulso algunas veces desencadenaba la siguiente onda sinusoidal en lugar del último 4% de la onda.
También en el loop () configuro el valor PWM de los LED de estado. Estos LED pueden usar el PWM interno generado por Arduino porque no tenemos que preocuparnos por el zeroCross de AC. Una vez que se configura el PWM, Arduino continuará con ese brillo hasta que se indique lo contrario.
Como se señaló en los comentarios principales, para usar una interrupción DMX en el pin 2 y ejecutar a 20MHz, tendrá que editar algunos de los archivos de la aplicación Arduino. En HardwareSerial.cpp se debe eliminar un fragmento de código, esto nos permite escribir nuestra propia llamada de interrupción. Este método ISR está en la parte inferior del código para manejar la interrupción DMX. Si va a utilizar un Arduino como programador de ISP, asegúrese de revertir sus cambios a HardwareSerial.cpp; de lo contrario, no se podrá acceder al ATMEGA328 en la placa de pruebas. El segundo cambio es más sencillo. El archivo boards.txt debe cambiarse a la nueva velocidad de reloj de 20MHz.
brillo [ch] = mapa (DmxRxField [ch], 0, 265, 8000, 0);
El brillo se asigna a 8000 porque esa es la cantidad de microsegundos de 1/2 onda sinusoidal de CA a 60 Hz. Entonces, con 256 DMX de brillo total, el programa dejará la mitad de la onda sinusoidal de CA encendida durante 8000us. Se me ocurrió 8000 a través de adivinar y comprobar. Hacer los cálculos de 1000000us / 60hz / 2 = 8333, por lo que podría ser un número mejor, pero tener los 333us adicionales por encima permite que el TRIAC se abra y cualquier fluctuación en el programa probablemente sea una buena idea.
En Arduino 1.5.3 que movieron la ubicación del archivo HardwareSerial.cpp. Ahora es /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp Deberá comentar todo este bloque si comienza con la línea 39: #if definido (USART_RX_vect)
De lo contrario, terminará con este error: core / core.a (HardwareSerial0.cpp.o): En la función `_vector_18 ':
Paso 6: empaquetarlo
Recogí la caja gris del proyecto en Menards en su sección eléctrica. Usé una sierra recíproca para cortar los orificios del enchufe eléctrico. El estuche tiene una abrazadera en C de teatro unida a la parte superior para colgarla. Luces de estado para cada entrada y salida para ayudar a diagnosticar si alguna vez hay un problema. Se utilizó una rotuladora para explicar los diferentes puertos del dispositivo. Los números al lado de cada conector representan el número de canal DMX. Pegué la placa de circuito y el transformador con un poco de pegamento caliente. Los LED están pegados en su lugar con soportes para LED.
Recomendado:
Potente atenuador de CA digital con STM32: 15 pasos (con imágenes)
Potente atenuador de CA digital con STM32: por Hesam Moshiri, [email protected] ¡Las cargas de CA viven con nosotros! Porque están en todas partes a nuestro alrededor y al menos los electrodomésticos se alimentan de la red eléctrica. Muchos tipos de equipos industriales también se alimentan con el 220V-AC monofásico
Hacer su propio atenuador LED doble (balancín): 4 pasos
Hacer su propio atenuador LED doble (balancín): Hoy, le mostraré cómo hacer el atenuador LED doble con solo 555 chips de temporizador junto con componentes comunes. Similar a un solo MOSFET / transistor (ya sea PNP, NPN, canal P, o N-Channel) que ajusta el brillo de un LED, este usa dos MOS
Control remoto inalámbrico con módulo NRF24L01 de 2.4Ghz con Arduino - Receptor transmisor de 4 canales / 6 canales Nrf24l01 para Quadcopter - Helicóptero Rc - Avión Rc usando Arduino: 5 pasos (con imágenes)
Control remoto inalámbrico con módulo NRF24L01 de 2,4 Ghz con Arduino | Receptor transmisor de 4 canales / 6 canales Nrf24l01 para Quadcopter | Helicóptero Rc | Avión Rc usando Arduino: Para operar un coche Rc | Quadcopter | Drone | Avión RC | Barco RC, siempre necesitamos un receptor y transmisor, supongamos que para RC QUADCOPTER necesitamos un transmisor y receptor de 6 canales y ese tipo de TX y RX es demasiado costoso, así que haremos uno en nuestro
Antena interior BIQUAD, fabricada en cobre y madera para recepción de canales HDTV en la banda UHF (CANALES 14-51): 7 pasos
Antena Interior BIQUAD, Fabricada en Cobre y Madera para Recepción de Canales HDTV en la Banda UHF (CANALES 14-51): En el mercado existen una variedad de antenas para televisión. Los más populares según mi criterio son: UDA-YAGIS, Dipole, Dipole con reflectores, Patch y antenas logarítmicas. Dependiendo de las condiciones, la distancia desde la transmisión a
Transceptor DMX de 4 canales: 24 pasos
Transceptor DMX de 4 canales: El módulo de plataforma DMX IO es un transceptor DMX de 4 canales. En el modo de recepción, puede controlar hasta cuatro canales de salida TTL de baja corriente (3.3v, por ejemplo, para servos y LED pequeños) o de alta corriente (12v, por ejemplo, lámparas, relés, solenoides, motor paso a paso, etc.)