Leds de 3W - Gestionados por PWM - valores bajos efecto raro

Hola buenas.

Estoy montando un programa con arduino.

Alimento leds de 3W, mediante Arduino, sus pines PWM, alimentación externa, MOSFET, etc.

Todo el sistema funciona bien, tanto a nivel software como hardware.

Ahora, estoy “jugando” más en proifundidad.

Con los led, estoy haciendo un proceso de “amanecer” y “anochecer”, haciendo por medio de los pines PWM se mueva de 0 a 255, pero al ser valores enteros, se nota MUCHO el parpadeo de 0 a 1, 0 de 1 a 2, o de 3 a 4, etc, etc.

¿Hay manera de poder pasar valores intermedios para que dicho parpadeo no sea tan tan apreciable?

No es problema de hardware ni software (no son errores)

Es que visualmente, cuando pasamos de 0 a 1 en el PWM, se nota MUCHO el cambio.

Gracias de antemano a todos!!!

Saludos.

El problema reside en que el ojo humano detecta ese parpadeo por debajo de los 20 hz aproximadamente. Lo ideal sería que la regulación del led sea por variación de corriente, pero es más complejo circuitalmente.
Tal vez podría amortiguar el parpadeo con un pequeño capacitor en paralelo con el led ( el valor de éste va a depender del consumo de los leds ).

Hola Pablo.

Gracias por tu contestación.

Si, el ojo humano lo detecta, y... tu planteamiento de poner un capacitador en paralelo con el led suena muy bien en concepto, pero, creo que inviable (y me explico).

La descripcion del proyecto no la hice en profundidad por no "llenar" demasiado el post.

So on 115 leds... por lo que... si hace falta un capacitador por led....

Me sorprende que los PWM no se puedan manejar más "minuciosamente" con valores intermedios (decimales)....

A ver si se nos ocurre otra posibilidad...

No te sirve para nada que tenga decimales el pwm. El hecho de pasar el pwm de 1 a 2 o de 1 a 1,5 no te cambia en nada el parpadeo. Que el led se mantenga encendido 1 de 255 veces o 1,5 de 255 no hace que deje de parpadear. Para no ver eso deberías comenzar tu pwm con un valor mas alto que 1.
por otro lado, los 115 leds están en paralelo?. De ser así podés usar un solo capacitor. A mi no se me ocurre otra idea. Tal vez alguien sepa si se puede aumentar la frecuencia de pwm ( 400 Hz), con eso se solucionaría tu problema visual.

Nunca lo hice , pero en teoria se puede cambiar la frecuencia del PWM.

Saludos

Hi,
Haz probado con un valor 255 los leds se deben quedar prendidos todo el tiempo no deben de parpadear.

Pablo_Lucini:
No te sirve para nada que tenga decimales el pwm. El hecho de pasar el pwm de 1 a 2 o de 1 a 1,5 no te cambia en nada el parpadeo. Que el led se mantenga encendido 1 de 255 veces o 1,5 de 255 no hace que deje de parpadear. Para no ver eso deberías comenzar tu pwm con un valor mas alto que 1.
por otro lado, los 115 leds están en paralelo?. De ser así podés usar un solo capacitor. A mi no se me ocurre otra idea. Tal vez alguien sepa si se puede aumentar la frecuencia de pwm ( 400 Hz), con eso se solucionaría tu problema visual.

No, los 115 leds, no están en paralelo.

Están alimentados por una fuente de alimentación de 12V, por lo que, van en paralelo "tiras" de 4 leds. Y alguna tira de 4 va en paralelo con otra de 4.

No puedo empezar con mi PWM con un valor más alto de 1, porque entonces, el efecto "amanecer" y "anochecer", no lo cumple el programa.

Por eso quiero empezar desde 0, pero sin parpadeo

tauro0221:
Hi,
Haz probado con un valor 255 los leds se deben quedar prendidos todo el tiempo no deben de parpadear.

Si, claro, con 255 se quedan encendidos todo el rato

Pero si lees mi primer mensaje, quiero simular un encendido progresivo (amanecer) y un apagado progresivo (anochecer).

Para ello, el amanecer empieza a oscuras (PWM a 0) y va avanzando, amaneciendo, incrementando de 1 en 1. Y ese incremento se nota mucho. Mucho salto entre los valores.
Al llegar a 20 o a 30, ya los saltos VISUALMENTE no se notan, pero, no quiero empezar en 20 o en 30, porque, pierde el sentido el amanecer progresivo.

PeterKantTropus:
Nunca lo hice , pero en teoria se puede cambiar la frecuencia del PWM.

Saludos

Gracias por la información.
Me voy a documentar y a ver si soy capaz de aumentar dicha frecuencia para los 8 pines PWM de cada línea de leds.

Si se os ocurren más ideas y ayudas, siempre son de agradecer.

Os cuento cuando haya hecho pruebas!!!!

