Controlador para tiras RGB

Foto-variador-tiras-rgb-potencia-01.jpg

En este artículo describo la realización de un controlador automático para tiras RGB de alta potencia. El sistema que les presento tiene la gran ventaja de usar 3 MOSFETs de altísima potencia de salida (uno para cada canal) que nos permiten de conectar muchos metros de tiras de leds. A continuación les propongo una breve descripción del proyecto.

Conexion-variador-tiras-rgb-potencia.png
Conexión del variador automático a una tira de leds RGB.

El regulador de color trabaja sobre tres canales (rojo, verde y azul, cuya sigla en inglés es RGB) variando continuamente la intensidad de ellos. Como el ciclo de encendido y apagado es levemente distinto entre los 3 canales, se obtienen todos los colores posibles con transiciones progresivas. El sistema de control de la intensidad luminosa es de tipo PWM, es decir, modulación por ancho de impulso. Este método es muy eficiente porque los MOSFETs de salida de los tres canales trabajan en corte o en saturación, es decir como interruptores, disipando muy poca potencia en ellos mismos y con un rendimiento excelente.

Circuito-variador-tiras-rgb-potencia.png
Circuito del variador automático para tiras RGB.

El circuito usa un microcontrolador PIC12F629 de la Microchip. Debido a que el programa está hecho sin usar ninguna de las funciones especiales del micro (timer, ADC, etc.), con pequeñas modificaciones del listado se puede reemplazar por cualquier micro de la Microchip.

El trimmer permite de regular la velocidad de transición de los colores. Para leer el trimmer he desarrollado una función especial que mide el tiempo de descarga de un capacitor conectado a uno de los pin del micro. El micro PIC12F629 tiene solamente 8 patitas: 2 de alimentación y 6 de entradas/salidas. De estas últimas usamos solamente 3 para los distintos canales y 1 para la lectura del trimmer.

Montaje-componentes-variador-tiras-rgb-potencia.png
Montaje de los componentes en la plaqueta.

Para hacer funcionar los MOSFETs correctamente es necesario agregar 3 transistores BC548. El circuito está pensado para trabajar con 12V. El regulador 78L05 reduce esta tensión a 5V para alimentar solamente el micro. La corriente que va a los leds, a través de los transistores, no pasa por este regulador y por lo tanto podemos usar le versión 78L05 de baja corriente, que es muy pequeña y económica (parece un transistor). Los capacitores de 100nF y de 22uF 25V sirven para filtrar la alimentación de 12V. La velocidad de variación de la luces se controla con un trimmer (o preset) de 50K. Este puede ser reemplazado con un potenciómetro del mismo valor montado directamente en la plaqueta como se observa en las fotografías o externamente, conectándolo a través de cables cortos a la plaqueta.

Circuito-impreso-variador-tiras-rgb-potencia.png
Circuito impreso del variador automático para tiras RGB. 

Para obtener la máxima potencia de este circuito, es necesario montar un disipador de calor para los MOSFETs. Para ello he pensado de usar un disipador casero hecho simplemente con un perfil rectangular de aluminio de 1 cm. de ancho. La altura y la longitud puede ser cualquiera. Naturalmente más grande es el disipador, más potencia se puede obtener de nuestro circuito. En el prototipo que se ve en las fotografías y en los diseños yo he usado un perfil de 4 cm. x 1 cm. de ancho x 2 cm. de altura. Una cosa muy importante es que es necesario aislar eléctricamente los MOSFET al disipador usando láminas aislantes para encapsulado TO-220. En mi artículo "Montaje de disipadores con semiconductores de encapsulado TO-220" explico en forma detallada este tema.

Montaje-disipador-mosfet.png
Montaje del disipador de calor en los MOSFETs. 

En el circuito impreso encontrarán un puente opcional que en este caso no se usa (probablemente usaré en futuras expansiones). No es necesario que lo monten para esta versión de firmware (el programa que se carga en el micro).

Encapsulado-to220-mosfet.png
Encapsulado TO-220 de los mosfet usados. 

Una vez montado el circuito es necesario programar el PIC12F629. Para ello necesitan un programador de PICs como el que he publicado en mi artículo "Programador de PICs PicKit2". Si han construido este programador o disponen de algún otro del tipo PicKit2, pueden bajar gratis e instalar el software PicKit2 de la Microchip. Este software permite de importar el file HEX que encontrarán al final de esta página y programar el PIC.

Elenco de componentes

