//********************************************************************************************************* #include // Подключаем скаченую нами библиотеку //********************************************************************************************************* // Пример кода №1 *** Экспериментальный*** //********************************************************************************************************* #define DMX512 (0) // (250 kbaud - 2 от 512 каналов) Стандарт USITT DMX-512 #define DMX1024 (1) // (500 kbaud - 2 от 1024 каналов) Не стандарт, проверка. #define DMX2048 (2) // (1000 kbaud - 2 от 2048 каналов) called by manufacturers DMX1000K, [[:wiki:dmx_512|DMX]] 4x or [[:wiki:dmx_512|DMX]] 1M ??? void setup() { // configurar pines arduino del 2 al 13 como entradas con pullup, (cuando se pulsa el boton = 0 si no = 1) // configure arduino pins 2 to 13 as inputs with pullup, (button pressed = 0, button free = 1) for (int i=2;i<=13;i++) { pinMode(i,INPUT); // pines como entradas // pins as inputs digitalWrite(i, HIGH); // activar resistencias pullup internas // turn on pullup internal resistors } ArduinoDmx0.set_tx_address(1); // poner aqui la direccion de inicio de [[:wiki:dmx_512|DMX]] // put here [[:wiki:dmx_512|DMX]] start address ArduinoDmx0.set_tx_channels(100); // poner aqui el numero de canales a transmitir // put here the number of [[:wiki:dmx_512|DMX]] channels to transmmit ArduinoDmx0.init_tx(DMX512); // iniciar transmision universo 0, modo estandar DMX512 // starts universe 0 as TX, standard mode DMX512 } //end setup() void loop() { // seis entradas con potenciometros que envian valores [[:wiki:dmx_512|DMX]] entre 0 y 255 a los canales 1 al 6 // six analog inputs with potentiometers, sending values from 0 to 255, to [[:wiki:dmx_512|dmx]] output channels 1 to 6 ArduinoDmx0.TxBuffer[0] = scale(analogRead(0)); // copiar valor de la entrada analogica 0 al canal DMX 1 // copy value from analog input 0 to DMX channel 1 ArduinoDmx0.TxBuffer[1] = scale(analogRead(1)); // copiar valor de la entrada analogica 1 al canal [[:wiki:dmx_512|DMX]] 2 // copy value from analog input 1 to [[:wiki:dmx_512|DMX]] channel 2 ArduinoDmx0.TxBuffer[2] = scale(analogRead(2)); // copiar valor de la entrada analogica 2 al canal DMX 3 // copy value from analog input 2 to DMX channel 3 ArduinoDmx0.TxBuffer[3] = scale(analogRead(3)); // copiar valor de la entrada analogica 3 al canal [[:wiki:dmx_512|DMX]] 4 // copy value from analog input 3 to [[:wiki:dmx_512|DMX]] channel 4 ArduinoDmx0.TxBuffer[4] = scale(analogRead(4)); // copiar valor de la entrada analogica 4 al canal DMX 5 // copy value from analog input 4 to DMX channel 5 ArduinoDmx0.TxBuffer[5] = scale(analogRead(5)); // copiar valor de la entrada analogica 5 al canal [[:wiki:dmx_512|DMX]] 6 // copy value from analog input 5 to [[:wiki:dmx_512|DMX]] channel 6 if (digitalRead(2) == LOW) // pulsador en pin 2 apretado // push-button on pin 2, is pressed ArduinoDmx0.TxBuffer[6] = 255; // enviar 255 al canal [[:wiki:dmx_512|DMX]] 7 // send value 255 to [[:wiki:dmx_512|DMX]] channel 7 else ArduinoDmx0.TxBuffer[6] = 0; // si no enviar 0 // push-button free, send 0 if (digitalRead(3) == LOW) // pulsador en pin 3 apretado ArduinoDmx0.TxBuffer[7] = 255; // enviar 255 al canal DMX 8 else ArduinoDmx0.TxBuffer[7] = 0; // si no enviar 0 if (digitalRead(4) == LOW) // pulsador en pin 4 apretado ArduinoDmx0.TxBuffer[8] = 255; // enviar 255 al canal [[:wiki:dmx_512|DMX]] 9 else ArduinoDmx0.TxBuffer[8] = 0; // si no enviar 0 // añadir aqui hasta el pin 13 // add here the others inputs } //end loop() uint8_t scale(uint16_t value) // scale values from 10 bits to 8 bits { if(value > 1023) // test for 10 bits limit value = 1023; return (value >> 2); // scale } //end scale() //*************************************************************************************************************