Equipos de iluminacion (efectos, roboticas, algo de dmx, y mucho DIY)

Cuando se observa detenidamente sobre todo en el color naranja se ven 2 movimientos diferentes y luego viene el verde.Mira amigo y como se puede hacer un efecto de gran alcance como el que adjunto?Mi idea es hacer 2 o 3 spot led caseros pero no se que tipo de led usar ya que tengo un paquete como de 12 led de 3w blanco frio. :)
 
Última edición:
Hola
Cuando se observa detenidamente sobre todo en el color naranja se ven 2 movimientos diferentes y luego viene el verde.Mira amigo y como se puede hacer un efecto de gran alcance como el que adjunto?Mi idea es hacer 2 o 3 spot led caseros pero no se que tipo de led usar ya que tengo un paquete como de 12 led de 3w blanco frio. :)
Si observas el segundo video que publicastes​
Se nota claramente ., la iluminacion azul y roja ., que tienen distintos angulos​
Y que una va en un sentido de giro ., y la otra en sentido opuesto​
Pero es una sola bola de espejos ., y gira para un solo lado ., ese fecto se produce por los angulos de iluminacion​
Los led de 3w son muy chicos ., para eso nesesitas muchisima mas potencia ., y manejo de colores ( blancos solo es aburrido jajajajajaja )​
 
Todo depende amigo,porque yo siempre trato de combinar y usar e efectos; uno con bola de espejos y puntos blancos para la musica de los 60 y 70,un efecto halogeno para la musica de los 80 y 90 y efectos led para la musica desde los años 2.000,y asi se crea una buena atmosfera :LOL:
 
La mayoria de pin spot led para esferas espejadas son de 3w y un angulo de 12 grados.Para un efecto mas nitido no seria mejor fabricar uno casero de 10watios ?No consigo como hacer un buen pin spot en el foro y si es RGB mucho mejor :D Y que tal armar un par de tachos led de 3w y colimadores de 15 grados,es lo que consigo,algo como los de las fotos adjuntas.
 

Adjuntos

  • pinspotledjpg.jpg_25.jpg
    pinspotledjpg.jpg_25.jpg
    79.9 KB · Visitas: 11
  • 20-unids-lote-ADJ-Par-led-3-x-12-W-RGBA-RGBW-Quad-4in1-American-DJ.jpg
    20-unids-lote-ADJ-Par-led-3-x-12-W-RGBA-RGBW-Quad-4in1-American-DJ.jpg
    74.7 KB · Visitas: 15
  • CL-Brand-10pcs-x-30-Degrees-LED-Lenses-for-1W-3W-5W-Hight-Power-LED-with.jpg_640x640.jpg
    CL-Brand-10pcs-x-30-Degrees-LED-Lenses-for-1W-3W-5W-Hight-Power-LED-with.jpg_640x640.jpg
    14.5 KB · Visitas: 17
Última edición:
Bueno yo te diria ., que consiguieras un led de 10w rgb (los de 20w ., 30W ., 50w y 100w ., no se le puede adaptar el lente ., cambia el tamaño)
Y que se puede poner un lente de los de 1w/3w/5w (obio que hay que trabajarlo)
El lente de 12 esta bien ., pero te cierra mucho el angulo ., tal vez uno de 20° podria andar tambien​
 
Última edición por un moderador:
segun el mejor efecto lo dan las lamparas de gas,pero calientan mucho .Y ese tipo de bombillo ,es caro aca y dificil de encontrar,debido a la eliminacion de los halogenos .El efecto que busco es el adjunto,logrado con un cabezal robotico movil,pero quiero hacerlo con algo mucho mas economico.:cool:
 

Adjuntos

  • 4xLOT-Free-shipping-2015-Stage-Lamp-MSD-font-b-250-b-font-2-MSD250W-90V-Bulb.jpg
    4xLOT-Free-shipping-2015-Stage-Lamp-MSD-font-b-250-b-font-2-MSD250W-90V-Bulb.jpg
    163.3 KB · Visitas: 32
  • High-quality-high-power-230W-7R-YODN-MSD-bulb-moving-font-b-head-b-font-lamp.jpg
    High-quality-high-power-230W-7R-YODN-MSD-bulb-moving-font-b-head-b-font-lamp.jpg
    153.4 KB · Visitas: 31
  • 11816990_441056746056163_9127222198621612355_n.jpg
    11816990_441056746056163_9127222198621612355_n.jpg
    94.1 KB · Visitas: 36
Hola
segun el mejor efecto lo dan las lamparas de gas,pero calientan mucho .Y ese tipo de bombillo ,es caro aca y dificil de encontrar,debido a la eliminacion de los halogenos .El efecto que busco es el adjunto,logrado con un cabezal robotico movil,pero quiero hacerlo con algo mucho mas economico.:cool:
Y bueno ., ponele un led de 100w blanco frio ., o si queres 100w rgb​
Con eso logras lo mismo o mejor​
 
Saludos,queridos amigos y colegas del foro.
Saben hay un efecto muy economico y popular.Les hablo del foquito o bombillo giratorio led,ese que trae 3 led de 1w,un micromotor como de 5 rpm y la mini cupula dicroica que gira.
Mi planteamiento seria si se podra repotenciar,para que maneje mas alcance en proyeccion a distancia.
Cambiando los 3 led de 1w a unos de 3 w o en su defecto un solo led rgb de unos 10 a 30 w.
Tambien cambiar el micromotor por uno asincrono y una tarjetica ritmica sencilla. :D
Tambien adjunto las fotos 3 y 4 unas luces vintage que popularizo American DJ en los 90,que podria fabricarse con tecnologia led .
Este modelo se llama Quadramid alli en el video puede ver el efecto.
 

Adjuntos

  • 2s6xcok.jpg
    2s6xcok.jpg
    78.5 KB · Visitas: 23
  • hqdefault.jpg
    hqdefault.jpg
    11.4 KB · Visitas: 22
  • DJ-Disco-Stage-Party-Light-4-Color-Pyramid-_57.jpg
    DJ-Disco-Stage-Party-Light-4-Color-Pyramid-_57.jpg
    91 KB · Visitas: 29
  • dj-disco-stage-party-light-4-color-pyramid-demo-video-vei-v-52-disco-light-5-dj-disco-stage-part.jpg
    dj-disco-stage-party-light-4-color-pyramid-demo-video-vei-v-52-disco-light-5-dj-disco-stage-part.jpg
    234.7 KB · Visitas: 29
Miren esta cabeza giratoria a led ,lleva 25 led 5 por cada foco.:)
 

