Controlador y Drivers RGB para leds de alta potencia

En este artículo describo un cambiador de colores RGB automático para leds de altísima potencia con control de la intensidad luminosa a través de un sistema del tipo PWM.

PowerLedCtrl01.jpg
LedPowerCtrl1.png

La unidad de control que propongo controla tres drivers de potencia. Para simplificar el trabajo de conexión entre módulos, los conectores de salida de la unidad de control son compatibles con los de entrada de los drivers.

LedPowerCtrl2.png

El proyecto usa el microcontrolador PIC12F629 de la Microchip. Debido a que el programa no usa ninguna de las funciones especiales del micro (timmer, adc, etc.), con pequeñas modificaciones del listado se puede reemplazar el modelo de micro por cualquier otro micro de la microchip. La velocidad de transición de los colores, es decir, el ritmo de cambio, se puede regular con el trimmer montado sobre la plaqueta.

LedPowerCtrl3.png

En paralelo con el trimmer, he previsto dos contactos de salida para poder conectar un potenciómetro en lugar de este. Para la función de cambio automático de colores, el uso de un potenciómetro no se justifica pero nuestra plaqueta podría ser usada en futuro como un sistema de regulación manual de intensidad (modificando previamente el software) y en este caso es cómodo tener ya disponibles los contactos de salida. He previsto también otras dos contactos de salida que podrían ser usados para modificar la modalidad de funcionamiento del sistema. Por ejemplo, se podría hacer en modo que cuando los contactos se unen a través de un interruptor, el ciclo de cambio de color se detenga en un cierto punto. La versión actual del software no usa estos contactos.

PowerLedCtrl02.jpg

El cambiador de color dispone de tres canales idénticos pensados para se conectados a leds RGB (rojo, verde, azul) e varia continuamente la intensidad de cada uno de ellos. Como el ciclo de encendido y apagado es levemente distinto entre los 3 canales, nunca se repite la misma condición de iluminación obteniendo así todos los colores posibles del espectro cromático con transiciones progresivas y visivamente muy sugestivas. Cuando los tres canales se encienden a la máxima potencia se obtiene el color blanco.

LedPowerCtrl4.png

El sistema de control de la intensidad luminosa es del tipo PWM, es decir, modulación por ancho de impulso. El circuito está pensado para trabajar con una tensión de alimentación entre 9V y 18V . El regulador 78L05 reduce esta tensión a 5V para alimentar el micro. La corriente que va a los leds a través de los drivers no pasa por este regulador 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. Con una tensión más baja de 9V, el regulador 78L05 no sería en grado de entregar correctamente los 5V necesarios para el funcionamiento del micro. Por otro lado, una tensión de alimentación muy elevada haría disipar mucha potencia en los mosfet de los drivers. Depende de la cantidad y de la potencia de los leds conectados. Los driver de potencia Los reguladores de corriente se pueden hacer de diferentes maneras: con transistores, con mosfet de potencia o con reguladores lineales de tensión conectados en modo particular. Todos usan el mismo principio de funcionamiento: una resistencia de bajo valor en serie con el led (generalmente llamada shunt) que "mide" la corriente que pasa por ella y controla el circuito que regula la corriente.

LedPowerDgm1.png

El modelo que les propongo usa un mosfet de canal N como regulador porque lo considero el más eficiente y al mismo tiempo simple de hacer. Para los que no tienen disponible en el cajón de componentes un mosfet de canal N de potencia, se puede usar también un transistor NPN de potencia manteniendo el mismo circuito impreso. Aunque si el resultado es menos eficiente nos puede sacar de apuros. El circuito es una típica fuente de corriente constante y es realmente simple de hacer.
¿Como funciona el driver? El "gate" del mosfet recibe una tensión positiva a través de la resistencia de 47K y por lo tanto conduce. Esta conducción enciende el led y produce una caída de tensión sobre la resistencia en serie con el led. Si la corriente aumenta, también aumenta la caída de tensión y si supera la tensión de umbral de la base del transistor, este último, empieza a conducir disminuyendo la tensión de gate del mosfet y reduciendo de consecuencia la corriente sobre el led (realimentación negativa). Por lo tanto, la corriente sobre el led depende del valor de la resistencia en serie. El defecto de este circuito es que parte de la potencia consumida se pierde en forma de calor en el mosfet. Por lo tanto, es necesario agregarle un disipador térmico.

