Blog Toni Merino - Deskontrol - Mini Controlador DMX Con Arduino
Blog Toni Merino - Deskontrol - Mini Controlador DMX Con Arduino
Blog Toni Merino - Deskontrol - Mini Controlador DMX Con Arduino
net/mini-controlador-dmx-con-arduino/
Problemas conocidos:
Al compilar nos aparece el error: ArduinoDmxN was not declared in this
scope:
Comprobar si esta configurado correctamente el tipo de placa en el IDE
Arduino, menu tools > board
(con Arduino nano y uno solo se puede utilizar una USART =
ArduinoDmx0 = USART0)
Errores al programar el Arduino:
Quitar el shield DMX para programar el Arduino y enchufarlo otra vez
despues.
En las siguientes imagenes se detalla el conexionado:
1 //******************************************************************
?
2 #include <lib_dmx.h> // libreria DMX 4 universos // four universe
3
4 //******************************************************************
5 // New DMX modes *** EXPERIMENTAL ***
6 //******************************************************************
7 #define DMX512 (0) // (250 kbaud - 2 to 512 channels) Stan
8 #define DMX1024 (1) // (500 kbaud - 2 to 1024 channels) Com
9 #define DMX2048 (2) // (1000 kbaud - 2 to 2048 channels) ca
10
11 void setup()
12 {
13 // configurar pines arduino del 2 al 13 como entradas con pullup,
2 de 6
14 // configure arduino pins 2 to 13 as inputs with pullup, (button p 14/10/2016 10:56 a.m.
Blog Toni Merino deskontrol - Mini controlador DMX con Arduino http://blog.deskontrol.net/mini-controlador-dmx-con-arduino/
12 {
13 // configurar pines arduino del 2 al 13 como entradas con pullup,
14 // configure arduino pins 2 to 13 as inputs with pullup, (button p
15 for (int i=2;i<=13;i++)
16 {
17 pinMode(i,INPUT); // pines como entradas
18 // pins as inputs
19 digitalWrite(i, HIGH); // activar resistencias pullup inte
20 // turn on pullup internal resistor
21 }
22
23 ArduinoDmx0.set_tx_address(1); // poner aqui la direccion de
24 // put here DMX start address
25
26 ArduinoDmx0.set_tx_channels(100); // poner aqui el numero de can
27 // put here the number of DMX
28
29 ArduinoDmx0.init_tx(DMX512); // iniciar transmision univers
30 // starts universe 0 as TX, st
31 } //end setup()
32
33 void loop()
34 {
35 // seis entradas con potenciometros que envian valores DMX entre 0
36 // six analog inputs with potentiometers, sending values from 0 to
37
38 ArduinoDmx0.TxBuffer[0] = scale(analogRead(0));
39
40 ArduinoDmx0.TxBuffer[1] = scale(analogRead(1));
41
42 ArduinoDmx0.TxBuffer[2] = scale(analogRead(2));
43
44 ArduinoDmx0.TxBuffer[3] = scale(analogRead(3));
45
46 ArduinoDmx0.TxBuffer[4] = scale(analogRead(4));
47
48 ArduinoDmx0.TxBuffer[5] = scale(analogRead(5));
49
50
51 if (digitalRead(2) == LOW) // pulsador en pin 2 apretado //
52 ArduinoDmx0.TxBuffer[6] = 255; // enviar 255 al canal DMX 7 //
53 else
54 ArduinoDmx0.TxBuffer[6] = 0; // si no enviar 0 //
55
56 if (digitalRead(3) == LOW) // pulsador en pin 3 apretado
57 ArduinoDmx0.TxBuffer[7] = 255; // enviar 255 al canal DMX 8
58 else
59 ArduinoDmx0.TxBuffer[7] = 0; // si no enviar 0
60
61 if (digitalRead(4) == LOW) // pulsador en pin 4 apretado
62 ArduinoDmx0.TxBuffer[8] = 255; // enviar 255 al canal DMX 9
63 else
64 ArduinoDmx0.TxBuffer[8] = 0; // si no enviar 0
65
66 // aadir aqui hasta el pin 13
67 // add here the others inputs
68
69 } //end loop()
70
71 uint8_t scale(uint16_t value) // scale values from 10 bits to 8 bits
72 {
73 if(value > 1023) // test for 10 bits limit
74 value = 1023;
75
76 return (value >> 2); // scale
3 de 6 77 } //end scale() 14/10/2016 10:56 a.m.
Blog Toni Merino deskontrol - Mini controlador DMX con Arduino http://blog.deskontrol.net/mini-controlador-dmx-con-arduino/
74 value = 1023;
75
76 return (value >> 2); // scale
77 } //end scale()
78
79 //******************************************************************
Ejemplo de codigo 2:
1 /******************************************************************
?
2 *
3 * Title : Controlador DMX con Arduino
4 * Version : v 0.1
5 * Last updated : 28.08.2012
6 * Target : Arduino mega 2560, Arduino mega 1280, Arduino
7 * Author : Toni Merino - merino.toni at gmail.co
8 * Web : blog.deskontrol.net
9 *
10 *
11 * Ejemplo de codigo para el mini-controlador DMX con Arduino:
12 * Este codigo lee los valores de 6 potenciometros conectados a 6
13 * solo cuando se presiona el pulsador correspondiente. (canales d
14 *
15 *******************************************************************
16 #include <lib_dmx.h> // libreria DMX 4 universos // deskontrol f
17
18 //*****************************************************************
19 // New DMX modes *** EXPERIMENTAL ***
20 //*****************************************************************
21 #define DMX512 (0) // (250 kbaud - 2 to 512 channels) Sta
22 #define DMX1024 (1) // (500 kbaud - 2 to 1024 channels) Co
23 #define DMX2048 (2) // (1000 kbaud - 2 to 2048 channels) c
24
25 uint8_t buffer[6]; // buffer DMX data
26
27 void setup()
28 {
29 // configurar pines arduino del 2 al 13 como entradas con pullup,
30 // configure arduino pins 2 to 13 as inputs with pullup, (button
31 for (int i=2;i<=13;i++)
32 {
33 pinMode(i,INPUT); // pines como entradas
34 // pins as inputs
35 digitalWrite(i, HIGH); // activar resistencias pullup int
36 // turn on pullup internal resisto
37 }
38
39 ArduinoDmx0.set_tx_address(1); // poner aqui la direccion de
40 // put here DMX start address
41
42 ArduinoDmx0.set_tx_channels(100); // poner aqui el numero de ca
43 // put here the number of DMX
44
45 ArduinoDmx0.init_tx(DMX512); // iniciar transmision univer
46 // starts universe 0 as TX, s
47 } //end setup()
48
49 void loop()
50 {
51 // seis entradas con potenciometros que envian valores DMX entre
52 // six analog inputs with potentiometers, sending values from 0 t
53
54 buffer[0] = scale(analogRead(0)); // copiar valor de la entrada a
55 // copy value from analog input
56 buffer[1] = scale(analogRead(1)); // copiar valor de la entrada a
4 de 6 57 // copy value from analog input 14/10/2016 10:56 a.m.
Blog Toni Merino deskontrol - Mini controlador DMX con Arduino http://blog.deskontrol.net/mini-controlador-dmx-con-arduino/