Adjuntos

  • HTB1xh0GJVXXXXXeXFXXq6xXFXXX2.jpg
    HTB1xh0GJVXXXXXeXFXXq6xXFXXX2.jpg
    24.8 KB · Visitas: 23
  • HTB1rFtzJVXXXXXIXVXXq6xXFXXXS.jpg
    HTB1rFtzJVXXXXXIXVXXq6xXFXXXS.jpg
    138.5 KB · Visitas: 23
  • HTB1LWBUJVXXXXcoXXXXq6xXFXXX5.jpg
    HTB1LWBUJVXXXXcoXXXXq6xXFXXX5.jpg
    60.6 KB · Visitas: 23
  • 2XLot-High-Quality-2017-New-LED-font-b-UFO-b-font-Stage-Effect-font-b-Light.jpg
    2XLot-High-Quality-2017-New-LED-font-b-UFO-b-font-Stage-Effect-font-b-Light.jpg
    220.8 KB · Visitas: 25
Alguien sabe si hay acceso o existen lentes colimadores de 10, 20 y 30 grados para chip led de 30 a 100 watts?

Buen dia,ese tipo de lente colimador tipo cupula viene a 60 grados,te tocaria llevarlos a una Optica a ver si te los pueden adjustar o si no hacer como los cabezales moviles que luego del lente va una lupa que al menos pueda reducir mas el angulo.
Fijate,por ejemplo las bombillas dicroicas tipo copa mr-16 son con angulo de 60 y proyectan un buen efecto nitido al apuntar la parabolica espejada en las luces de tipo moon flower.:D
 
Saludos,queridos amigos y colegas del foro.
Saben hay un efecto muy economico y popular.Les hablo del foquito o bombillo giratorio led,ese que trae 3 led de 1w,un micromotor como de 5 rpm y la mini cupula dicroica que gira.
Mi planteamiento seria si se podra repotenciar,para que maneje mas alcance en proyeccion a distancia.
Cambiando los 3 led de 1w a unos de 3 w o en su defecto un solo led rgb de unos 10 a 30 w.
Tambien cambiar el micromotor por uno asincrono y una tarjetica ritmica sencilla. :D
Tambien adjunto las fotos 3 y 4 unas luces vintage que popularizo American DJ en los 90,que podria fabricarse con tecnologia led .
Este modelo se llama Quadramid alli en el video puede ver el efecto. https://www.youtube.com/watch?v=wBn81x766Kg

yo lo tenia ....hecho por mi y con lamparas par 36 , lo deje de usar por lo incomodo de trasladar , pero si es lindo con humo da un bonito efecto
 