1 resistencia de 330 ohms 1/4 Watt
1 resistencia de 1,8K 1/4 Watt
7 resistencias de 10K 1/4 Watt
1 trimmer o potenciómetro de 50K
3 capacitores de 100nF
1 capacitor 22uF 25V
1 led verde de 3mm
3 transistores BC548 (o BC547)
3 transistores mosfet IRF530
1 PIC12F629
1 regulador 78L05
1 zócalo para circuito integrado de 8 pins
1 puente (jumper) de dos pins (opcional)
1 conector con bornes de dos vías
1 conector con bornes de 4 vías
1 disipador de calor (ver texto)
3 kits para montaje de TO-220 a un disipador
tornillos, tuercas, circuito impreso

 

Foto-variador-tiras-rgb-potencia-02.jpg
Foto del variador completo. 

Para terminar este artículo les muestro una fotografía del sistema montado en la que se puede observar el disipador de calor y los MOSFETs aislados gracias a los kits de montaje. Para opiniones o aclaraciones específicas de este proyecto pueden usar el espacio para comentarios al final de esta página. Para argumentos más generales relacionados con el tema LEDs los invito a visitar y a participar al FORO.

Espero que el artículo les haya gustado, hasta pronto 🙂

 

logo_descarga

[ Firmware del variador en formato HEX para el PIc12F629 ] (1002)

[ Circuito impreso del variador RGB (formato KiCad) ] (700)

 

Los contenidos de este blog son originales y están bajo una licencia Creative Commons BY_NC_SA

Logo creative commons cc by nc sa

