Go Down

Topic: Como regular la intensidad de luz total de un led rgb (Read 2516 times) previous topic - next topic

Zegius

Hola, pretendo hacer un proyecto para iluminar el salón con tiras led RGB, pero antes de meterme en cosas más complicadas estoy intentando conrolar un simple led RGB. Sé como cambiar la intensidad en las salidas PWM para cambiar el color, pero lo que quiero conseguir es poder regular la cantidad de luz que emite el conjunto. Hay alguna manera de hacerlo mediante software o sólo se puede hacer mediante transistores?

surbyte

Muy simple. Si tienes la interfaz apropiada con 3 MOSFET conectados a piens que tienes salidas PWM, usas la función 

Code: [Select]
analogWrite(Pin, Salida)

Donde Pin sera aquel para R, para G y para B
y salida tomará valores entre 0 y 255.
Este comando 

Code: [Select]
analogWrite(11, 127);
ledice al pin 11 que tenga una onda PWM de 50% de ciclo de trabajo. 127/255 = 0.50 o 50%

Zegius

Muchas gracias por la respuesta surbyte. Ya había visto antes de preguntar que se usaban bastante esos MOSFET, pero mis conocimientos de electrónica son casi nulos y no acabo de entender muy bien su función. Tengo una duda con eso que me explicas. Si tengo unos valores de por ejemplo R=255, G=200 y B=20, la única manera de reducirlo al 50 % que se me ocurría hasta ahora era cambiándolos mediante el analogWrite en sus correspondientes pins a 127,100,10, que parece que es lo que dices tu, y para eso no necesito transformadores, no? Qué es lo que cambia poniendo 3 MOSFET? El asunto es que yo estoy buscando cambiar los colores con un mando a distancia o cualquier otro mecanismo y regular la intensidad total de luz con un fotoresistor, por lo que una vez establecidos los valores de color, me gustaría poder variar la intensidad de la luz dependiendo de los valores que tome el foto resistor. Necesito para eso usar MOSFET o podría hacerse mediante código? Como bien te he dicho, no entiendo muy bien la función de los transistores, más allá de elevar la corriente de salida, lo cual será fundamental cuando trabaje con tiras RGB que trabajan a 12v y 1,5A, pero de momento, para controlar un simple diodo no entiendo muy bien su función. Me podrías aclarar un poco el asunto?:

Gracias por adelantado  ;) 

surbyte

Voy a explicarlo de modo simple ya que no vale la pena una explicación profunda de un MOSFET.
Solo piensa y hasta los electrónicos lo vemos asi que es una llave tal que cada vez que entre dos de sus patas le das un valor de 5V el MOSFET (entre Gate y Source) cierra o permite el paso de corriente entre las otras dos patas. Drain y Source.
Ahora si tu usas una señas al la cal de modfiicas el ancho del pulso de manera ta rápida que ni cuenta nos damos, terminas teniendo un comportamiento variable entre 0 y 100% y por ende modificas en este caso el brillo del color.
asi que un analogWrite(PinRojo, 255); mantiene el rojo a fulll
un Valor de 127 lo tiene a medio brillo y un 0 lo apaga.
Esto que te explico sirve para un LED de un color. Para comandar el otro LED reuieres de otro MOSFET (GREEN) y otro mas para el BLUE.
Por eso requieres 3.

Quote
El asunto es que yo estoy buscando cambiar los colores con un mando a distancia o cualquier otro mecanismo y regular la intensidad total de luz con un fotoresistor, por lo que una vez establecidos los valores de color, me gustaría poder variar la intensidad de la luz dependiendo de los valores que tome el foto resistor. Necesito para eso usar MOSFET o podría hacerse mediante código?
Si claro qeu puedes y requires un arduino para ello.
para un simple diodo no necesitas un trio de MOSFET. Solo que yo lei que ibas a manejar una tira y me quede con eso.

Zegius

Gracias por la aclaración surbyte, ya he empezado a trabajar con el código y después de romperme la cabeza durante unas horas, he logrado convertir la cantidad de luz que recoge el LDR en un porcentaje y aplicárselo de manera independiente a cada pin (R,G y B) para que aumente o disminuya la potencia de cada uno de manera proporcional a la luz recibida, consiguiendo variar la potencia sin cambiar el color.

surbyte

Bueno si esta resuelto tu problema edita el título y ponle solucionado.

Go Up