Muy buen dia Amigos,tengo en la cabeza una idea rondando de hacer un efecto sencillo a led estilo Line Dancer de 2 colores;Azul y Verde o Verde y rojo.
Serian lineas de al menos 24 led que van encendidas fijas o intermitentes en un plato giratorio con un motor asincrono audioritmico.
La carcaza tengo una grande de 45 cm de larga tipo duo moon( esta lleva 2 lupas de 10cm y la cual adjunto en imagen una muy parecida.
Pero mi duda es con lo siguiente: Aca consigo estos led y no se si seran los adecuados;Características: . Color / Temperatura de color ó longitud de onda dominante de los fotones / IV(mcd) / Voltaje / Fabricación: Blanco: TC 6000-9000K / IV 14000-16000mcd / VF: 3.0 - 3.4 / Fabricados 02/06/2016 Amarillo: WL 585-595 nanómetros / IV:6000 - 9000mcd / VF: 3.0 - 3.4v / Fabricados 02/06/2016 Azul: WL 460-470 nanómetros / IV:6000 - 8000mcd / VF: 3.0 - 3.4v / Fabricados 02/06/2016 Rojo: WL 620-625 nanómetros / IV:200 - 300mcd / VF: 1.8 - 2.0v / Fabricados 12/06/2016 Verde: WL 520-525 nanómetros / IV:15000 - 18000mcd / VF: 3.0 - 3.2 / Fabricados 12/06/2016.Todos de 5Mm y 30 grados de apertura.
Tambien adjunto el efecto a lograr y un Video.:D
 

Adjuntos

  • DSC00017 (2).jpg
    DSC00017 (2).jpg
    109.1 KB · Visitas: 68
  • light-linedancer-3.jpg
    light-linedancer-3.jpg
    78.4 KB · Visitas: 52
Buenas tardes amigos, quiero dejarles esto por aquí para quien lo quiera armar, modificar o mejorar que seria lo ideal y obviamente que comparta jejeje.
Este es un receptor DMX de 4 canales PWM que podria ser RGBW, dimmer general y canal strobo para un total de 6 canales DMX tiene selector de direccion DMX por medio de pulsadores y display.
Este circuito y código es una trabajo a partir de varios códigos encontrados en la web que me permitieron llegar a este resultado por tanto en el encabezado del mismo encontraran la información de las paginas web y autores de las librerías de donde se tomaron datos para llegar al resultado el circuito esta montado sobre código de arduino y las pruebas hechas en un arduino uno R3.

Se que no hay muchos amantes de arduino pero se podría crear la placa para montarlo aparte solo seria el micro, display con pulsadores, conversor RS-485 y unos cuantos componentes discretos.

Código:
// 28/04/2017
// RECEPTOR DMX 6 CANALES 
// 1 DIMMER GENERAL, 2 ROJO, 3 VERDE, 4 AZUL, 5 BLANCO, 6 STROBO
// Implementacion de Canal Strobo
// Niht Gonzalez C.

// 30/01/2013
// Set y visualización de la dirección DMX para controlador DMX Arduino
// Leer datos de la dirección DMX y salida PWM
// Primer Canal = dimmer general (multiplicador)
// http://www.city416.ru/
 
// http://www.mathertel.de/License.aspx
// Acuerdo de licencia de software (Licencia BSD)
// Copyright (C) 2005 a 2014 de Matthias Hertel, http://www.mathertel.de/
// Todos los derechos reservados.
// La redistribución y el uso en formas de fuente y binario, con o sin modificaciones, están permitidos siempre que se cumplan las siguientes condiciones:
// • Las redistribuciones del código fuente deben conservar el aviso de copyright anterior, esta lista de condiciones y la siguiente renuncia. 
// • Las redistribuciones en formato binario deben reproducir el aviso de copyright anterior, esta lista de condiciones y la siguiente renuncia en la documentación y / u otros materiales proporcionados con la distribución. 
// • Ni el nombre de los propietarios de derechos de autor ni los nombres de sus colaboradores pueden usarse para apoyar o promocionar productos derivados de este software sin el consentimiento previo por escrito. 
// ESTE SOFTWARE SE PROPORCIONA LOS PROPIETARIOS DEL COPYRIGHT Y SUS COLABORADORES "tal cual" y EXPRESA O IMPLÍCITAS, INCLUYENDO, 
// PERO NO LIMITADO A, LAS GARANTÍAS DE COMERCIALIZACIÓN Y APTITUD PARA UN FIN DETERMINADO. IN NO CASO EL PROPIETARIO COPYRIGHT O COLABORADORES responsables de daños directos,, INCIDENTAL, O INDIRECTOS ESPECIALES, 
// EJEMPLARES DERIVADOS (INCLUYENDO, pero no limitado a, ADQUISICIÓN DE BIENES O SERVICIOS; PÉRDIDA DE USO, DATOS O GANANCIAS; O INTERRUPCIÓN COMERCIAL) CAUSADOS Y EN CUALQUIER TEORÍA DE RESPONSABILIDAD, SEA CONTRACTUAL, 
// RESPONSABILIDAD ESTRICTA O AGRAVIO (INCLUYENDO NEGLIGENCIA) DERIVADOS DE CUALQUIER FORMA DE USO DE ESTE SOFTWARE, AUNQUE advertido de la posibilidad DE TAL DAÑO.


#include <TM1637.h>                    // display TM1637 libreria 
#include <EEPROM.h>                    // EEPROM libreria
#include <DMXSerial.h>                 // DMXSerial library: http://www.mathertel.de/Arduino/DMXSerial.aspx //
#define MODEPIN  7                     // entrada para Boton Modo
#define UPPIN    8                     // entrada para Boton incrementa direccion DMX
#define DOWNPIN  12                    // entrada para Boton decrementa direccion DMX
#define SETPIN   1                     // entrada boton ok
#define KEYSPEED    100                // buttons action trheshold, 200 ms
#define KEEPDMXDISP  30                // keep DMX address on screen, sec
#define PWM1 3                         // Pines de Salidas para el PWM
#define PWM2 5
#define PWM3 6
#define PWM4 9

TM1637 tm1637(2,4);                    // CLK & DIO salidas para Display TM1637

int           strobo=0;                // Strober
boolean       setaddr=false,           // DMX process/set address flag
              btn_up=true,             // button flags
              btn_down=true,
              btn_set=true,
              btn_mode=true;
unsigned long last_btn;                // buttons press timestamps
unsigned long last_disp=millis();      // last screen update timestamp**
byte          ticks,                   // movement buttons handled actions
              deltadmx;                // movement step
int           dmxaddr=1,               // DMX address
              mult=0;                  // all channels light multiplicator
uint8_t       dmxh,dmxl;               // EEPROM DMX record
int8_t        brightness=2;            // screen brightness level

void dmxdisp(){                      
  int tmp;                             // temp
  int8_t digit[3];                     // address output
  tmp=dmxaddr-(dmxaddr%100);
  digit[0]=tmp/100;
  tmp=dmxaddr-(dmxaddr%10)-(digit[0]*100);
  digit[1]=tmp/10;
  digit[2]=dmxaddr-(digit[0]*100)-(digit[1]*10);
  if(setaddr){
    tm1637.display(0,0x0A);            // setup address
    tm1637.display(1,digit[0]);
    tm1637.display(2,digit[1]);
    tm1637.display(3,digit[2]);
  }else{
    tm1637.display(0,0x0d);
    tm1637.display(1,digit[0]);        // display address
    tm1637.display(2,digit[1]);
    tm1637.display(3,digit[2]);
  }
}

void processmovestep(){
  ticks++;
  if(ticks>10) deltadmx=10;            // increase step
  if(ticks>20) deltadmx=50;
  if(ticks>30){                        // reset step
    deltadmx=1;
    ticks=0;
  }
  dmxdisp();
}

void setup(){
  
  pinMode(PWM1,OUTPUT);                // Iniciar pines de salida
  pinMode(PWM2,OUTPUT);
  pinMode(PWM3,OUTPUT);
  pinMode(PWM4,OUTPUT);
  pinMode(SETPIN,INPUT_PULLUP);        // init input key pins
  pinMode(MODEPIN,INPUT_PULLUP);
  pinMode(UPPIN,INPUT_PULLUP);
  pinMode(DOWNPIN,INPUT_PULLUP);
  tm1637.init();                       // LDM init
  tm1637.set(brightness);
  DMXSerial.init(DMXReceiver);
  dmxh=EEPROM.read(0x00);              // restore DMX
  dmxl=EEPROM.read(0x01);
  if(dmxh!=0xFF) dmxaddr=(dmxh*256)+dmxl;
  dmxdisp();
}

void loop(){
  if(setaddr){
    if(btn_up && btn_down && btn_set && btn_mode){  // read movement keys from idle mode
      btn_up=digitalRead(UPPIN);
      btn_down=digitalRead(DOWNPIN);
      btn_set=digitalRead(SETPIN);
      btn_mode=digitalRead(MODEPIN);
      last_btn=millis();
      ticks=0;
      deltadmx=1;
      if(!btn_up && !btn_down) btn_down=true;
    }
    if(!btn_mode){                                // back to DMX process mode
      btn_mode=true;                              // change mode
      setaddr=false;
      dmxh=EEPROM.read(0x00);                     // restore DMX
      dmxl=EEPROM.read(0x01);
      if(dmxh!=0xFF) dmxaddr=(dmxh*256)+dmxl;
      tm1637.init();                              // reset screen
      delay(500);
      dmxdisp();
     }
    if(!btn_set){                                 // store DMX
      if(dmxaddr>255){
        if(EEPROM.read(0x00)!=0x01) EEPROM.write(0x00,0x01);
        dmxl=dmxaddr-256;
      }else{
        if(EEPROM.read(0x00)!=0x00) EEPROM.write(0x00,0x00);
        dmxl=dmxaddr;
      }
      if(EEPROM.read(0x01)!=dmxl) EEPROM.write(0x01,dmxl);
      btn_set=true;                               // change mode
      setaddr=false;
      tm1637.init();                              // reset screen
      delay(500);
      dmxdisp();
      }
    if(!btn_up) btn_up=digitalRead(UPPIN);        // read movement keys from moving mode
    if(!btn_down) btn_down=digitalRead(DOWNPIN);
    if(!btn_up && millis()-last_btn>=KEYSPEED){   // move DMX up
      last_btn=millis();
      dmxaddr+=deltadmx;
      if(dmxaddr>512) dmxaddr=1;
      processmovestep();
    }
    if(!btn_down && millis()-last_btn>=KEYSPEED){ // move DMX down
      last_btn=millis();
      dmxaddr-=deltadmx;
      if(dmxaddr<1) dmxaddr=512;
      processmovestep();
    } 
  }
  else{
    if(digitalRead(MODEPIN)==0){                 // enter set address mode
      setaddr=true;                              // change mode
      tm1637.init();                             // reset screen
      delay(500);
      dmxdisp();
    }
    mult = DMXSerial.read(dmxaddr);                            // Letura de canales DMX
    analogWrite(PWM1,(DMXSerial.read(dmxaddr+1)*mult/256));    // Canal Rojo 2
    analogWrite(PWM2,(DMXSerial.read(dmxaddr+2)*mult/256));    // Canal Verdde 3
    analogWrite(PWM3,(DMXSerial.read(dmxaddr+3)*mult/256));    // Canal Azul 4
    analogWrite(PWM4,(DMXSerial.read(dmxaddr+4)*mult/256));    // Canal Blanco 5

    strobo = (DMXSerial.read(dmxaddr+5));                      // Canal Strobo 6
 int stroboporcent = map(strobo, 0, 255, 400, 10);             

 if ( strobo > 1 )                                          //Activa strobo si canal 6 es mayor a 1
  {
    analogWrite(PWM1,(DMXSerial.read(dmxaddr+1)*mult/256));
    analogWrite(PWM2,(DMXSerial.read(dmxaddr+2)*mult/256));
    analogWrite(PWM3,(DMXSerial.read(dmxaddr+3)*mult/256));
    analogWrite(PWM4,(DMXSerial.read(dmxaddr+4)*mult/256));   
    delay (stroboporcent);
    
    analogWrite(PWM1, 0);
    analogWrite(PWM2, 0);
    analogWrite(PWM3, 0);
    analogWrite(PWM4, 0);
    delay(stroboporcent);
  }
 }  // final final
}

Este es un vídeo del funcionamiento el receptor esta conectado a una interfaz usb dmx.
primero pruebo las salidas PWM luego el canal de strobo y el dimmer general.


Espero les guste y pueda servirles en la construcción de unos Par Led por ejemplo o adaptarlo para otros dispositivos y como decía si alguien lo mejora o modifica pues que comparta jejeje. buena tarde a todos
 
Última edición:
Gracias Niht, esta perfecto para unos washer led DIY que estoy elaborando. :aplauso::aplauso: como aporte voy agregarle un canal para que haga un efecto fade automatico de la gamma de colores...!!!
 
Aqui esta mi aporte, agregue al receptor de Niht un canal para efectos especiales... en el caso mio no utilizo el canal de blanco, por eso es de 6 canales de esta forma; canal 1 dimmer, canal 2 Red, canal 3 Green, canal 4 Blue, canal 5 strobo y canal 6 efectos o shows.

hay configurados 6 shows en el canal 6 así:

0 - 42 Show 1 fade Automatico veocidad 1 ;
43 - 85 Show 2 fade Automatico velocidad 2 ;
86 - 127 Show 3 fade Automatico velocidad 3 ;
128 - 170 Show 4 Secuencial paso a paso velocidad 1 ;
171 - 212 Show 5 Secuencial paso a paso velocidad 2 ;
213 - 255 Show 6 Audioritmico RGB ;

Al puerto A0 del arduino se le conecta un sensor de sonido como el de la imagen adjunta, al pin A0 del mismo.

aqui el codigo:

Código:
// 12/05/2017
// RECEPTOR DMX 6 CANALES
// 1 DIMMER GENERAL, 2 ROJO, 3 VERDE, 4 AZUL, 5 STROBO, 6 EFECTOS
// Implementacion de Canal efectos especiales
// Djsound


// 28/04/2017
// RECEPTOR DMX 6 CANALES 
// 1 DIMMER GENERAL, 2 ROJO, 3 VERDE, 4 AZUL, 5 BLANCO, 6 STROBO
// Implementacion de Canal Strobo
// Niht Gonzalez C.


// 30/01/2013
// Set y visualización de la dirección DMX para controlador DMX Arduino
// Leer datos de la dirección DMX y salida PWM
// Primer Canal = dimmer general (multiplicador)
// http://www.city416.ru/
 
// http://www.mathertel.de/License.aspx
// Acuerdo de licencia de software (Licencia BSD)
// Copyright (C) 2005 a 2014 de Matthias Hertel, http://www.mathertel.de/
// Todos los derechos reservados.
// La redistribución y el uso en formas de fuente y binario, con o sin modificaciones, están permitidos siempre que se cumplan las siguientes condiciones:
// • Las redistribuciones del código fuente deben conservar el aviso de copyright anterior, esta lista de condiciones y la siguiente renuncia. 
// • Las redistribuciones en formato binario deben reproducir el aviso de copyright anterior, esta lista de condiciones y la siguiente renuncia en la documentación y / u otros materiales proporcionados con la distribución. 
// • Ni el nombre de los propietarios de derechos de autor ni los nombres de sus colaboradores pueden usarse para apoyar o promocionar productos derivados de este software sin el consentimiento previo por escrito. 
// ESTE SOFTWARE SE PROPORCIONA LOS PROPIETARIOS DEL COPYRIGHT Y SUS COLABORADORES "tal cual" y EXPRESA O IMPLÍCITAS, INCLUYENDO, 
// PERO NO LIMITADO A, LAS GARANTÍAS DE COMERCIALIZACIÓN Y APTITUD PARA UN FIN DETERMINADO. IN NO CASO EL PROPIETARIO COPYRIGHT O COLABORADORES responsables de daños directos,, INCIDENTAL, O INDIRECTOS ESPECIALES, 
// EJEMPLARES DERIVADOS (INCLUYENDO, pero no limitado a, ADQUISICIÓN DE BIENES O SERVICIOS; PÉRDIDA DE USO, DATOS O GANANCIAS; O INTERRUPCIÓN COMERCIAL) CAUSADOS Y EN CUALQUIER TEORÍA DE RESPONSABILIDAD, SEA CONTRACTUAL, 
// RESPONSABILIDAD ESTRICTA O AGRAVIO (INCLUYENDO NEGLIGENCIA) DERIVADOS DE CUALQUIER FORMA DE USO DE ESTE SOFTWARE, AUNQUE advertido de la posibilidad DE TAL DAÑO.


#include <TM1637.h>                    // display TM1637 libreria 
#include <EEPROM.h>                    // EEPROM libreria
#include <DMXSerial.h>                 // DMXSerial library: http://www.mathertel.de/Arduino/DMXSerial.aspx //
#define MODEPIN  7                     // entrada para Boton Modo
#define UPPIN    8                     // entrada para Boton incrementa direccion DMX
#define DOWNPIN  12                    // entrada para Boton decrementa direccion DMX
#define SETPIN   1                     // entrada boton ok
#define KEYSPEED    100                // buttons action trheshold, 200 ms
#define KEEPDMXDISP  30                // keep DMX address on screen, sec
#define PWM1 3    //red                     // Pines de Salidas para el PWM
#define PWM2 5    //green
#define PWM3 6    //blue
#define PWM4 9
#define delayTime1 5
#define delayTime2 2
#define delayTime3 1



TM1637 tm1637(2,4);                     // CLK & DIO salidas para Display TM1637

int           strobo=0;                 // Strober
int           fx=0;                     // efectos 

  
int threshold =532;                    //sensibilidad  de audio


boolean       setaddr=false,           // DMX process/set address flag
              btn_up=true,             // button flags
              btn_down=true,
              btn_set=true,
              btn_mode=true;
unsigned long last_btn;                // buttons press timestamps
unsigned long last_disp=millis();      // last screen update timestamp**
byte          ticks,                   // movement buttons handled actions
              deltadmx;                // movement step
int           dmxaddr=1,               // DMX address
              mult=0;                  // all channels light multiplicator
uint8_t       dmxh,dmxl;               // EEPROM DMX record
int8_t        brightness=4;            // screen brightness level

void dmxdisp(){                      
  int tmp;                             // temp
  int8_t digit[3];                     // address output
  tmp=dmxaddr-(dmxaddr%100);
  digit[0]=tmp/100;
  tmp=dmxaddr-(dmxaddr%10)-(digit[0]*100);
  digit[1]=tmp/10;
  digit[2]=dmxaddr-(digit[0]*100)-(digit[1]*10);
  if(setaddr){
    tm1637.display(0,0x0A);            // setup address
    tm1637.display(1,digit[0]);
    tm1637.display(2,digit[1]);
    tm1637.display(3,digit[2]);
  }else{
    tm1637.display(0,0x0d);
    tm1637.display(1,digit[0]);        // display address
    tm1637.display(2,digit[1]);
    tm1637.display(3,digit[2]);
  }
}

void processmovestep(){
  ticks++;
  if(ticks>10) deltadmx=10;            // increase step
  if(ticks>20) deltadmx=50;
  if(ticks>30){                        // reset step
    deltadmx=1;
    ticks=0;
  }
  dmxdisp();
}

void setup(){
 
  pinMode(PWM1,OUTPUT);          //red      // Iniciar pines de salida
  pinMode(PWM2,OUTPUT);         //green
  pinMode(PWM3,OUTPUT);         //blue
  pinMode(PWM4,OUTPUT);
  pinMode(SETPIN,INPUT_PULLUP);        // init input key pins
  pinMode(MODEPIN,INPUT_PULLUP);
  pinMode(UPPIN,INPUT_PULLUP);
  pinMode(DOWNPIN,INPUT_PULLUP);
  tm1637.init();                       // LDM init
  tm1637.set(brightness);
  DMXSerial.init(DMXReceiver);
  dmxh=EEPROM.read(0x00);              // restore DMX
  dmxl=EEPROM.read(0x01);
  if(dmxh!=0xFF) dmxaddr=(dmxh*256)+dmxl;
  dmxdisp();
}

int redVal;   // rojo
int blueVal;  // azul
int greenVal; // verde


void loop(){
  if(setaddr){
    if(btn_up && btn_down && btn_set && btn_mode){  // read movement keys from idle mode
      btn_up=digitalRead(UPPIN);
      btn_down=digitalRead(DOWNPIN);
      btn_set=digitalRead(SETPIN);
      btn_mode=digitalRead(MODEPIN);
      last_btn=millis();
      ticks=0;
      deltadmx=1;
      if(!btn_up && !btn_down) btn_down=true;
    }
    if(!btn_mode){                                // back to DMX process mode
      btn_mode=true;                              // change mode
      setaddr=false;
      dmxh=EEPROM.read(0x00);                     // restore DMX
      dmxl=EEPROM.read(0x01);
      if(dmxh!=0xFF) dmxaddr=(dmxh*256)+dmxl;
      tm1637.init();                              // reset screen
      delay(500);
      dmxdisp();
     }
    if(!btn_set){                                 // store DMX
      if(dmxaddr>255){
        if(EEPROM.read(0x00)!=0x01) EEPROM.write(0x00,0x01);
        dmxl=dmxaddr-256;
      }else{
        if(EEPROM.read(0x00)!=0x00) EEPROM.write(0x00,0x00);
        dmxl=dmxaddr;
      }
      if(EEPROM.read(0x01)!=dmxl) EEPROM.write(0x01,dmxl);
      btn_set=true;                               // change mode
      setaddr=false;
      tm1637.init();                              // reset screen
      delay(500);
      dmxdisp();
      }
    if(!btn_up) btn_up=digitalRead(UPPIN);        // read movement keys from moving mode
    if(!btn_down) btn_down=digitalRead(DOWNPIN);
    if(!btn_up && millis()-last_btn>=KEYSPEED){   // move DMX up
      last_btn=millis();
      dmxaddr+=deltadmx;
      if(dmxaddr>512) dmxaddr=1;
      processmovestep();
    }
    if(!btn_down && millis()-last_btn>=KEYSPEED){ // move DMX down
      last_btn=millis();
      dmxaddr-=deltadmx;
      if(dmxaddr<1) dmxaddr=512;
      processmovestep();
    } 
  }
  else{
    if(digitalRead(MODEPIN)==0){                 // enter set address mode
      setaddr=true;                              // change mode
      tm1637.init();                             // reset screen
      delay(500);
      dmxdisp();
    }
    mult = DMXSerial.read(dmxaddr);                            // Letura de canales DMX
    analogWrite(PWM1,(DMXSerial.read(dmxaddr+1)*mult/256));    // Canal Rojo 2
    analogWrite(PWM2,(DMXSerial.read(dmxaddr+2)*mult/256));    // Canal Verdde 3
    analogWrite(PWM3,(DMXSerial.read(dmxaddr+3)*mult/256));    // Canal Azul 4
   // analogWrite(PWM4,(DMXSerial.read(dmxaddr+4)*mult/256));    // Canal Blanco 5

    strobo = (DMXSerial.read(dmxaddr+4));  // Canal Strobo 6

    
 int stroboporcent = map(strobo, 0, 255, 400, 10);             

 if ( strobo > 1 ) {
    analogWrite(PWM1,(DMXSerial.read(dmxaddr+1)*mult/256));
    analogWrite(PWM2,(DMXSerial.read(dmxaddr+2)*mult/256));
    analogWrite(PWM3,(DMXSerial.read(dmxaddr+3)*mult/256));

    delay (stroboporcent);
    
    analogWrite(PWM1, 0);
    analogWrite(PWM2, 0);
    analogWrite(PWM3, 0);

    delay(stroboporcent);
  }


fx = (DMXSerial.read(dmxaddr+5));


int show = map(fx, -42, 256,0,7); // SELECCION  6 SHOWS 

if ( show == 1 ){        // SHOW1 FADE VEL1
 
 int redVal = 255;
 int blueVal = 0;
 int greenVal = 0;

   for( int i = 0 ; i < 255 ; i += 1 ){
    greenVal += 1;
    redVal -= 1;
    
    analogWrite( PWM2, 255 - greenVal );
    analogWrite( PWM1, 255 - redVal );

    delay( delayTime1 );
  }

  redVal = 0;
  blueVal = 0;
  greenVal = 255;
 
  for( int i = 0 ; i < 255 ; i += 1 ){
    blueVal += 1;
    greenVal -= 1;
    
    analogWrite( PWM3, 255 - blueVal );
    analogWrite( PWM2, 255 - greenVal );

    delay( delayTime1 );
  }
 
  redVal = 0;
  blueVal = 255;
  greenVal = 0;
 
  for( int i = 0 ; i < 255 ; i += 1 ){
    redVal += 1;
    blueVal -= 1;
 
    analogWrite( PWM1, 255 - redVal );
    analogWrite( PWM3, 255 - blueVal );

    delay( delayTime1 );
  }

 }
if ( show == 2 ){ // SHOW FADE VEL2
 
 int redVal = 255;
 int blueVal = 0;
 int greenVal = 0;

   for( int i = 0 ; i < 255 ; i += 1 ){
    greenVal += 1;
    redVal -= 1;
    
    analogWrite( PWM2, 255 - greenVal );
    analogWrite( PWM1, 255 - redVal );

    delay( delayTime2 );
  }

  redVal = 0;
  blueVal = 0;
  greenVal = 255;
 
  for( int i = 0 ; i < 255 ; i += 1 ){
    blueVal += 1;
    greenVal -= 1;
    
    analogWrite( PWM3, 255 - blueVal );
    analogWrite( PWM2, 255 - greenVal );

    delay( delayTime2 );
  }
 
  redVal = 0;
  blueVal = 255;
  greenVal = 0;
 
  for( int i = 0 ; i < 255 ; i += 1 ){
    redVal += 1;
    blueVal -= 1;
 
    analogWrite( PWM1, 255 - redVal );
    analogWrite( PWM3, 255 - blueVal );

    delay( delayTime2 );
  }

 }

if ( show == 3 ){ // SHOW FADE VEL3
 
 int redVal = 255;
 int blueVal = 0;
 int greenVal = 0;

   for( int i = 0 ; i < 255 ; i += 1 ){
    greenVal += 1;
    redVal -= 1;
    
    analogWrite( PWM2, 255 - greenVal );
    analogWrite( PWM1, 255 - redVal );

    delay( delayTime3 );
  }

  redVal = 0;
  blueVal = 0;
  greenVal = 255;
 
  for( int i = 0 ; i < 255 ; i += 1 ){
    blueVal += 1;
    greenVal -= 1;
    
    analogWrite( PWM3, 255 - blueVal );
    analogWrite( PWM2, 255 - greenVal );

    delay( delayTime3 );
  }
 
  redVal = 0;
  blueVal = 255;
  greenVal = 0;
 
  for( int i = 0 ; i < 255 ; i += 1 ){
    redVal += 1;
    blueVal -= 1;
 
    analogWrite( PWM1, 255 - redVal );
    analogWrite( PWM3, 255 - blueVal );

    delay( delayTime3 );
  }
 }
if ( show == 4 ){ // SHOW secuencia 1
 
    analogWrite(PWM1, 255);
    analogWrite(PWM2, 0);
    analogWrite(PWM3, 0);
    
    delay(500);
   
    analogWrite(PWM1, 0);
    analogWrite(PWM2, 255);
    analogWrite(PWM3, 0);
    
    delay(500);

    analogWrite(PWM1, 0);
    analogWrite(PWM2, 0);
    analogWrite(PWM3, 255);
    
    delay(500);
 }
 
 if ( show == 5 ){ // SHOW secuencial 2
 
    analogWrite(PWM1, 255);
    analogWrite(PWM2, 0);
    analogWrite(PWM3, 0);
    
    delay(150);
   
    analogWrite(PWM1, 0);
    analogWrite(PWM2, 255);
    analogWrite(PWM3, 0);
    
    delay(150);

    analogWrite(PWM1, 0);
    analogWrite(PWM2, 0);
    analogWrite(PWM3, 255);
    
    delay(150);
 }

if ( show == 6 ){ // SHOW AUDIO RITMICO
 
  int sensorValue = analogRead(A0); //A0 es la entrada a la que se conecta el módulo
  if(sensorValue<=threshold){
   digitalWrite(PWM1, HIGH);
   digitalWrite(PWM2, HIGH);
   digitalWrite(PWM3, HIGH); //
   delay(50);
   digitalWrite(PWM1, LOW);
   digitalWrite(PWM2, LOW);
   digitalWrite(PWM3, LOW);}


 }

 
 }  // final final
}
 

Adjuntos

  • hh.jpg
    hh.jpg
    23.3 KB · Visitas: 13
Última edición:
:) Un ultimo aporte.... el diseño en PCB Wizzard del receptor, esta divido en 2 placas para facilidad de montaje en el aparato, tablero con el Display, botones Micrófono y Potenciometro de sensibilidad de audio y la tarjeta con el Atmega y max485, de igual forma adjunto el codigo corregido, con la configuración de pines para este PCB. ha se me olvidaba, reemplace el sensor de audio, por un micrófono de electret. Espero este bien y quedo atento a sus comentarios. :angel:

