Sección patrocinada
por : 

Mi Pantalla Led DIY

Tema en 'Iluminación LED' iniciado por Miera, 5 Oct 2016.

  1. Miera

    Miera

    Mensajes:
    17
    Registrado:
    16 Dic 2015
    Ubicación:
    Torrelavega
    Buenas a todos,
    Os dejo por aquí la pantalla que he terminado recientemente para mi nano.
    Espero poder servir de ayuda para la gente que se anima a esto del bricolaje y recibir vuestros comentarios y críticas para mejorar mi diseño :)

    Las tres vías(azul, 12000K, 20000K) se dimean con el arduino de forma independiente según la hora. En el LCD se muestra la hora, y la intensidad en cada uno de los canales.

    La pantalla consta de:
    -5x Royal Blue 440nm de 3W
    -6x Deep Aqua White 20.000K de 3W
    -6x Aqua White 12.000K de 3W
    -3x Driver Meanwell LDD-H 700mA
    -1x Arduino Nano
    -1x Pantalla LCD 16x2
    -1x Fuente Meanwell ELN-60-48D
    -1x Ventilador de PC silencioso dec 12cm
    -1x Cargador de movil de 5V
    -1x Cargador de tablet de 9V
    -1x Módulo Reloj RTC 1307
    -1x Disipador de aluminio casero hecho con perfiles de aluminio
    -1x Molde de tarta de aluminio

    Ahora lo más importante, las fotos :)
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
     
  2. Mauryreef

    Mauryreef

    Mensajes:
    4
    Registrado:
    13 May 2015
    Ubicación:
    moncada
    Esta muy muy guay!! Yo me estoy haciendo algo parecido. Puedes pasar la programación y el esquema de conexión? A mi me falta controlarme lo de la pantalla nada más.. Un saludo y seguiré tu nano q esta muy guay. Enhorabuena
     
  3. Miera

    Miera

    Mensajes:
    17
    Registrado:
    16 Dic 2015
    Ubicación:
    Torrelavega
    Gracias!

    Pues te cuento un poco y adjunto aquí los esquemas y el código por si te sirven.
    Perdón por la calidad, soy un poco torpe (y vago) con el paint :yb624[1]:
    [​IMG]

    AQUI LA FOTO MÁS GRANDE-->http://i.imgur.com/09qHcC8h.gif
    Insertar CODE, HTML o PHP:
    #include <LCD.h>
    #include <LiquidCrystal_I2C.h>
    #include "Wire.h"
    #define DS1307_ADDRESS 0x68  // This is the I2C address
    #define I2C_ADDR          0x3F        //Define I2C Address where the LCD is
    #define BACKLIGHT_PIN      3
    #define En_pin             2
    #define Rw_pin             1
    #define Rs_pin             0
    #define D4_pin             4
    #define D5_pin             5
    #define D6_pin             6
    #define D7_pin             7
    
    const int Azul = 11;
    const int Blanco = 10;
    const int Frio = 9;
    const unsigned long HOUR = 60 * 60;
    const unsigned long MINUTE = 60;
    const int TARGET_BRIGHTNESS = 210;
    //Initialise the LCD
    LiquidCrystal_I2C      lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
    void setup()
    {
      Wire.begin();
      //Define the LCD as 16 column by 2 rows
      lcd.begin (16, 2);
      lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
      lcd.setBacklight(HIGH);
     
    }
    
    byte bcdToDec(byte val)  {
    // Convert binary coded decimal to normal decimal numbers
      return ( (val/16*10) + (val%16) );
    }
    
    void loop()
    {
     
      /////  Get time from RTC into RTCHour, RTCMinute, RTCSecond
    
       // Set the register pointer to 0 (Second)
      Wire.beginTransmission(DS1307_ADDRESS);
      Wire.write((byte)0);
      Wire.endTransmission();
    
      //  Read Second, Minute, and Hour
      Wire.requestFrom(DS1307_ADDRESS, 3);
    
      int RTCSecond = bcdToDec(Wire.read());
      int RTCMinute = bcdToDec(Wire.read());
      int RTCHour = bcdToDec(Wire.read() & 0b111111); //24 hour time
     
    
      unsigned long time = RTCHour * HOUR + RTCMinute * MINUTE + RTCSecond;  // Time in seconds
      byte DimAzul = brightness(time,   10*HOUR,               20*HOUR);
      byte DimBlanco = brightness(time, 10*HOUR+15*MINUTE,     19*HOUR+45*MINUTE);
      byte DimFrio = brightness(time,   10*HOUR+30*MINUTE,     19*HOUR+30*MINUTE);
      analogWrite(Azul, DimAzul  );
      analogWrite(Blanco, DimBlanco  );
      analogWrite(Frio, DimFrio);
      lcd.clear();
      //goto first column (column 0) and first line (Line 0)
      lcd.setCursor(0, 0);
      //Print at cursor Location
      lcd.print("W: ");
      lcd.print(DimBlanco*100/255);
      lcd.print("%");
      lcd.setCursor(8,0);
      lcd.print("CW: ");
      lcd.print(DimFrio*100/255);
      lcd.print("%");
      lcd.setCursor(0,1);
      lcd.print("B: ");
      lcd.print(DimAzul*100/255);
      lcd.print("%");
      lcd.setCursor(8,1);
      lcd.print(RTCHour);
      lcd.print(":");
      lcd.print(RTCMinute);
      lcd.print(":");
      lcd.print(RTCSecond);
      lcd.print(" ");
      delay(1000);
    }
    
    byte brightness(unsigned long time, unsigned long fadeUpStart, unsigned long fadeDownStart)
    {
      //  Mid day, light is at maximum brightness
      if (time >= fadeUpStart + 2*HOUR  && time <= fadeDownStart)
        return TARGET_BRIGHTNESS;
    
      // Dawn:  fade up the light
      if (time >= fadeUpStart && time <= fadeUpStart + 2*HOUR)  // Fading up
      {
        unsigned long seconds = time - fadeUpStart;  // Number of seconds into the fade time
        return TARGET_BRIGHTNESS * seconds / (HOUR*2);  // Fade up based on portion of interval completed.
      }
    
      // Evening: Fade down the light
      if (time >= fadeDownStart && time <= fadeDownStart + 2*HOUR)  // Fading down
      {
        unsigned long seconds = (fadeDownStart + (HOUR*2)) - time;  // Number of seconds remaining in the fade time
        return TARGET_BRIGHTNESS * seconds / (HOUR*2);  // Fade down based on portion of interval left.
      }
    
      // The remaining times are night and the lights is off
      return 0;  // Shouldn't get here
    }
     
  4. Miera

    Miera

    Mensajes:
    17
    Registrado:
    16 Dic 2015
    Ubicación:
    Torrelavega
    El esquema está mal, aquí esta corregido, me faltaba una línea bastante importante. La masa del arduino y la del VIN de los LDD debe ser la misma para que dimmeen.
    Esta indicada con una flecha jajaja
    [​IMG]
    Aquí mas grande: http://i.imgur.com/QBHo3D4h.jpg
    Saludos!
     
  5. Mauryreef

    Mauryreef

    Mensajes:
    4
    Registrado:
    13 May 2015
    Ubicación:
    moncada
    Muchas gracias!! Cuando termine de montar el mio lo pondré también para si le sirve a alguien un saludo:complice:
     
  6. Chema

    Chema

    Mensajes:
    1.459
    Registrado:
    11 Oct 2005
    Ubicación:
    España
    Buen montaje. Si has previsto una renovación yo te aconsejaría sustituir los blancos de 20000 K por azules y violetas. Los corales notarán una gran mejoría.

    Saludos
     
  7. Miera

    Miera

    Mensajes:
    17
    Registrado:
    16 Dic 2015
    Ubicación:
    Torrelavega
    Nada hombre,
    Lo que necesites, no soy tampoco un superexperto pero si puedo ayudar... Solo tienes que decirlo.
    Estate atento a las próximas novedades, que voy a añadir un relé para cortar la corriente de 9V también con el arduino y así reducir el consumo de la fuente y parar el ventilador y a la vez quitar el temporizador del enchufe.
    Saludos
     
    A Mauryreef le gusta esto.
  8. Miera

    Miera

    Mensajes:
    17
    Registrado:
    16 Dic 2015
    Ubicación:
    Torrelavega
    Gracias!
    Lo de los 20.000k tiene su rollo. Después de mirar por muchos foros llegué a la conclusión de que los leds que utilizo(bridgelux y epistar) me favorece el uso de los 20000 en vez de más azules.
    Cuando estos flaqueen tengo intención de poner led de mayor calidad (CREE) en los cuales favorece una distribución más azulada (50%-50% azul-blanco) e introducir mayor espectro con violetas y tal.
    La verdad es que no se si tengo razón o no en esta idea pero bueno, hecho está y encantado con como ilumina la verdad jajaja
    Saludos!
     
  9. Chema

    Chema

    Mensajes:
    1.459
    Registrado:
    11 Oct 2005
    Ubicación:
    España
    Los LEDs con temperaturas de color muy elevadas tienen baja resolución cromática (bajo CRI), lo cual redunda en colores distorsionados. Y cuanto peor sean los LEDs, más bajo el CRI. Si utilizas blancos neutros o cálidos la resolución cromática mejora mucho.

    Saludos