LedPowerDgm2.png

Potencia disipada en los mosfets y rendimiento general La potencia disipada en el mosfet de cada driver depende de la tensión que cae sobre este y de la corriente que hacemos pasar para alimentar al led. Por lo tanto, podemos mejorar la eficiencia del circuito disminuyendo la tensión de alimentación. Hagamos un ejemplo sobre este punto. Si conectáramos un led de 3V y 600mA (2 Watt) a nuestro circuito alimentado por 12V, el mosfet disipará: Pfet = (Vpower - Vled - Vres) * Iled = (12V - 3V - 0,6V) * 0,6A = 5 Watt Si usáramos en vez una alimentación de 9V: Pfet = (Vpower - Vled - Vres) * Iled = (9V - 3V - 0,6V) * 0,6A = 3,24 Watt Como podemos ver, la potencia disipada por el mosfet en el segundo caso se reduce bastante. Además, en el primer caso con 12V, el rendimiento del circuito es muy bajo porque de los 7,3 Watt que consume, 5 Watt se pierden en forma de calor sobre el mosfet. De cualquier manera, no siempre se dispone de la tensión justa para reducir la potencia disipada por el mosfet. Si tenemos disponibles solamente 12V podemos mejorar el sistema conectando 2 o 3 leds en serie (dependiendo de la tensión de cada uno). Por ejemplo, usando 3 leds de 3V y 600mA: Pfet = (Vpower - Vled1-Vled2-Vled3-Vres) * Iled = (12V-3V-3V-3V-0,6V) * 0,6A = 1,44 Watt Es decir, casi todo el consumo del circuito es usado por los leds mientras que una mínima parte se pierde en el mosfet. La conclusión es simple: conviene alimentar el circuito con una tensión poco superior a la suma de las tensiones de umbral de los leds conectados.

PowerLedDriver01.jpg

La pregunta surge natural: ¿Cuanto poco superior? Bien, si la tensión de alimentación fuera igual a la suma de las tensiones de umbral de los leds conectados el circuito dejaría de funcionar porque el mosfet no es un componente ideal y un mínimo de tensión cae sobre él. A esto se le suma la tensión de 0,6V que cae sobre la resistencia en serie y que permite de regular la corriente. He hecho pruebas directamente con el circuito propuesto y la tensión mínima necesaria para que funcione correctamente es de 2,5V por encima de la tensión del led (o de los leds conectados en serie). Para mayor seguridad aconsejo 3V. ¿Como regulamos la corriente? Como hemos dicho, la corriente que obtenemos para alimentar el led depende solamente del valor de la resistencia en serie y su valor se puede calcular a través de esta sencilla fórmula: R = 0,6V / Iled Si por ejemplo, quisiéramos hacer pasar una corriente por nuestro led (o leds) de 0,3A (o 300mA) : R = 0,6V / 0,3A = 2 ohm Si quisiéramos hacer pasar una corriente por nuestro led (o leds) de 0,6A (o 600mA) : R = 0,6V / 0,6A = 1 ohm

PowerLedDriver03.jpg

Debido a las pequeñas tolerancias de los componentes, la corriente real puede ser ligeramente diferente. Por ejemplo, en el prototipo, para obtener la corriente de 0,3A he debido conectar una resistencia de 1,8 ohm en lugar de una de 2 ohm. Por el hecho que en comercio muchos valores intermedios de resistencia no existen, puede ser necesario aproximar el valor manualmente conectando resistencias en serie y en paralelo. ¿Cuanto disipa la resistencia de los drivers? La resistencia en serie disipa bastante poco. Por ejemplo en nuestro caso de 0,6A: Pres = I * Vres = 0,6A * 0,6V = 0,36 Watt Para tener un buen margen de trabajo con distintos valores de corriente yo sugiero de conectar una resistencia de 1Watt (o menor en el caso de 2 o más resistencias conectadas para aproximar el valor justo de corriente). ¿Que potencia máxima podemos controlar con los drivers?