Código:
// 12/05/2017
// RECEPTOR DMX 6 CANALES
// 1 DIMMER GENERAL, 2 ROJO, 3 VERDE, 4 AZUL, 5 STROBO, 6 EFECTOS
// Implementacion de Canal efectos especiales
// Djsound


// 28/04/2017
// RECEPTOR DMX 6 CANALES 
// 1 DIMMER GENERAL, 2 ROJO, 3 VERDE, 4 AZUL, 5 BLANCO, 6 STROBO
// Implementacion de Canal Strobo
// Niht Gonzalez C.


// 30/01/2013
// Set y visualización de la dirección DMX para controlador DMX Arduino
// Leer datos de la dirección DMX y salida PWM
// Primer Canal = dimmer general (multiplicador)
// http://www.city416.ru/
 
// http://www.mathertel.de/License.aspx
// Acuerdo de licencia de software (Licencia BSD)
// Copyright (C) 2005 a 2014 de Matthias Hertel, http://www.mathertel.de/
// Todos los derechos reservados.
// La redistribución y el uso en formas de fuente y binario, con o sin modificaciones, están permitidos siempre que se cumplan las siguientes condiciones:
// • Las redistribuciones del código fuente deben conservar el aviso de copyright anterior, esta lista de condiciones y la siguiente renuncia. 
// • Las redistribuciones en formato binario deben reproducir el aviso de copyright anterior, esta lista de condiciones y la siguiente renuncia en la documentación y / u otros materiales proporcionados con la distribución. 
// • Ni el nombre de los propietarios de derechos de autor ni los nombres de sus colaboradores pueden usarse para apoyar o promocionar productos derivados de este software sin el consentimiento previo por escrito. 
// ESTE SOFTWARE SE PROPORCIONA LOS PROPIETARIOS DEL COPYRIGHT Y SUS COLABORADORES "tal cual" y EXPRESA O IMPLÍCITAS, INCLUYENDO, 
// PERO NO LIMITADO A, LAS GARANTÍAS DE COMERCIALIZACIÓN Y APTITUD PARA UN FIN DETERMINADO. IN NO CASO EL PROPIETARIO COPYRIGHT O COLABORADORES responsables de daños directos,, INCIDENTAL, O INDIRECTOS ESPECIALES, 
// EJEMPLARES DERIVADOS (INCLUYENDO, pero no limitado a, ADQUISICIÓN DE BIENES O SERVICIOS; PÉRDIDA DE USO, DATOS O GANANCIAS; O INTERRUPCIÓN COMERCIAL) CAUSADOS Y EN CUALQUIER TEORÍA DE RESPONSABILIDAD, SEA CONTRACTUAL, 
// RESPONSABILIDAD ESTRICTA O AGRAVIO (INCLUYENDO NEGLIGENCIA) DERIVADOS DE CUALQUIER FORMA DE USO DE ESTE SOFTWARE, AUNQUE advertido de la posibilidad DE TAL DAÑO.


