0% acharam este documento útil (0 voto)
306 visualizações3 páginas

Biblioteca Arduino para DMX Avançado

Este documento descreve uma biblioteca Arduino para controlar até quatro universos DMX simultaneamente sem usar os temporizadores do Arduino. A biblioteca permite receber e transmitir dados DMX em diferentes modos, incluindo o padrão DMX512 e modos experimentais mais rápidos. Instruções passo a passo são fornecidas para configurar e usar a biblioteca.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
306 visualizações3 páginas

Biblioteca Arduino para DMX Avançado

Este documento descreve uma biblioteca Arduino para controlar até quatro universos DMX simultaneamente sem usar os temporizadores do Arduino. A biblioteca permite receber e transmitir dados DMX em diferentes modos, incluindo o padrão DMX512 e modos experimentais mais rápidos. Instruções passo a passo são fornecidas para configurar e usar a biblioteca.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 3

Código para Arduino DMX

Biblioteca Arduino quatro universos DMX


Publicado em 3 de junho de 2012 por Toni Merino em projetos Arduino
Depois de pesquisar as bibliotecas da web ou de código para Arduino DMX e tentar nós não
encontrar qualquer biblioteca que permite a utilização de vários universos DMX e não utilizar
timers Arduino, assim, finalmente, decidimos criá-lo.

*** ATUALIZAÇÃO 07/07/2012 ***

Baixe a versão mais recente: Arduino quatro universos DMX biblioteca versão 0.3

O esquema de ligação você pode encontrá-lo em:

Esboço de quatro universos DMX 512 Arduino escudo.

Versão 0.3 NOTÍCIAS


- Você não precisa para desabilitar e habilitar as interrupções durante a configuração.
- Você não precisa modificar o arquivo HarwareSerial.cpp Arduino IDE.
- Suporte experimental para os modos de DMX não-padrão, mais rápido e com mais canais
universo:

DMX512 (250 kbaud - 2-512 canais) Padrão USITT DMX-512 1990


DMX1024 (500 kbaud - 2-1024 canais) Completamente fora do padrão - TEST ok
DMX2048 (1000 kBaud - 2-2048 canais) DMX1000K chamado pelos fabricantes?
- Removido indicadores LED tx - rx, se necessário devem ser implementadas no programa.
- Interrupção da transmitidos e recebidos por cada universo, lote de retorno de chamada do usuário.

Assuntos conhecidos:
Quando compilar mensagem de erro: 'ArduinoDmxN' não foi declarado no âmbito do ESTA:
Verifique se configurado corretamente o tipo de placa no Arduino IDE, menu Ferramentas> bordo
(Arduino Nano só pode usar uma USART = ArduinoDmx0 = USART0)
Erros na programação do Arduino:
Remova o escudo DMX para programar o Arduino e ligá-lo novamente mais tarde.

LEDs piscam para controlar:


Se estamos a lidar com surtos de LEDs podem aparecer cintilação devido a uma taxa de atualização
muito baixo para eles, nós usamos menos canais universo (por exemplo, 200 em vez de 512, para
aumentar a frequência) e / ou utilizar menos universos. Este é um problema conhecido que afeta
todas as tabelas e os controladores que enviam 512 canais, mesmo quando o máximo DMX taxa de
atualização (em torno de 44 Hz.)

Nota sobre a taxa de atualização:


O Arduino Mega Arduino Nano e usar um microcontrolador Atmel AVR 8-bit a 16 Mhz, que impõe
uma limitação de recursos.
Para buffers de modo de exemplo 4 em DMX1000K 2048 canais cada um vai consumir toda a
memória em um Arduino mega 2560, portanto, ele deve ser claro o que estamos fazendo.
Observamos também que, na prática certamente não podemos usar todos os universos com todos os
canais se nós manter-se a taxa de atualização das entradas e saídas DMX.

 
Instruções para instalar a biblioteca - Versão 0.3:

Copie a pasta da biblioteca Deskontrol "Dmx" para-XX.XX Arduino / bibliotecas / pastas