Hi,
Yo uso el pwm para bajar la intensidad de las tiras que forman los segmentos de los digitos de un reloj digital y bajo la intensida pero no parpadean. Eso si esta limitado cuanto puedes bajar la intesidad. Yo lo uso en un reloj de pared que hice usando tiras de 6 leds para formar los segmentos de los digitos.Eso si yo no uso mosfet yo uso un 7447 para los segmentos. Una cosa que podrias proba /tratarr es de controlar el voltaje que alimentan los LEDS y asi no tendras parpadeos.

A ver que quizás no me he sabido explicar.

Los leds NO parpadean.

Aunque les pase 1, 2, 3 6, ex desde el PWM, el led se mantiene encendido bien (con la intensidad de ese "paso"del PWM).

Cuando hablo de parpadeo es que al pasa me de 1 a 2 en el PWM, o de 2 a 3, o de 5 a 6, etc (en valores bajos del PWM) SE NOTA ese movimiento.

No es "limpio", no es "amanecer". Es tintineante, pero los led no se apagan ni parpadean.

Es el cambio de intensidad que le da el PWM al pasar de 2 a 3 o de 3 a 4, etc. Se nota salto en cada cambio.

Hi,
Voy tratar ver tu descripcion del problema. El problema acurre cuando haces los cambios y despues se ve normal o todavia se quedan tintineado. Para mi tintineando es lo mismo que parpadear pero con menos intnesida en otras palabras no se nota que se apagan.Una vez que pasa el cambio se ven normla o sigue tintineando

Porque no sigues el consejo de PeterKantropus. La idea de posibles fallas se debe a la frecuencia de la PWM portadora. Debes cambiar dicha frecuencia que es de 499 Hz si mal recuerdo a una mas alta.
El efecto que percibes debería desaparecer.

Hola buenas!!!

De cara a poder explicarme mejor, he grabado con el móvil y subido a YouTube.

Como comento en todo momento, no es parpadeo de W en los leds. Los led se mantienen estables y perfectos.

Es que, visualmente, en el paso 1/255 de los PWM se ve la luz, y al irse al paso 2/255 se nota mucho cambio (de ahí, hablar yo en mi post inicial sobre "valores intermedios").

Para prueba, un botón: https://youtu.be/6uoPk7buBsw

A ver vuestras opiniones ahora jejeje

Ah, bueno. Eso cambia un poco. No es parpadeo sino el salto abrupto en la luminosidad. Yo creo, puedo estar equivocado, que ahi no tenés una solución sencilla. El pwm es de 8 bits y el minimo salto es de 1/256 de la tensión de alimentación. Para atenuar ese salto deberías tener más bits de resolución, por ejemplo en 10 bits tendrías 1/1024, en 12 bits 1/4096 . A mayor cantidad de bits de resolución menor va a ser el salto entre pasos. En éste caso un cambio de frecuencia del pwm no surtiría ningún cambio visual. Lamentablemente , a mi criterio, eso lo lograrías con circuitería externa. Tal vez con un Arduino DUE o un Zero podés lograr 12 bits de resolución con la instrucción analogWriteResolution()

Hi,
Ya esto es diferente al parpadeo. Aqui esta pasando es el cambio de una intensidad a otra. Una solucion seria de en vez de hacer el cambio abrusto de un punto aa otro es haceindo un for/loop que incremete o que lo decremente la intensidad paso paso poco hasta llegar el valor deseado.

Afirmas que: " No es problema de hardware ni software", pero viendo el vídeo, permíteme dudarlo. La variación del simple led conectado al pin del arduino, es casi imperceptible, muy lejos de lo que muestras en el vídeo, cambiar la resolución no tendrá mejoras. Es una falla de software o del driver que implementaste para manejar los leds.

Saludos

Hi,
Creo que este driver puede resolver tu problema. Es un Pwm driver de 16 bits 16 canales.

link:Adafruit 12-Channel 16-bit PWM LED Driver - SPI Interface [TLC59711] : ID 1455 : $7.50 : Adafruit Industries, Unique & fun DIY electronics and kits

Porque no revisamos todo.
Coloca el código por favor. Si ya lo hiciste en otro hilo, esa es la razón por la que siempre digo, sigan con el hilo principal asi no se pierde tiempo repitiendo cosas.

Pablo_Lucini:
Ah, bueno. Eso cambia un poco. No es parpadeo sino el salto abrupto en la luminosidad. Yo creo, puedo estar equivocado, que ahi no tenés una solución sencilla. El pwm es de 8 bits y el minimo salto es de 1/256 de la tensión de alimentación. Para atenuar ese salto deberías tener más bits de resolución, por ejemplo en 10 bits tendrías 1/1024, en 12 bits 1/4096 . A mayor cantidad de bits de resolución menor va a ser el salto entre pasos. En éste caso un cambio de frecuencia del pwm no surtiría ningún cambio visual. Lamentablemente , a mi criterio, eso lo lograrías con circuitería externa. Tal vez con un Arduino DUE o un Zero podés lograr 12 bits de resolución con la instrucción analogWriteResolution()

Ok, entendido que es tema de los "pasos" en el cambio por medio del PWM a causa de la resolución del PWM por hardware. Ok, me queda claro.

Gracias