#include <TM1637.h>                    // display TM1637 libreria 
#include <EEPROM.h>                    // EEPROM libreria
#include <DMXSerial.h>                 // DMXSerial library: http://www.mathertel.de/Arduino/DMXSerial.aspx //
#define MODEPIN  1                     // entrada para Boton Modo
#define UPPIN    2                     // entrada para Boton incrementa direccion DMX
#define DOWNPIN  3                    // entrada para Boton decrementa direccion DMX
#define SETPIN   4                     // entrada boton ok
#define KEYSPEED    100                // buttons action trheshold, 200 ms
#define KEEPDMXDISP  30                // keep DMX address on screen, sec
#define PWM1 11    //red                     // Pines de Salidas para el PWM
#define PWM2 10    //green
#define PWM3 9   //blue

#define delayTime1 5
#define delayTime2 2
#define delayTime3 1



TM1637 tm1637(6,7);                     // CLK & DIO salidas para Display TM1637

int           strobo=0;                 // Strober
int           fx=0;                     // efectos 
int           audio=0;                     // efectos 
  


boolean       setaddr=false,           // DMX process/set address flag
              btn_up=true,             // button flags
              btn_down=true,
              btn_set=true,
              btn_mode=true;
unsigned long last_btn;                // buttons press timestamps
unsigned long last_disp=millis();      // last screen update timestamp**
byte          ticks,                   // movement buttons handled actions
              deltadmx;                // movement step