As instruções para utilizar a biblioteca:

Há quatro objetos já criados chamado "ArduinoDmx0", "ArduinoDmx1", "ArduinoDmx2",


"ArduinoDmx3", cada um desses objetos usando um mega USART Arduino, Arduino Nano só
pode usar "ArduinoDmx0" que há apenas uma USART.

Ao compilar seus programas para a economia Arduino devem comentar os "lib_dmx.h" linhas de
arquivos com "USE_UARTN #define" de USARTs não vai usar. (Arduino mega somente), de
forma a evitar código desnecessário é compilado.

A utilização é muito fácil, as funções a serem utilizados são os seguintes:

ArduinoDmxN.set_control_pin (PIN_NUMBER); // -1 Se o pino de controle não é usado

Chamar esta função que atribuir o número do pino para ser utilizado para controlar o condutor
MAX485, se o universo funciona como entrada ou de saída. (Pino Arduino que conecta aos pinos 2
e 3 do MAX485) pode ser qualquer pino de saída digital do Arduino.

ArduinoDmxN.set_rx_address (DMX_RX_ADDRESS);

Chamar esta função vamos atribuir o endereço de entrada DMX para este universo, ele pode ser
qualquer valor entre 1 e 510 (2046) *.

ArduinoDmxN.set_tx_address (DMX_TX_ADDRESS);

Chamar esta função vamos atribuir o endereço de saída DMX para este universo, ele pode ser
qualquer valor entre 1 e 510 (2046) *.

ArduinoDmxN.set_rx_channels (NUMBER_OF_CHANNELS);

Chamar esta função vamos atribuir o número de canais de entrada DMX para este universo, pode
ser qualquer valor entre 2 e 512 (2048) *.

ArduinoDmxN.set_tx_channels (NUMBER_OF_CHANNELS);

Chamar esta função vamos atribuir o número de canais de saída DMX para este universo, pode ser
qualquer valor entre 2 e 512 (2048) *.

Se você quiser usar o modo síncrono:

ArduinoDmxN.attachTXInterrupt (my_TX_ISR_name);

Chamar esta função vamos atribuir o nome da função de callback que cada vez que você enviar um
quadro termina em um universo DMX ativa. (Evita a perda de tempo no ciclo de programa
principal)

ArduinoDmxN.attachRXInterrupt (my_RX_ISR_name);
Chamar esta função vamos atribuir o nome da função de callback que termina cada vez que receber
um DMX quadro em um universo ativa. (Evita a perda de tempo no ciclo de programa principal)

Para começar a transmitir ou receber DMX num universo (no momento em que não é possível em
simultâneo no mesmo universo), utilizamos uma das seguintes funções:

ArduinoDmxN.init_rx (DMX_MODE); // *** *** Novo parâmetro DMX_MODE

Chamar essa função (uma vez chamou as funções acima) recebem começou este universo para
DMX.

ArduinoDmxN.init_tx (DMX_MODE); // *** *** Novo parâmetro DMX_MODE

Chamar essa função (uma vez chamou as funções acima) iniciou este universo para transmitir
DMX.

Para escrever na saída DMX: ArduinoDmxN.TxBuffer [CHANNEL - 1] = dados;

Para ler a entrada DMX: Data = ArduinoDmxN.RxBuffer [CHANNEL - 1];

* Esta biblioteca não usa qualquer temporizador Arduino, mantendo-se livre para outros usos.

Assim, podemos usar até quatro universos simultaneamente, cada um funcionando como entrada ou
saída DMX.

Nos exemplos da livraria que gostamos:


- Receber DMX em um único universo.
- Mix 2 entradas DMX (2) universos em um, com canais remendadas. 200 + 200 canais de entrada,
saída 400.
- Misture 2 entradas DMX (2) universos em um, com a maior prioridade valor (HTP)
- Use interrompe para enviar ou receber de forma síncrona.
- Uso de modos de DMX não-padrão rápido.

* 2048 canais DMX1000K - 512 com DMX512

Você também pode gostar