49 pensamientos en “Controlador para tiras RGB”

  1. Caro Gabriel,

    Esta excelente el diseño en cuanto logre conseguir el PIC voy intentar probarlo. Parecería que en México no se consiguen estos PIC y los que traje de Argentina parecen estar dañados no los reconoce mas la Programadora PIC 🙁 Seguiré buscandolos.

    ¿Que pics se consiguen por tus lados?

    P.S. Si todo sale bien parece que por el 10 de Julio ya saldría de viaje para Italia pero aun no es seguro en esta temporada los pasajes están por las nubes bueno te mando cordiales saludos.

    Muy bueno, teneme informado 🙂

    1. Hola José, ¿con que PIc tienes problemas? Si es con el F629 o el F675 puede que tenga solución, y te invito a que pases por el foro y en un nuevo hilo comentes con mas detalle…

      Saludos
      HJ

  2. Como siempre perfecto, el estilo y la forma de explicarlo raya la perfeccion

    Gracias Francisco. Me gusta la forma que han tomado las últimas publicaciones respecto al pasado. Pienso que sea una evolución natural y es un “format” que pienso de mantener. 🙂

  3. Ciao Gabriel, saludos antetodo.

    El Circuito es de Factura excelente y puede tener aplicaciòn en muchisimo lugares.

    Los que nos brinda este señor SON dos conceptos fundamentales: Eficiencia y Elegancia.

    Sigo todos los que viene publicado desde el primer articulo, lo que puedo decir el Gracias y Fuerza (espero que tenga siempre Buenos resultados). Ti auguro molto successo.

    Le persone che s’impegnano lo meritano.

    Ancora Grazie.

    Querido Carmelo, lo que dices me llena de orgullo, los dos conceptos que mencionas son mi brújula, mi objetivo y el mensaje que quisiera transmitir. Gracias por tu presencia aquí. 🙂

  4. Simplemente PERFECTO, la manera de explicarlo es muy clara e intuitiva ,
    Para los compañeros de la bella México les informo que en la red , en puna popular pagina de compra ,venta y subasta , podéis conseguir esos pic y a precios muy interesantes
    Bueno saludos y feliz verano desde Andalucía (España)

  5. Hola Gabriel: el firmware de este articulo es igual al del modulo cambiador de color? veo que la diferencia es solamente en una linea de programa. exelente articulo.
    cordialmente.
    Eduardo Devite.

    Si Eduardo, es el mismo código. He mantenido el mismo circuito de base. Gracias por tu comentario!! 🙂

  6. La verdad Gabriel, le pones mucho empeño a tus trabajos para que se vean tan espectacular.Admirable.
    El preset Regula la intensidad de los 3 canales a la vez? supongo por que tiene un solo control. Puedes modificar el Firm. para un 12F675?
    Saludos!!

    Saludos Walter, gracias por tus palabras!!!! 🙂
    el preset regula la velocidad de cambio de las luces (ciclo de trabajo).
    Respecto al 12F675 pienso que funcione directamente. Quizás sea necesario cambiar la declaración de micro. Lo preparo en los próximos días.

  7. Hola Gabriel;

    Siempre es grato ver un proyecto tuyo, esta vez
    estoy interesado en saber, si se puede claro está, ¿cómo fué que programaste eso del trimmer y el capacitor? ¿en qué lenguaje lo hiciste? ya que me gustaría verlo más a detalle pero no usando LEDs RGB, si no de un solo canal.

    Muy prolijo tu proyecto

    Saludos

    Hola Ian. Gracias por tus elogios. 🙂 El lenguaje que he usado es assembly y el código lo encuentras en el proyecto de controlador RGB que publiqué en el pasado. Probablemente escribiré un artículo sobre la lectura de potenciómetros sin usar ADC dentro de poco incluyendo también una versión en “C”.
    Hasta pronto.

  8. Hola, surgió un problema con l’host de inventable por lo que no aparece el capcha cuando la gente quiere inscribirse o dejar comentarios. Estoy tratando de resolver el problema.
    Gracias.

    Problema resuelto!!! 🙂

  9. Gabriel,

    Te brindo mi colaboración Administro Servidores Linux desde hace muchos años conozco bien los sistemas Debian y derivados. Si en algo te puedo ser útil. No dudes en contactar me tienes mis datos.

    Querido José, muchas gracias por tu disponibilidad que la tendré muy en cuenta. Algunos problemas que surgen no dependen de mi sino del host que me da el espacio y ahí no logro hacer mucho. Otras cosas en vez son mías como por ejemplo el problema con la newsletter. La Microsoft (hotmail), por miedo a la publicidad spam está creando muchos obstáculos. Por ejemplo, no he logrado mandar a losa inscriptos de inventable, la newsletter del nuevo artículo. Tendré que apoyarme a un servicio externo. Estoy buscando una solución. Quizás me puedes aconsejar.

    1. Gabriel,

      Si el tema de los correos se ha vuelto un tema muy delicado siempre por culpa del SPAM y el Phishing. Esto se resuelve con la autenticación de los correos Google usa 2 sistemas SPF “Sender Policy Framework” y DKIM “Versión mejorada del DomainKeys” Hotmail solo una SPF pero últimamente también esta validado el DKIM. Podría pasarme horas escribiéndote del Tema pero voy a intentar resumir entonces la firma con la que se presenta tu Host a otro Host tiene que contener todos estos datos para que no te lo mande a SPAM otro punto importante es cuando mandas desde PHP las cabeceras cambian y estos valores se ven afectados también hay que tener un control sobre como mandas la newsletter. Yo puedo verificar en que condiciones esta tu host pero necesito algunos datos extras e incluso una cuenta de correo test para hacer pruebas. Aunque si nuestros horarios son diversos podemos platicarlo mejor por Skype “chepe2486” o MSN Messenger “chepe2486@hotmail.com”. 😛 La Electrónica es uno de mis grandes pasatiempos y los LEDs aun mas. Gracias a lo que tu haces en esta Web he aprendido mucho y aclarado tantas dudas. Es lo mínimo que puedo hacer para aportar mi granito a esta comunidad. Realmente sera un placer ayudarte a mantener este sitio. En el Foro también te deje un mensaje sobre algunas ideas para el sitio que me gustaría proponerte pero bueno una cosa a la vez 😉 espero tus comentarios. Cordiales saludos.

      Muy bueno lo que me cuentas José. En estos días estoy de viaje, cuando vuelvo a casa me pongo en contacto contigo. Un abrazo 🙂

  10. Lastima que no se programar PICS, pero de ahí en fuera muy buen artículo, para que comprar un controlador si lo puedes hacer tu mismo 😉

  11. Hola gente, les hago una correccion si son mosfet no es necesario incluir el disipador debido a que no tienen el calentamiento o disipacion que puede llegar a tener un transistor de potencia.

    Hola Andrés, todo depende de la corriente que piensas hacer pasar por los MOSFET porque no son componentes ideales. Mucho menos que con los transistores pero algo de potencia disipan.

  12. Hola amigo, estoy realizando tu proyecto pero me ha ocurrido algo con la compra de la tira de led RGB, es de negativo comun y no positivo comun como tienes tu, hay alguna manera de adaptarlo? Saludos

    Lamentablemnente no kracter, sería necesario modificar toda la etapa de salida 🙁

  13. amigo puedo usar este proyecto utilizando un pic 16f84a que tengo ?

    Hola Jose, en teoría si, el código principal no cambia pero debes hacer algunas modificaciones en el listado y para eso es necesario que conozcas algo de pics.

      1. Respondo de metido, como siempre….

        1. el 16F84A no tiene oscilador interno, es decir debes agregarle un cristal externo de 4MHz con sus dos capacitores de 22pF a masa. en los pines 15 y 16

        2. el 15F84A no posee MCRL interno, es decir deberás agregar externamente una resistencia de 1K entre el pin 4 y Vcc.

        3. El 16F84A tiene un puerto A con 5 entradas/salidas y un puerto B con 8 I/O, mientras que el 12F629 tiene un único puerto con 6 I/O. Deberías modificar el programa para utilizar ya sea el puerto A o el puerto B, según armes tu circuito.
        Debes tener en cuenta eso al adaptar tu circuito y modificar el programa pra que se adapte.
        yo usaría:
        GP0 –> RA0
        GP1 –> RA1
        GP2 –> RA2
        GP5 –> RA3
        Y debes configurar el teristro TRISA o TRISB, según corresponda, ya no existe el registro TRISIO.

        4. El 16F84A al no tener un oscilador interno no posee un registro de calibración, así que si Gabriel utiliza el OSCCAL para el 12F629, deberás eliminar ese registro.

        5. Por todo lo anterior, va ha cambiar la palabra de configuración.

        6. Si dispones del ASM de gabriel, también deberás modificar posiblente el include del micro utilizado.

        7. Con el 16F84A no se debe apagar lmas los comparadores, ya que no posee.

        8. Seguramente algún detalle se me está pasando.

        Saludos
        HJ

  14. Gracias a todos por tan valiosa ayuda. No se nada de programacion pero si se manejar la electronica. Asi apreendo un poco
    Saludos y gracias

    De nada Domingos 🙂

  15. Muy buen trabajo, como todeos los demas, este proyecto me he venido de perlas para un belen cubierto.
    Te pregunto, este circuito valdria para dimmerizar, o hacer el efecto amanecer durante 1 minuto,permanecieran los leds encendio 3 minutos y luego hiciera efecto anochecer durante 1 minuto, para permanecer la tira led apagada??? Un saludo y una vez mas un 1o para tus proyectos, pk muchas de las cosas de mi belen estan hechas por ti.

    Hola Kuiyi, lamentablemente como esta hecho el programa no permite hacer lo que me pides sin deber hacer modificaciones importantes. Para el año que viene pienso de publicar el proyecto de un pesebre completo que hace lo que describes y mucho más. Gran parte del proyecto ya lo hice pero no he tenido el tiempo de terminarlo y publicarlo antes de las fiestas.

    1. Hola Kuiyi, el circuito en si, te lo permite; pero, para ello deberías modificar el programa del microcontrolador para lograr el efecto deseado.

      saludos
      HJ

  16. Hector, lo primero agradecerte tu pronta respues, lo segundo decirte que no tengo ni idea de programacion, soy carpintero no electronico. Y lo poquito que se ha sido de leer y ver a personas brillantes como tu, si pudieras ayudarme con el programa te lo agradeceria. Un saludo

    1. Hola Kuiyi nuevamente.
      No soy el autor de este proyecto, el autor de este, como de todos los proyectos y artículos de este blog es Gabriel (alias “inventable”) y es el quien tiene el archivo “ASM” que se podría modificar ya que es el entendible por humanos, ha brindado un “HEX” que sirve para grabarlo en el microcontrolador y solo lo entienden los microcontroladores.

      Modificar dicho programa “ASM” o hacer uno nuevo, depurarlo, etc, lleva tiempo y lamentablemente no dispongo.
      El poco tiempo libre que me deja el trabajo lo dedico a la familia y ha dar orientaciones y evacuar dudas en un par de foros.

      Saludos
      HJ

  17. Hola Gabriel, tus post son excelentes, tienes una manera de explicar muy buena, que bueno encontrar paginas como la tuya, al ver los proyectos dan ganas de hacer todos muchos proyectos que son muy interesantes. Me ha entrado el gusto por la iluminación con Leds, he leido el post completo y he descargado los archivos que publicaste para el proyecto Controlador RBG para leds alta potencia, he estudiado el codigo y aunque no entiendo mucho del tema se nota que tu manera de programar es muy ingeniosa y eficiente!, te felicito!, he buscado en los proyectos relacionados con Leds y este me llama mucho la atención para instalarlos en la ventana de mi cuarto, pero quisiera digamos, como dijiste en el post de Controlador RGB la posibilidad de detener el cambio de colores y que quede en uno por ejemplo azul, descargue los archivos pero no subiste el .asm para mirar como se podría lograr este efecto te agradecería que subieras el asm. o que me lo enviaras a mi correo buxtehude04@yahoo.es. Muchas Gracias amigo. 😀

    Hola Buxte, muchas gracias por tus palabras. El firmware es el mismo del “Controlador RGB para leds de alta potencia” donde al final del artículo encontrarás el código en ASM para descargar 🙂

  18. Hola
    Quisiera saber si este controlador podría hacer lo siguiente: Supongamos que tengo una tira de leds de 5 metros, yo necesito que un “trencito” de 20 leds recorra la tira a diferentes velocidades y se quede parado, un tiempo x en determinados lugares. Podra ser?
    Muchas gracias

    1. No Horacio.
      No al menos con las tiras de LED comunes.
      Las tiras de LED, normalmente, son arreglos de a 3 LED en serie con una resistencia, cada grupo de esto está en paralelo con el grupo que sigue…

  19. hola muchas gracias ya con este llevo 2 de tus proyectos espero el otro martes enviarte fotos o algo de los proyectos ya terminados el primero es el controlados de ventiladores por temperatura me fascino lo instalare en una pc y el segundo es este controlador rgb que esta fabuloso ami me encanta la electrónica de echo es un jobi se lo básico y con esto ahora se mas 😛 y ademas me anime a programar

    Me pone muy contento saber que estás construyendo los proyectos de inventable. Me gustaría mucho ver fotos de los trabajos. Si puedes mándame una mail a contactos[aroba]inventable.eu

  20. que maravilloso trabajo el que haces y mejor aun gracias por compartirlo!!! una pregunta: ¿este es el mismo codigo que el que usaste en el mezclador automatico?

    Gracias por tus palabras Cesar. Si es el mismo. 🙂

  21. gracias por responder, lo que pasa que he simulado ese codigo, este que diste y uno mas que dio Hector Javier y los leds solo encienden en azul ¿estare haciendo algo mal?

    Hola Cesar, lamentablemente no tengo experiencia con los simuladores y no se que decirte pero te puedo garantizar que en el mundo real funciona!! 🙂

    1. Hola Mario, si lees los comentarios, verás que Gabriel (Inventable) le contesta a otro lector que este firmware es el mismo que para otro montaje y deja el enlace, allí si está el ASM completo.

      Saludos
      HJ

    1. Hola martín, el enlace del “hex” está al final del artículo y acabo de probarlo y baja correctamente.

      http://www.inventable.eu/wp-content/plugins/download-monitor/download.php?id=19

      y este es el contenido del archivo:

      :020000040000FA
      :0A0000008316FF23900083126E2880
      :10002000A30B00342530A3002A1C1B28A00F00348A
      :100030002A10A0030034A00803192028A0030034CC
      :100040002A140034A40B00341E30A400AA1C2D284E
      :10005000A10F0034AA10A1030034A108031932280B
      :10006000A1030034AA140034A50B00342D30A500E0
      :100070002A1D3F28A20F00342A11A2030034A2082F
      :1000800003194428A20300342A150034A90A2008C1
      :100090002902031C85140318851021082902031C5A
      :1000A00005140318051022082902031C051503185E
      :1000B00005110034A701A80183163830850083128A
      :1000C00064004620851E6828A70F6028A80A6028BB
      :1000D0008316183085008312851600348316183075
      :1000E0008500E33081008312073099008B130B13D6
      :1000F0002530A3001E30A4002D30A500AA01A601C2
      :10010000A201A001A101851664005A202708A600BB
      :100110004620A60B882810202708A6006400462049
      :10012000A60B8F2822202708A60064004620A60BD5
      :08013000962834208428090000
      :02400E004C3E26
      :00000001FF

      Saludos
      HJ

      1. no se que pasa que no acepta mi clave y en otro lugares si , me registro y siempre hay dificultades no se que pasa, no se si podras mandarlo por correo electronico, saludos

        1. Hola Martín, no tengo acceso a tu correo.

          Debes registrarte con datos reales, tu nombre, apellido, ciudad, país, etc… sino serás eliminado siempre…

  22. Hola caballero, una pregunta, en este circuito yo podria reemplazar la tira de leds rgb por 3 series de leds una roja, una azul y una blanca en leds de 3w de alta potencia y conectar cada serie en cada canal del circuito?
    De antemano muchas gracias, por tus descripciones detalladas, y las enseñanzas faciles para los que no sabemos mucho de este tema

    Hola Juan, para trabajar con leds sueltos de potencia le aconsejo de construir el controlador para leds de alta potencia. Si lo alimenta con una tensión de 15V debería funcionar con 3 leds en serie de cada color.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*