int           dmxaddr=1,               // DMX address
              mult=0;                  // all channels light multiplicator
uint8_t       dmxh,dmxl;               // EEPROM DMX record
int8_t        brightness=4;            // screen brightness level

void dmxdisp(){                      
  int tmp;                             // temp
  int8_t digit[3];                     // address output
  tmp=dmxaddr-(dmxaddr%100);
  digit[0]=tmp/100;
  tmp=dmxaddr-(dmxaddr%10)-(digit[0]*100);
  digit[1]=tmp/10;
  digit[2]=dmxaddr-(digit[0]*100)-(digit[1]*10);
  if(setaddr){
    tm1637.display(0,0x0A);            // setup address
    tm1637.display(1,digit[0]);
    tm1637.display(2,digit[1]);
    tm1637.display(3,digit[2]);
  }else{
    tm1637.display(0,0x0d);
    tm1637.display(1,digit[0]);        // display address
    tm1637.display(2,digit[1]);
    tm1637.display(3,digit[2]);
  }
}

void processmovestep(){
  ticks++;
  if(ticks>10) deltadmx=10;            // increase step
  if(ticks>20) deltadmx=50;
  if(ticks>30){                        // reset step
    deltadmx=1;
    ticks=0;
  }
  dmxdisp();
}

void setup(){
 
  pinMode(PWM1,OUTPUT);          //red      // Iniciar pines de salida
  pinMode(PWM2,OUTPUT);         //green
  pinMode(PWM3,OUTPUT);         //blue

  pinMode(SETPIN,INPUT_PULLUP);        // init input key pins
  pinMode(MODEPIN,INPUT_PULLUP);
  pinMode(UPPIN,INPUT_PULLUP);
  pinMode(DOWNPIN,INPUT_PULLUP);
  tm1637.init();                       // LDM init
  tm1637.set(brightness);
  DMXSerial.init(DMXReceiver);
  dmxh=EEPROM.read(0x00);              // restore DMX
  dmxl=EEPROM.read(0x01);
  if(dmxh!=0xFF) dmxaddr=(dmxh*256)+dmxl;
  dmxdisp();
}

