Autor Tema: Led RGBW hacer colores distintos con PWM  (Leído 3927 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ptf

  • PIC10
  • *
  • Mensajes: 6
Led RGBW hacer colores distintos con PWM
« en: 04 de Septiembre de 2015, 12:48:56 »
Hola a todos,

Soy nuevo en el foro y también en el tema de los PICS. He estado buscando en el foro para ver temas similares, pero no responden a nivel de diseño lo que yo necesito saber.

Estoy mirando de hacer con un led de alta luminosidad y potencia RGBW de la marca CREE, un pequeño invento para poder hacer la combinación de color que yo quiera. Para ello tengo en un mismo chip, tres leds, el Red (rojo), el Green (verde) y el Blue (azul) y a parte tengo el blanco.

Para hacerlo, tuve la idea y comprobé a través de internet que otros ya lo hicieron, de controlar el color con salidas tipo PWM.
Mi idea es hacer una secuencia de unos 6 colores. Cada vez que se haga una pulsación a un pulsador, el color cambiaría del 1 al 2, o del 2 al 3, y así sucesivamente.

Cada color del led, requiere una alimentación. El rojo requiere 2.25...2.6V, el verde 3.3...3.9V y el azul 3.1...3.7V, y un consumo nominal de 350mA. Aunque si le das más hace más flujo de luz.

Para hacer los 6 colores que quiero, he pensado en hacer un PWM independiente para cada canal (color), dónde cada color tendría un valor de 0 a 255. Como los colores que salen en Photoshop con su relación RGB. Dónde 0 sería no activar nada en la salida, 255 sería activar la salida siempre 100%, y por ejemplo 127 sería tener en esta salida PWM a un 50%, es decir que el tiempo de ON y el tiempo de OFF sería siempre el mismo.

He estado investigando, y creo que un PIC me podría hacer esta función, he visto este que creo que me podría funcionar:
dsPIC33FJ16MC102
O este otro que buscando herramientas de desarrollo he encontrado y que creo que es similar al otro pero más rapido y con más prestaciones:
dsPIC33FJ64MC802

¿Que os parece, voy bien encaminado? ¿Veis otras opciones mejores?

Por otro lado, por lo que hace a la programación, me gustaría saber que editores recomendáis para programar el PIC (me gustaría programar a alto nivel, no ensamblador), y que herramientas de desarrollo serían las más correctas para empezar. He visto los PICKITS, y por ejemplo el DM330013-2 de la web RS online.

Yo soy programador de PLC's industriales, Siemens, Schneider, Codesys son algunos de los que más domino, y me gusta trabajar mucho con el lenguaje SCL o ST que es el estructurado, así que aunque sea novato con los PICS creo que por el código tendre menos problemas que con otras cosas.

Pues nada, espero vuestros comentarios.


Muchas gracias!

PTF

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Led RGBW hacer colores distintos con PWM
« Respuesta #1 en: 04 de Septiembre de 2015, 21:32:52 »
Para lo que estas pidiendo , solo lo del pulsador y que cambien solo 6 colores, cualquier pic(o de cualquier empresa) hasta de 8 pines te serviria. Tal ves buscar el mas barato en la tienda mas cerca de tu casa sea lo mejor. (Para lo que estas pidiendo obviamente)
No creo que valga la pena complicarse con un dsPIC, Sino te vas a meter en un mundo un poco mas complejo, pero si compras el dsPIC lo vas a tener para mas proyectos

Como el programa no necesita hacer mucho, solo sensar el boton, tranquilamente haces un PWM por software (si es que optas por el de 8 pines que seguro o tiene 4 modulos de PWM).
Con respecto a las tensiones eso se arregla con las resistencias, en el diodo te va a caer el voltaje que vos pusiste y lo demas y lo que rige la corriente va a estar dado por la resistencia, tambien vas a tener que usar un transistor para manejar esa corriente, ya que el micro no posee la capacidad para manejar esa corriente. Es decir aparte del programa del micro necesitas una "etapa de potencia" el cual toma la señal del PIC y es capaz de manejar lo que quieras.

El PWM si lo vas a poder hacer asi de 0 a 255, pero eso no significa que opticamente tengas una variacion de 0 a 255, ya que por decirlo asi "a la vista" un 8 en tu programa se parezca a un 0 en el diodo. Eso es algo a tener en cuenta, pero si me decis que solo varie entre 6 colores, entonces no va a haber problemas. Ya que podes ver los colores que queres y luego los modificas.

Con respecto a la progrmacion, Microchip provee el MPLAB X (el IDE ) y luego el compilador XC8 ( compilador C ), que incluso la version Free te serviria.
Finalmente solo queda programarlos, que yo me quede en los Pickit2 (que pueden programar una buena cantidad de PICs pero no le dan mas soporte) por otro lado tenes el Pickit3, pero no se si vale la pena gastar esa cantidad si le vas a dar poco uso, por ahi mejor pedir prestado uno.

Por otro lado por ahi tal ves sea mas conveniente que compres esos arduino nano o una plaquita de esas pequeñas que ya poseen el bootloader y no necesitas comprar un programador aparte. No es PIC, son micros de Atmel. Pero ya que estas entrando en el mundo de los micros no va haber diferencia entre aprender uno u otro. ademas ejemplos de arduino hay muchos, y tiene su propio compilador con GCC, gratuito.
Seguro que hay mas empresas que hacen micros asi, pero arduino tiene muy buena difusion en el internet, asi que como dije vas a encontrar ejemplos que te van a ayudar a compilar y armar tu codigo.

Al menos es lo que pienso yo, veremos que dice otro.
« Última modificación: 04 de Septiembre de 2015, 21:42:27 por KILLERJC »

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: Led RGBW hacer colores distintos con PWM
« Respuesta #2 en: 05 de Septiembre de 2015, 03:06:53 »
Pues si eres nuevos en el mundo de los PIC, no se hasta que punto sabe tu la Arquitecturas de los microcontroladores. o esta buscando algo ya hechos?
algo hecho lo hay, con 6 Canales PWM y un Atmega168, este Micro ya posee 6 Hardware PWM,
Aqui te paso mi projectos con 4 PWM y un Attiny2313 que tiene 4 PMW lo puede emigrar al Atmega168,
http://www.todopic.com.ar/foros/index.php?topic=35432.0
la cuestion ahora es que lo puede hacer en cualquier lenguaje, que todavia no ha especificado tu conocimientos en Lenguaje de programacion.

Saludos

Desconectado ptf

  • PIC10
  • *
  • Mensajes: 6
Re: Led RGBW hacer colores distintos con PWM
« Respuesta #3 en: 05 de Septiembre de 2015, 15:07:08 »
Hola a tod@s,

Gracias por la respuesta y la ayuda. Como comentáis veo que no hace falta tanto pic para lo que requiero.
He realizado este esquema con el PIC12F1572 que he visto que sirve para este tipo de aplicación.
Creo que es correcto. ¿Que os parece?
https://goo.gl/photos/cJxtVx2pJoHqZcTp7

En cuanto al lenguaje de programación, me gusta programar en C también. Tengo experiencia en programación tipo C pero en PLC's industriales con programas de cierta dificultad.

Saludos,

ptf

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: Led RGBW hacer colores distintos con PWM
« Respuesta #4 en: 05 de Septiembre de 2015, 15:19:10 »
Habia que ver cuantos PWM por hardware tiene ese Pic, siendo asi lo tendria que hacer por Software, no conozco ningun Pic que tenga 6 PWM HW y creo que lo hay, por eso te recomendaba el Atmega168 = 6 PWM HW.
te recomiendo que use nuestros buscador y encontrara muchos Ejemplo de LED con PWM.
Saludos y Suerte

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Led RGBW hacer colores distintos con PWM
« Respuesta #5 en: 06 de Septiembre de 2015, 00:32:57 »
Si ptf, es totalmente realizable.

Y como dije si realmente lo unico que vas a hacer es leer un boton nomas haces un PWM por software. El PIC ese solo tiene 3 PWM por hardware. y te vas a quedar sin uno. El cual si o si vas a tener que hacer por software, o directamente hacer todos por software

Creo que si realmente no te queres complicar, hasta con delays lo podes hacer, por que solo estas leyendo un boton, aunque no sea lo correcto por que puede variar un poco el periodo, pero no creo que unas 15 instrucciones que es lo que debe tomarle al micro el tema del boton no deberia afectar.

Sino como dice stk te buscas un micro que tenga mas PWM independientes uno de otro y listo. solo lo configuras y le cargas los valores cuando sea necesario.

Desconectado ptf

  • PIC10
  • *
  • Mensajes: 6
Re: Led RGBW hacer colores distintos con PWM
« Respuesta #6 en: 21 de Septiembre de 2015, 11:02:03 »
Hola,

Ya tengo el clircuito en una placa de protoripos, con los componentes,..., (el led RGBW tardó en llegar).
Con el pic ya me estoy moviendo y bien. Estoy haciendo pruebas con los 3 PWM que lleva,...

El tema es que estoy utilizando una fuente de alimentación de laboratorio, con salida a 3.6V.

El consumo del led (si solo activo uno), es de 50mA, cuando el nominal del led son 350mA (con 350mA da el 100% de lumenes).

¿Cómo puedo hacer para aumentar los mA?
¿Es cosa de la FA? ¿Debería meter una fuente de alimentación de corriente constante de 1000mA por ejemplo? ¿Soportará el PWM que le doy entiendo?

Saludos,
Pau

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Led RGBW hacer colores distintos con PWM
« Respuesta #7 en: 21 de Septiembre de 2015, 11:19:46 »
Citar
El rojo requiere 2.25...2.6V, el verde 3.3...3.9V y el azul 3.1...3.7V,
De lo que pasaste vos, lo que veo es que estas ahi de la tension deberias tener un margen, por ejemplo unos 5V. Lo raro es que la fuente de la laboratorio no posea una salida de 5V


Citar
¿Cómo puedo hacer para aumentar los mA?
Modifica la resistencia o la tension. Siempre debe tener resistencia.

Si tenes 5V, el calculo de la corriente y la resistencia es muy simple

(5 - Vd )/ I = R

Por ejemplo si quisieras tener 350mA en el diodo azul, suponemos una caida media de 3.4V  (Dado por (3.7 + 3.1)/2 )

(5V - 3.4V) / 350mA = 5ohms

Vos estas poniendo de 200 ohms con una tension menor.. Lo cual es aun menos corriente.
Esta formula UNICAMENTE es valida para cuando la tension que le llega al diodo es mayor que la que cae en el diodo!.

Citar
¿Es cosa de la FA? ¿Debería meter una fuente de alimentación de corriente constante de 1000mA por ejemplo? ¿Soportará el PWM que le doy entiendo?
En parte, tal ves muy poco,tener mastension te ayudaria para que realmente los diodos pasen a estado de conduccion.
La fuente deberia poder dar toda la corriente que le pidas, es el unico requisito que tenes

El PIC12F1572 soporta hasta 5.5V, ojo no confundirse con el PIC12LF1572  ( es LF este ) que es de 3.6V maximo, Si es asi no deberias tener problemas en ponerle mas tension al circuito


Una cosa mas que no habia notado en el esquema. Si observas hay un diodo D4, esto esta bueno para que no conectes alreves el circuito y termines quemando algo. Pero ese diodo tiene una caida de 0.7V si es que usaste un diodo rectificador como es el 1N4007, Asi que deberias tenerlo en cuenta cuando hagas los calculos del a corriente, ya que ahora a los diodos no le van a llegar 5V sino 4.3V y si hacemos el mismo calculo anterior:

(4.3V - 3.4V) / 350mA = 2.5ohms

No estoy tan seguro de los 350mA probaria inicialmente con 200mA por las dudas :P

Desconectado ptf

  • PIC10
  • *
  • Mensajes: 6
Re: Led RGBW hacer colores distintos con PWM
« Respuesta #8 en: 21 de Septiembre de 2015, 13:20:16 »
Hola KillerJC,

Gracias por tu ayuda.

Con la FA de laboratorio que tengo le puedo poner 5V sin problemas. Lo testearé así.

Te paso los valores de tensión nominal del led:
                                                                               Vmin    Vmax
Forward voltage (@ 350 mA, 25 °C) - red              V       2.25     2.6
Forward voltage (@ 350 mA, 25 °C) - green           V        3.3     3.9
Forward voltage (@ 350 mA, 25 °C) - blue, white    V        3.1     3.7

Este led aunque su corriente nominal son 350mA, puede aguantar hasta 1000mA (1A).

DC forward current - red, green, blue, white mA 1000 (maximum)

¿En cuanto a las resistencias, de que potencia (W) deberían de ser?
Con los 5V y los valores de tensión permitidos en los distintos colores de led ¿Que resistencias debería usar para cada cual?

Muchas Gracias!


Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Led RGBW hacer colores distintos con PWM
« Respuesta #9 en: 21 de Septiembre de 2015, 13:43:07 »
Citar
¿En cuanto a las resistencias, de que potencia (W) deberían de ser?

Eso va a depender del valor de la corriente y del valor de la resistencia, es decir primero calculas la resistencia de para cada diodo y luego te fijas la potencia de las mismas. 350mA no es poca corriente.

Supongo el caso anterior que nos dio una resistencia de 2.5ohms, llevandola un valor nominal 2.7ohms.
Sabiendo que pasan por la misma 350mA. La potencia que disiparia esta dada por:

W = I2R = 0.35A2 * 2.7ohms = 0.33W

Es decir como minimo deberia ser de 1/2 W esa resistencia (Obviamente esto si estuviera conduciendo siempre, que es el peor caso)

Citar
Con los 5V y los valores de tensión permitidos en los distintos colores de led ¿Que resistencias debería usar para cada cual?

Primero debes saber cuanta tension llega a los diodos leds, si usaste el esquema que pasaste, como dije hay un diodo D4 con lo cual la caida de tension haria que lleguen solo 4.3V al diodo led
Ahi tenes tu tension de alimentacion (Valimentacion). Si no tenes el diodo D4 de tu esquema entonces Valimentacion va a ser de 5V

Luego usas de tu tabla los valores de tension maxima y minima, y obtenes una tension media para cada diodo, como dije el azul usas 3.4V, dado por (3.1+3.7)/2 , en el caso del verde es 3.6V, ahi tenes tu caida de tension del diodo ( Vd )

Y finalmente tenes otro dato que es la corriente (I), en tu caso 350mA (0.35A), ahi procedes a calcular tu resistencia con la formula que te di con anterioridad.

(Valimentacion - Vd )/ I = R

Con esa ultima formula calculas todas las resistencias para cada color, lo unico que vas a variar de un led a otro es Vd.
Finalizado el calculo de las resistencias, procedes a calcular la potencia de cada una.

Tenes que recordar que las resistencias vienen de un valor especifico para cada tolerancia, la mas comunes son las de 10%
( http://www.agelectronica.com/cgi-bin/socios/ag/tutorial/resistencia3.htm )
« Última modificación: 21 de Septiembre de 2015, 14:21:36 por KILLERJC »


 

anything