Controlador Testador Arduino DMX-512 – Kit Completo de Peças para Controle de Iluminação Confiável
Componentes e Materiais
| Arduino Mega 2560 | 1 |
| Potenciômetro Rotativo SparkFun - 10k Ohm, Linear | 1 |
| Chave Táctil Push Button Single Pole Single Throw Off Momentary | 5 |
| LCD Básico SparkFun 20x4 Caracteres - Verde sobre Preto 5V | 1 |
| Transistor 2N2222A TO-18 NPN 75V 0.6A | 2 |
| Matriz de Teclas 4x4 | 1 |
| Transceptor MAX485 Low-Power, Slew-Rate-Limited RS-485/RS-422 | 1 |
| Resistor 330 ohm | 2 |
| Resistor 1k ohm | 2 |
| Resistor 120 ohm | 1 |
| LED 3mm: Verde | 2 |
| Capacitor 1 nF | 6 |
| Bloco de Terminais Grande com 3 Parafusos | 1 |
| Bloco de Terminais Grande com 2 Parafusos | 1 |
| Chave Deslizante 1 polo, 2 posições | 1 |
| Conector XLR 3 Pinos Montagem PCB Amphenol AC3FAH2-AU-PRE | 1 |
| Conector XLR 5 Pinos Montagem PCB Amphenol AC5FAH-AU-B | 1 |
| Header Macho 40 Posições 1 Linha (0.1") | 4 |
| Placa Fenólica Face Simples 15 x 20 cm | 1 |
| Base para CI 8 pinos | 1 |
| Filme Fotossensível para PCB 30cm x 200cm / 2m | 1 |
Sobre o Projeto
Ferramenta de controle para testes e shows de luz pelo protocolo DMX-512, ideal para testes rápidos em instalações de iluminação fixas ou temporárias. Este projeto surgiu da necessidade de ter um sistema portátil para testes rápidos em instalações de iluminação, sem a necessidade de instalar mesas de luz, interfaces ou computadores em ambientes externos, hostis ou de difícil acesso.
Baseado em:
- Arduino Mega 2560 Rev-3
- Biblioteca Arduino quatro universos DMX v0.3 - Deskontrol
- Biblioteca LCD v1.2.1 - Francisco Malpartida
- Simulação Arduino no Proteus - Microcontrolandos
Hardware v0.4
Notas da Versão:
- Suporta Firmware v0.9 - v1.3
- LCD 4x20 com backlight e controle de contraste por software
- Alimentação via USB, baterias ou fonte externa
- Teclado de navegação
- Teclado matricial 4x4
- Controle analógico por potenciômetro
- Chave liga/desliga (não aplicável à alimentação USB)
- Saída DMX por bloco de terminais, XLR 3 pinos e XLR 5 pinos
- LEDs de status de saída DMX
- Simulação no Proteus V7.7 SP2
- Esquemático e PCB no Proteus v8.0 SP1
Iniciamos a Construção...
Utilizamos uma placa fenólica de uma face, reforçamos o cobre com lixa d'água, thinner circularmente.
Com o Proteus enviamos os arquivos para impressão de um negativo em acetato para pré-impressão (existe um PDF com o arquivo).
Uso e método do filme fotossensível.
Usamos uma laminadora de papel para aderir perfeitamente o filme ao PCB.
Adicionamos um pouco de água entre a placa e o acetato para que não se mova e aplicamos luz UV.
Aplicamos o cloreto férrico, estão limpas e prontas.
Furamos as placas.
Soldamos os componentes.
Retiramos a guia do potenciômetro.
Placa fenólica furada para colocar o potenciômetro.
Viramos o botão e soldamos o pino aos pads.
No caso da placa menor, colocamos os headers soldando por cima, acima dos pinos cortamos com lixa d'água e removemos o excesso.
Adicionamos fita dupla face para fixar o teclado à placa.
Aqui encontramos um detalhe: headers obstruíam o flex do teclado, cortamos (consideramos para a próxima versão).
Soldamos os headers que ficam sob o teclado e dobramos para trás para conectar o teclado lateralmente.
Colocamos o teclado no lugar na placa do LCD. Aqui há um detalhe: a base do MAX485 fica muito próxima ao teclado, forçamos um pouco (consideramos na próxima versão).
Adicionamos fita ao Arduino Mega na porta USB para evitar curto-circuito entre trilhas.
Todos os componentes montados.
Carregamos o firmware no Arduino.
Firmware v1.2
Notas da Versão:
- Suporta Hardware v0.3 - v0.4
- Navegação por cursor de forma fácil, acessível e intuitiva
- Inserção rápida de valores pelo teclado
- Inserção de valores pelo potenciômetro analógico
- Bancos de Memória armazenam 8 universos DMX
- Leitura da EEPROM para iniciar universo DMX pré-selecionado
- Seleção de opções de memória para inicialização
- Controle DMX Unitário: seleciona um canal específico e mostra valores dos canais anterior e posterior
- Controle DMX Matriz: mostra matriz 3x5 com valores dos canais exibidos
- Controle DMX Chaser: permite sequenciar canais selecionados com tempo definido
- Sequenciador DMX: permite sequenciar entre universos armazenados na EEPROM com tempo selecionado
- Controle DMX Multiplicar: permite multiplicar valores preenchendo canais selecionados
- Função para localizar luminária a partir do canal selecionado
- Acesso rápido a opções de memória
- Opções de memória: Salvar, Carregar, Limpar, Limpar Tudo (para bancos e memória RAM vazia)
- Opções de memória para os 8 bancos de universos DMX
- Função Black Out
- Controle de iluminação do backlight do LCD
- Controle de contraste do LCD
- Atalhos de teclado para backlight do LCD
- Compilado no Arduino IDE v1.0.6
- Biblioteca Arduino quatro universos DMX v0.3 - Deskontrol.net
- Biblioteca LCD v1.2.1 - Francisco Malpartida
Código
O código completo está disponível no repositório GitHub. Principais bibliotecas utilizadas:
#include <LiquidCrystal.h>
#include <Wire.h>
#include <EEPROM.h>
#include <string.h>
#include <lib_dmx.h> // Biblioteca DMX 4 universos Deskontrol
O firmware implementa navegação por menus via teclado matricial e cursor, controle de backlight/contraste via PWM, armazenamento em EEPROM de até 8 universos DMX (512 canais cada), e múltiplos modos de controle: Unitário, Matriz, Chaser, Sequenciador e Multiplicar.
Entrada do Usuário
Na inicialização, apresenta opções "Memória Inicial" para definir valores iniciais da RAM.
- O símbolo ">" indica onde o cursor está posicionado no menu
- O símbolo "+" e o cursor piscando indicam que se espera entrada numérica
- A navegação entre menus é feita pelas setas (cima, baixo, esquerda, direita) e centro que funciona como "enter"
- Ao dar "Enter" em um menu que requer entrada do usuário, aparece "+ ___" com cursor piscando; usa-se o teclado numérico; se o número tem menos de 3 dígitos, pressiona-se "#" que funciona como "enter" no teclado numérico
- Se for entrada de valor de canal DMX, pode-se pressionar (após "enter") a tecla "A" para digitar diretamente "255" (valor máximo) ou tecla "B" para "000" (valor mínimo)
- A tecla "C" serve para localizar uma luminária ou canal específico: seleciona-se posição de canal no valor, dá "enter" e pressiona "C"; o valor oscila entre "000" e "255"; para parar, pressiona "C" novamente
- A tecla "*" liga/desliga o backlight
- A tecla "D" ativa apenas para valores analógicos do potenciômetro, permitindo entrar com o valor girando-o
- A opção "Ctrl" retorna ao menu "Opções de Controle"
Memória Inicial
Define os valores iniciais da RAM, lendo da EEPROM:
- Empty (deixa EEPROM intacta, todos canais em "000")
- Load (carrega valores armazenados na EEPROM do universo DMX)
- Clear (apaga valores armazenados na EEPROM e deixa canais "000")
Opções de Controle
O usuário seleciona o método de controle dos diferentes canais DMX:
- Memory Acesso às opções de memória
- Unitary Acesso rápido a um canal específico
- Matrix Exibe matriz 3x5 com valores atuais de diferentes canais
- Chaser Faz sequência específica entre canais
- Multiply Atribui valor a número específico de canais com salto numérico definido
- Config Acesso às configurações do sistema
Controle Unitário
Permite acesso rápido a um canal específico:
- Channel Acesso ao canal
- Value Acesso ao valor do canal
- Ctrl Acessa menu "Opções de Controle"
- Memory Acesso ao menu "Opções de Memória"
Controle Matriz
Exibe matriz 3x5 com valores atuais de diferentes canais DMX:
- C --- Mostra número do canal selecionado pelo cursor
- Mem Acesso a "Opções de Memória"
- Ctrl Acesso a "Opções de Controle"
- 001-015 Acesso ao número de canais a exibir na matriz 3x5; o primeiro número representa o primeiro canal e o segundo o último canal
Controle Chaser
Permite sequência específica entre canais:
- ChaserCH Mostra valor atual sequenciado (após início da sequência)
- Delay Seleciona tempo em mS entre cada passo; o valor aproxima o número por 10 = número de mS
- First CH Seleciona primeiro canal da sequência
- Final CH Seleciona último canal da sequência
- Ctrl Acesso a "Opções de Controle"; valores sequenciados não afetam a RAM, sai com valores antigos
- Start Inicia a sequência e muda para "Stop"; aqui pode-se parar a sequência
Exemplo: Seleciona "Delay" 100 (100x10 = 1000 mS), "First CH" 001 e "Final CH" 512. Resultado: sequência do canal 1 a 512 com passo a cada segundo.
Controle Multiplicar
Atribui valor a número específico de canais com salto numérico definido:
- Value Seleciona valor a ser escrito (000-255)
- First CH Seleciona primeiro canal
- Multiply Seleciona número de canais a multiplicar
- Quantity Seleciona número de vezes a multiplicar
- Ctrl Acesso a "Opções de Controle"; RAM afeta canal
- Memory Acesso a "Opções de Memória"
- Apply Avalia a requisição; se não for possível, exibe "Error"; caso contrário, aplica multiplicação nos canais e coloca o valor selecionado
Exemplo: "Value" = 255, "First CH" = 001, "Multiply" = 003, "Quantity" = 170 e "Apply". Resultado: 170 canais do canal 1 a 510, de 3 em 3, com valor 255.
Opções de Memória
Acesso fácil às opções da EEPROM:
- Save Salva universo DMX com valores atuais
- Load Carrega da EEPROM valores salvos anteriormente do universo DMX
- Empty Apaga RAM com valores DMX atuais sem afetar a EEPROM
- Clear Limpa universo DMX armazenado na EEPROM
- Black Opção "Black Out": coloca todos os canais do universo DMX com "000", sem afetar a memória; para sair pressiona "enter" ou "central" e retorna valores anteriores
- Cancel Retorna ao menu anterior sem alterações
Configuração
Configuração geral do sistema:
- Localizada em "Opções de Controle"
- Backlight Seleciona valor dimmer entre 000-255 do backlight do LCD
- Contrast Seleciona valor dimmer entre 150-255 do contraste do LCD (limite inferior 150, para evitar que o LCD não seja visto)
- Exit Retorna ao menu anterior
- Valores modificados são salvos na memória EEPROM automaticamente
Sobre
Exibe informações do projeto e versões de hardware e firmware instaladas:
- Localizada em "Config"
- Para sair pressiona "enter" ou "center"
Para mais informações, atualizações e repositório: GitHub
Processo de manufatura
- Sistema de Iluminação DMX Controlado via Web – Controlador Mestre Arduino
- Display Interativo de Giroscópio com Anel NeoPixel e Arduino
- Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho
- Unopad: Controlador MIDI Arduino Perfeito para Ableton Live
- Pixie: Relógio de Pulso NeoPixel Baseado em Arduino – Elegante Timepiece DIY LED
- Controle um Rover Arduino com Firmata e Gamepad Xbox One
- Kit Controlador de Display Fluorescente a Vácuo (VFD) Baseado em Arduino
- Dominando Reconhecimento e Síntese de Fala no Arduino Due
- Controlador Residencial Arduino com Alexa: Automação Inteligente Simplificada
- Sistema Portátil de Câmera de Vigilância Remota