int redVal;   // rojo
int blueVal;  // azul
int greenVal; // verde


void loop(){
  if(setaddr){
    if(btn_up && btn_down && btn_set && btn_mode){  // read movement keys from idle mode
      btn_up=digitalRead(UPPIN);
      btn_down=digitalRead(DOWNPIN);
      btn_set=digitalRead(SETPIN);
      btn_mode=digitalRead(MODEPIN);
      last_btn=millis();
      ticks=0;
      deltadmx=1;
      if(!btn_up && !btn_down) btn_down=true;
    }
    if(!btn_mode){                                // back to DMX process mode
      btn_mode=true;                              // change mode
      setaddr=false;
      dmxh=EEPROM.read(0x00);                     // restore DMX
      dmxl=EEPROM.read(0x01);
      if(dmxh!=0xFF) dmxaddr=(dmxh*256)+dmxl;
      tm1637.init();                              // reset screen
      delay(500);
      dmxdisp();
     }
    if(!btn_set){                                 // store DMX
      if(dmxaddr>255){
        if(EEPROM.read(0x00)!=0x01) EEPROM.write(0x00,0x01);
        dmxl=dmxaddr-256;
      }else{
        if(EEPROM.read(0x00)!=0x00) EEPROM.write(0x00,0x00);
        dmxl=dmxaddr;
      }
      if(EEPROM.read(0x01)!=dmxl) EEPROM.write(0x01,dmxl);
      btn_set=true;                               // change mode
      setaddr=false;
      tm1637.init();                              // reset screen
      delay(500);
      dmxdisp();
      }
    if(!btn_up) btn_up=digitalRead(UPPIN);        // read movement keys from moving mode
    if(!btn_down) btn_down=digitalRead(DOWNPIN);
    if(!btn_up && millis()-last_btn>=KEYSPEED){   // move DMX up
      last_btn=millis();
      dmxaddr+=deltadmx;
      if(dmxaddr>512) dmxaddr=1;
      processmovestep();
    }
    if(!btn_down && millis()-last_btn>=KEYSPEED){ // move DMX down
      last_btn=millis();
      dmxaddr-=deltadmx;
      if(dmxaddr<1) dmxaddr=512;
      processmovestep();
    } 
  }
  else{
    if(digitalRead(MODEPIN)==0){                 // enter set address mode
      setaddr=true;                              // change mode
      tm1637.init();                             // reset screen
      delay(500);
      dmxdisp();
    }
    mult = DMXSerial.read(dmxaddr);                            // Letura de canales DMX
    analogWrite(PWM1,(DMXSerial.read(dmxaddr+1)*mult/256));    // Canal Rojo 2
    analogWrite(PWM2,(DMXSerial.read(dmxaddr+2)*mult/256));    // Canal Verdde 3
    analogWrite(PWM3,(DMXSerial.read(dmxaddr+3)*mult/256));    // Canal Azul 4
   // analogWrite(PWM4,(DMXSerial.read(dmxaddr+4)*mult/256));    // Canal Blanco 5

    strobo = (DMXSerial.read(dmxaddr+4));  // Canal Strobo 6

    
 int stroboporcent = map(strobo, 0, 255, 400, 10);             

 if ( strobo > 1 ) {
    analogWrite(PWM1,(DMXSerial.read(dmxaddr+1)*mult/256));
    analogWrite(PWM2,(DMXSerial.read(dmxaddr+2)*mult/256));
    analogWrite(PWM3,(DMXSerial.read(dmxaddr+3)*mult/256));

    delay (stroboporcent);
    
    analogWrite(PWM1, 0);
    analogWrite(PWM2, 0);
    analogWrite(PWM3, 0);

    delay(stroboporcent);
  }


fx = (DMXSerial.read(dmxaddr+5));


int show = map(fx, -42, 256,0,7); // SELECCION  6 SHOWS 

if ( show == 1 ){        // SHOW1 FADE VEL1
 
 int redVal = 255;
 int blueVal = 0;
 int greenVal = 0;

   for( int i = 0 ; i < 255 ; i += 1 ){
    greenVal += 1;
    redVal -= 1;
    
    analogWrite( PWM2, 255 - greenVal );
    analogWrite( PWM1, 255 - redVal );

    delay( delayTime1 );
  }

  redVal = 0;
  blueVal = 0;
  greenVal = 255;
 
  for( int i = 0 ; i < 255 ; i += 1 ){
    blueVal += 1;
    greenVal -= 1;
    
    analogWrite( PWM3, 255 - blueVal );
    analogWrite( PWM2, 255 - greenVal );

    delay( delayTime1 );
  }
 
  redVal = 0;
  blueVal = 255;
  greenVal = 0;
 
  for( int i = 0 ; i < 255 ; i += 1 ){
    redVal += 1;
    blueVal -= 1;
 
    analogWrite( PWM1, 255 - redVal );
    analogWrite( PWM3, 255 - blueVal );

    delay( delayTime1 );
  }

 }
if ( show == 2 ){ // SHOW FADE VEL2
 
 int redVal = 255;
 int blueVal = 0;
 int greenVal = 0;

   for( int i = 0 ; i < 255 ; i += 1 ){
    greenVal += 1;
    redVal -= 1;
    
    analogWrite( PWM2, 255 - greenVal );
    analogWrite( PWM1, 255 - redVal );

    delay( delayTime2 );
  }

  redVal = 0;
  blueVal = 0;
  greenVal = 255;
 
  for( int i = 0 ; i < 255 ; i += 1 ){
    blueVal += 1;
    greenVal -= 1;
    
    analogWrite( PWM3, 255 - blueVal );
    analogWrite( PWM2, 255 - greenVal );

    delay( delayTime2 );
  }
 
  redVal = 0;
  blueVal = 255;
  greenVal = 0;
 
  for( int i = 0 ; i < 255 ; i += 1 ){
    redVal += 1;
    blueVal -= 1;
 
    analogWrite( PWM1, 255 - redVal );
    analogWrite( PWM3, 255 - blueVal );

    delay( delayTime2 );
  }

 }

if ( show == 3 ){ // SHOW FADE VEL3
 
 int redVal = 255;
 int blueVal = 0;
 int greenVal = 0;

   for( int i = 0 ; i < 255 ; i += 1 ){
    greenVal += 1;
    redVal -= 1;
    
    analogWrite( PWM2, 255 - greenVal );
    analogWrite( PWM1, 255 - redVal );

    delay( delayTime3 );
  }

  redVal = 0;
  blueVal = 0;
  greenVal = 255;
 
  for( int i = 0 ; i < 255 ; i += 1 ){
    blueVal += 1;
    greenVal -= 1;
    
    analogWrite( PWM3, 255 - blueVal );
    analogWrite( PWM2, 255 - greenVal );

    delay( delayTime3 );
  }
 
  redVal = 0;
  blueVal = 255;
  greenVal = 0;
 
  for( int i = 0 ; i < 255 ; i += 1 ){
    redVal += 1;
    blueVal -= 1;
 
    analogWrite( PWM1, 255 - redVal );
    analogWrite( PWM3, 255 - blueVal );

    delay( delayTime3 );
  }
 }
if ( show == 4 ){ // SHOW secuencia 1
 
    analogWrite(PWM1, 255);
    analogWrite(PWM2, 0);
    analogWrite(PWM3, 0);
    
    delay(500);
   
    analogWrite(PWM1, 0);
    analogWrite(PWM2, 255);
    analogWrite(PWM3, 0);
    
    delay(500);

    analogWrite(PWM1, 0);
    analogWrite(PWM2, 0);
    analogWrite(PWM3, 255);
    
    delay(500);
 }
 
 if ( show == 5 ){ // SHOW secuencial 2
 
    analogWrite(PWM1, 255);
    analogWrite(PWM2, 0);
    analogWrite(PWM3, 0);
    
    delay(150);
   
    analogWrite(PWM1, 0);
    analogWrite(PWM2, 255);
    analogWrite(PWM3, 0);
    
    delay(150);

    analogWrite(PWM1, 0);
    analogWrite(PWM2, 0);
    analogWrite(PWM3, 255);
    
    delay(150);
 }

if ( show == 6 ){ // SHOW AUDIO RITMICO

int sensi =532;                    //sensibilidad  de audio

 
  int sensorValue = analogRead(A4); //A4 es la entrada a la que se conecta el módulo
  if(sensorValue<=sensi){
   digitalWrite(PWM1, HIGH);
   digitalWrite(PWM2, HIGH);
   digitalWrite(PWM3, HIGH); //
   delay(50);
   digitalWrite(PWM1, LOW);
   digitalWrite(PWM2, LOW);
   digitalWrite(PWM3, LOW);}


 }

 
 }  // final final
}
 

Adjuntos

  • PCB1.png
    PCB1.png
    96.4 KB · Visitas: 109
  • PCB2.png
    PCB2.png
    26.1 KB · Visitas: 74
  • DMXRECEPTOR_final.rar
    31 KB · Visitas: 78
Última edición:
Estimados, saludos y consulta.

Donde puedo comprar lentes en China, que sean auto regulables, que estoy en un proyecto para fabricar un proyector de logos publicitarios y me falta ese detalle.
 
Atrás
Arriba