LedPowerDgm4.png

En realidad, nuestro circuito puede trabajar con corrientes mucho más elevadas de los ejemplos que hemos presentado (5A o más) aunque si será necesario considerar algunos aspectos: 1.reducir al mínimo indispensable la tensión de alimentación del circuito (solamente 3V por encima de Vled)2.usar una resistencia en serie de potencia adecuada3.agregar al mosfet un disipador que sea en grado de mantener la temperatura "bajo control" Consideraciones prácticas para los que recién empiezan con los microcontroladores No obstante la disponibilidad del listado software ya "listo para usar", hacer proyectos con microcontroladores no es el máximo de la simplicidad, especialmente para los que recién empiezan con la electrónica. El problema mayor consiste en grabar en la memoria del micro nuestro programa. Se necesitan fundamentalmente dos cosas: un programador y un ambiente software que controle el programador y permita da compilar nuestro programa. Yo uso como ambiente software de desarrollo un programa que se llama MPLAB y esta hecho por la misma Microchip. Es gratis y se puede descargar directamente desde el sito. El programador que yo uso se llama PicStart Plus y lo he comprado tantos años atrás. En internet se encuentran muchos proyectos de programadores, algunos de ellos realmente bien hechos. Informaciones para la programación del PIC La frecuencia de trabajo del reloj es 4MHz del oscilador interno (sin cristal de cuarzo) . Las opciones son: OSCILATOR: INTERNAL RC NO CLOCK (también indicada como: IntOSC GP4) WATCHDOG TIMER:ON MASTER CLEAR ENABLE: INTERNAL el resto de los parámetros no es importante para este proyecto (creo :?).

Link para bajar el software del micro: http://www.inventable.eu/media/29_Controlador_leds_rgb_con_velocidad/LedCambiaColorConTrimmer.zip Bien, aquí termina el post.Para mayor información pueden visitar mi blog Inventable | La electrónica simple y clara. Un blog de Gabriel Rapetti¡Hasta la próxima! :)
 

Adjuntos

  • LedCambiaColorConTrimmer.zip
    2.4 KB · Visitas: 56
:aplauso::aplauso::aplauso::aplauso: excelente, este es el tipo de proyectos que deberia estar entre los destacados, felicidades...

solo tengo una duda, dices que no utilizas el ADC, entonces como realizas la lectura de los potenciometros???

saludos!!!
 
Última edición por un moderador:
:aplauso::aplauso::aplauso::aplauso: excelente, este es el tipo de proyectos que deberia estar entre los destacados, felicidades...

solo tengo una duda, dices que no utilizas el ADC, entonces como realizas la lectura de los potenciometros???

saludos!!!

Muchas gracias dino. La lectura del pote la hago midiendo el tiempo de carga del capacitor de 100nF. Este se carga a través del pote y por lo tanto así logro determinar el valor de resistencia del pote. Para medir el tiempo de carga, uso dos registros de memoria de 8 bits (16 bits en total) como contadores. Funciona así:

1. en reposo, descargo el capacitor metiendo el pin GP5 del micro como salida y a nivel lógico 1 (a positivo). La resistencia de 330 sirve para limitar la corriente de descarga (para no dañar el micro). En el programa pongo a cero el contador.

2. Cambio GP5 como entrada y lanzo el contador que se incrementa automáticamente mientras que la tensión de GP5 desciende y la lectura da nivel lògico 1. Cuando la tensión del capacitor llega cerca de 0, el nivel lógico de la entrada de GP5 cambia a 0 y detengo el contador leyendo el valor obtenido.

Hasta luego :)
 
En serie depende de la tensión de alimentación y de la suma de tensiones de los leds. Por ejemplo, con leds blancos de 3,5V y 13,6V de alimentación puedes conectar 3 leds.
 
Atrás
Arriba