Autor Tema: Una duda sobre PWM/Duty/LED  (Leído 8451 veces)

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

Desconectado alperez

  • PIC18
  • ****
  • Mensajes: 255
Una duda sobre PWM/Duty/LED
« en: 09 de Julio de 2012, 07:53:36 »
Hola a todos, a ver si me pueden ayudar por que no encuentro (en San Google) la forma de calcular el duty para que el encendido de un led sea progresivo a una determinada frecuencia.

Creo que si lo explico así será mejor:

Estoy probando el PWM con un PIC a 244Hz aprox. que es la minima frecuencia a la que puedo hacerlo por hardware. Para probarlo nada se me ocurrió mejor que poner un potenciometro a una entrada analógica, y según la entrada varío el duty. Hasta aquí todo perfecto, pero resulta que antes de llevar al máximo el potenciómetro (digamos que el ADC ya es 255) el LED ya está en su máximo brillo (digamos por ejemplo que el ADC es 245, no conozco este valor pero valdrá como ejemplo). Esto es debido a que el tiempo en alto a esa frecuencia y a ese valor ADC ya es suficiente para tenerlo encendido al máximo.

Resumiendo, lo que necesito es muy simple: necesito saber cuanto tiempo necesita el LED en estado alto a una determinada frecuencia para brillar al máximo.

Gracias de antemano

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Re: Una duda sobre PWM/Duty/LED
« Respuesta #1 en: 09 de Julio de 2012, 08:47:47 »
No se me ocurre ninguna respuesta salvo que te pongas a medir la tensión media que entrega la salida PWM, lo que te está pasando probablemente es que llegas a un valor máximo en la salida (el máximo que pueda entregar) y ya no varía aunque sigas variando la entrada analógica.Pero vamos, que el máximo debería ser para el ciclo completo (es decir, la salida continua).
Mirate en el datasheet del LED que seguro que se indican en las tensiones de funcionamiento algún dato referente a la tensión máxima de brillo o algo similar, y calculando la tensión media que sále del generador pwm en relación con el ciclo de trabajo sabrás cuando la obtienes.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Una duda sobre PWM/Duty/LED
« Respuesta #2 en: 09 de Julio de 2012, 10:03:11 »
Hola

Lo que quieres averiguar se llama Valor Eficaz, y se calcula con una integral que tiene relacion con el periodo de la señal. En este momento estoy desde el movil ... asi que no puedo agregarte un link, pero busca en google Valor Eficaz o Valor DC y encontraras la integral que te menciono.

saludos
El papel lo aguanta todo

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Una duda sobre PWM/Duty/LED
« Respuesta #3 en: 09 de Julio de 2012, 12:52:55 »
Cuando dices que ya tiene el máximo brillo es una percepción o lo mides? Si es percepción no tiene mucho sentido  ;-)
No contesto mensajes privados, las consultas en el foro

Desconectado alperez

  • PIC18
  • ****
  • Mensajes: 255
Re: Una duda sobre PWM/Duty/LED
« Respuesta #4 en: 09 de Julio de 2012, 17:13:04 »
Ante todo muchas gracias por vuestras respuestas.
A ver si puedo con los tres jajajaja.

¿como puedo medir la tensión media que entrega la salida PWM? no tengo osciloscopio y lo que puedo es simular con proteus, pero obtengo la señal cuadrada. Esto es correcto, pero es que se obtiene la máxima tensión (no la media) antes de que el ADC llegue al máximo. Hay que tener en cuenta que al pin del CCP1 tengo conectador un transistor BC546 que entra en saturación perfectamente, quiero decir que el falor eficaz habria que medirlo en el colector.

"Pero vamos, que el máximo debería ser para el ciclo completo (es decir, la salida continua)" ----->>>> EXACTO, es eso lo que quiero y así debería ser, pero el máximo brillo se aprecia ANTES, ¿por qué?, pues la respuesta está en que a esa frecuencia, el ojo humano no aprecia diferencias en los tiempos en alto, y eso lo que busco, ¿Cuanto tiempo en alto es necesario para alcanzar el máximo brillo a una determinada frecuencia?


No tengo muy claro que me haya expresado con claridad en esto último.

Del datasheet, nada es un led reciclado

Del brillo es una percepción, cuando giro el potenciometro, se aprecia perfectamente que deja de aumentar el brillo ANTES de llegar a 5v (es la referencia del ADC). Si fuera un poco antes no me daría cuenta y no tendría sentido pero es bastante antes.

¿Valor eficaz? pues por hay van los tiros, pero tiene que tener necesariamente una relación con el brillo del LED, es decir para un LED, en este caso rojo, tengo que encontrar la forma de calcular, dada un frecuencia a que valor de duty (tiempo en alto) alcanza su máximo brillo.

Venga que seguro que todos habeis pasado por esto y seguro que es simple, algo que se me pasa por alto y estoy seguro que se puede calcular.



Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Una duda sobre PWM/Duty/LED
« Respuesta #5 en: 09 de Julio de 2012, 17:41:00 »
Hola.

Si se puede hacer lo que quieres calculando el Vdc, pero ... necesitas algo con que medir el brillo ... porque si no ... no hay forma!

Debes tener en cuenta tambien, que el ADC de los uC no son muy buenos que digamos y tienen error en los 2 LSB .. por tanto debes ser cuidadoso a la hora de asignar el DC. La mejor manera seria hacer un promedio de varias muestras.

Saludos

El papel lo aguanta todo

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Una duda sobre PWM/Duty/LED
« Respuesta #6 en: 09 de Julio de 2012, 18:39:57 »
Del brillo es una percepción, cuando giro el potenciometro, se aprecia perfectamente que deja de aumentar el brillo ANTES de llegar a 5v (es la referencia del ADC). Si fuera un poco antes no me daría cuenta y no tendría sentido pero es bastante antes.

Y como se comporta a simple vista cuando el ciclo de trabajo es menor al 50% ? Es un comportamiento lineal? A simple vista no creo que te des cuenta de eso  ;-)


Podes colocarle un filtro pasa-bajos (~16 Hz) a la salida del PWM y medir la tensión que obtienes.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado alperez

  • PIC18
  • ****
  • Mensajes: 255
Re: Una duda sobre PWM/Duty/LED
« Respuesta #7 en: 10 de Julio de 2012, 03:51:40 »
Hola.

Si se puede hacer lo que quieres calculando el Vdc, pero ... necesitas algo con que medir el brillo ... porque si no ... no hay forma!

Debes tener en cuenta tambien, que el ADC de los uC no son muy buenos que digamos y tienen error en los 2 LSB .. por tanto debes ser cuidadoso a la hora de asignar el DC. La mejor manera seria hacer un promedio de varias muestras.

Saludos



No tengo con qué medir el brillo, pero todos sabemos cuando va aumentando por la percepción siempre que sea perceptible, valga la redundancia.
Y ahora a ver si me puedes explicar que es eso de "tienen error en los 2 LSB .. por tanto debes ser cuidadoso a la hora de asignar el DC"

Y como se comporta a simple vista cuando el ciclo de trabajo es menor al 50% ? Es un comportamiento lineal? A simple vista no creo que te des cuenta de eso  ;-)


Podes colocarle un filtro pasa-bajos (~16 Hz) a la salida del PWM y medir la tensión que obtienes.


No hace falta que sea lineal pero si que se aprecie el aumento/disminución del brillo.
¿Por qué a 16Hz?


Imaginense que en vez de un LED colocasemos un motor ¿tendriamos en cuenta el par motor? ¿por qué alcanza su máxima velocidad antes de tiempo? No es un funcionamiento correcto, y esto es lo que busco

Veanlo de otra manera: no es un proyecto que esté reallizando, ha sido una apreciación incorrecta de un experimento que estoy llevando a cabo y mas tarde o mas temprano daré con la solución, por supuesto la pondré aquí para que todos lo podamos tener en cuenta.

Otro ejemplo: imaginaos que queremos controlar una fuente de calor (una resistencia por ejemplo) para un control PID, ¿como sabemos que su máximo rendimiento no se ha obtenido al 75% u 85% del duty para una determinada frecuencia? Si llegamos al 100% estaremos dando una corriente casi continua a la resistencia y ¿se podría fundir?
Estas preguntas no son para que las contesteis, son para que las meditéis.

Creo que la respuesta está en el valor eficaz, y como responde la carga.
Tengamos en cuenta otra cosa, por debajo de 30Hz se nota el parpadeo de un LED (lo leí en algún sitio), pero ¿es eso una apreciación o es así verdaderamente? Pues evidentemente es una apreciación.

Como os quedaríais si os dijera:
A xHz, el duty con el que se obtiene el máximo rendimiento de una carga determinada es z%
¿Por qué seguir aumentando el duty si ya obtenemos ese máximo rendimiento?
Lo que quiero es desvelar esa 'z' conociendo 'x' y la carga

Por cierto Suki, gracias por tu PicKit2 clone, lo he montado y funciona muy bien.

PD. Siempre me gustó crear dudas sobre procedimientos que entendiamos que eran correctos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re: Una duda sobre PWM/Duty/LED
« Respuesta #8 en: 10 de Julio de 2012, 05:13:38 »
Creo que el problema está en cómo vé el ojo, que tiene una respuesta no lineal.

Con suerte el ojo tiene una sensibilidad al contraste de un 1%. Eso significa que es capaz de distinguir una luz con valor 100 de otra luz con valor 101.
En este caso las dos luces no se ven a la vez sino que se ven de manera consecutiva. Por esta y otras razones, creo que podrías establecer un cambio de contraste mínimo del 10% para que se aprecie con claridad:

Pasos de iluminación con contraste (PWM):
10
11
12
13
15
16
18
19
21
24
26
29
31
35
38
42
46
51
56
61
67
74
81
90
98
108
119
131
144
159
174
192
211
232
255

Los números se calculan multiplicando el anterior por 1.10 en una hoja de cálculo.

Aunque la serie aumenta de forma exponencial, el ojo lo va a ver de forma lineal.


Saludos.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Una duda sobre PWM/Duty/LED
« Respuesta #9 en: 10 de Julio de 2012, 10:05:31 »
Hola.

Tu apreciacion respecto al brillo del LED puede ser correcta, pero si quieres determinar un modelo del comportamiento de la luminosidad respecto al Dutty Cycle del PWM debes recurrir a algo cuantitativo y, por lo que te entiendo, es lo que quieres hacer. Para ello te recomiendo usar un luxometro y la ecuacion de Valor Eficaz y con esas dos calcular una funcion de transferencia.

Respecto al error en el ADC del micro, a lo que me refiero es que aunque el valor analogico sea el mismo, el valor de la conversion que entrega el micro no lo va a ser porque los 2 bits menos significativos suelen cambiar bastante. Eso genera un error en tu asignacion del Dutty Cycle (DC). La solucion para ello es realizar un promedio (filtro Moving Average) para estabilizar la medicion.

Saludos
El papel lo aguanta todo

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Una duda sobre PWM/Duty/LED
« Respuesta #10 en: 10 de Julio de 2012, 10:56:29 »
Estoy de acuerdo con MLO_, a simple vista no podes sacar ninguna respuesta valida, debes ser más profundo en el análisis. Tenes la vía matemática o el analisis mediante ensayos pero con las herramientas adecuadas.

Te preguntaba que pasaba por debajo del 50% del ciclo de trabajo, porque seguro que mucho antes el led se apago  :mrgreen: Y otra, el nivel de brillo del led depende de la corriente, y como se comporta V vs I el LED?

16Hz, porque es fácil encontrar un capacitor de 10uF y resistencia de 1k  :mrgreen: Además creería que es suficiente para filtrar los 244Hz del PWM y es dinámico para los cambios que quieras efectuar al ciclo de trabajo.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado alperez

  • PIC18
  • ****
  • Mensajes: 255
Re: Una duda sobre PWM/Duty/LED
« Respuesta #11 en: 10 de Julio de 2012, 12:41:04 »
He encontrado esto:

El valor eficaz (Vef)
(Vef)= (Vpico) √(Ton/T)
Vpico= tension en estado alto de la señal
(Ton/T)=Duty Cycle (ciclo de tarea) es la relacion entre el tiempo en que la señal esta en nivel alto (Ton) y el periodo T de la misma.
se cumple siempre Ton<T
asi el valor eficaz no depende de la frecuencia de la señal sino del duty que varia entre 0 y 1.

Vpico en este caso 5v.
Ton puede ser igual a T

Ahora no puedo experimentar y probablemente hasta la semana que viene no pueda, pero para empezar... creo que esta bien

Desconectado alperez

  • PIC18
  • ****
  • Mensajes: 255
Re: Una duda sobre PWM/Duty/LED
« Respuesta #12 en: 10 de Julio de 2012, 12:58:47 »
Podemos establecer la relacion con el brillo:

Aquí nos dice que un led tiene una eficiencia de 4.5 a 5.0 lm/W a 20 mA.


Desconectado alperez

  • PIC18
  • ****
  • Mensajes: 255
Re: Una duda sobre PWM/Duty/LED
« Respuesta #13 en: 10 de Julio de 2012, 13:01:00 »
Tengo que traducir esto:

Pulsing a LED at full power:

Now for some fun, if your circuit or program is not right then your LED could have a very short life expectancy. The data I've marked in red is for pulsing power. It shows a pulse time tp of 100uS. That's 1/10,000th of a second. depending on your ambiant temperature you can have a single surge of up to 1.5A or with a 50% duty cycle you can pulse continuously at 200mA. The 50% duty cycle comes from tp/T=0.5 this means that the pulse time/total time is 1/2. Considering the pulse current is twice the normal forward current this makes sense as the over all power (heat) generated is the same.

What all that boils down to is simply, you can pump twice the normal amount of power through it for 100uS but then you have to turn it off for at least 100uS to let it cool a bit. If you have it on for 100uS and off for 100uS then you get a frequency of 5KHz. So as long as you use a frequency of 5KHz or higher and have a dutycycle of no more than 50% then allowing for ambiant temperature you can pulse that LED all day at twice it's normal current.

You can also send a surge of up to 1.5A through it for 100uS only once and then it must cool down completely before you can do that again. It will depend on the ambiant temperature as to how long it will take to cool so they don't specify it in the data sheet.

So how do we use this information?

Picaxe has IR transmit and recieve commands that do the hard work for you. Some other processors / languages may also do this. Commands like irout and infraout pulse your LED at 38KHz (much higher than the 5KHz minimum) with data modulated into that carrier wave.

If you need or want to make your own protocol then the only thing you need to do is ensure that the LED can't accidently be left on for more than 100uS. Beware of interupts and other subroutines that may affect your timing. The FET circuit above is an excellent way of allowing your processor to switch the high currents used for this LED. Because the on resistance of a FET is so low (usually much less than 0.1 ohms) it will not affect your series resistance calculations. If you replace the FET with an NPN transistor you will have to allow for a small voltage drop across your transistor.

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: Una duda sobre PWM/Duty/LED
« Respuesta #14 en: 10 de Julio de 2012, 16:02:34 »
 Eso mas o menos  dice:

Ahora un poco de diversión, si el circuito o el programa no es correcto, entonces su LED puede tener una esperanza de vida muy corta. Los datos que he marcado en rojo es para los pulsos de corriente. Se muestra un tp tiempo de pulso de 100us. Eso es 1/10, 000 de segundo. dependiendo de la temperatura ambiente usted puede tener un aumento único de hasta 1,5 A, o con un ciclo de trabajo del 50% puede pulsar de forma continua a 200mA. El ciclo de trabajo 50% proviene de TP / T = 0,5, esto significa que el pulso de tiempo / tiempo total es 1/2. Teniendo en cuenta el impulso de corriente es el doble de la normal de la corriente directa en este sentido como el sobre toda la energía (calor) generada es la misma.

Lo que todo lo que se reduce a pocas palabras, se puede extraer el doble de la cantidad normal de energía a través de ella para 100uS, pero entonces usted tiene que apagar por lo menos 100uS a dejar que se enfríe un poco. Si usted lo tiene en la 100uS y fuera de 100uS entonces usted consigue una frecuencia de 5 kHz. Así que, mientras se utiliza una frecuencia de 5 kHz o superior y tener un dutycycle de no más del 50% de descuento, teniendo en cuenta la temperatura ambiante puede pulso que LED de todo el día en que es el doble de corriente normal.

También puede enviar un aumento de hasta 1,5 A través de él con 100uS una sola vez y luego se debe enfriar por completo antes de que usted puede hacer eso de nuevo. Esto dependerá de la temperatura ambiente cuanto a cuánto tiempo se tardará en enfriarse por lo que no se especifique en la hoja de datos.

Entonces, ¿cómo podemos usar esta información?

PICAXE tiene IR transmitir y recibir comandos que hacen el trabajo duro por usted. Algunos procesadores o idiomas también pueden hacer esto. Comandos como irout y el pulso infraout el LED de 38KHz (mucho mayor que el mínimo de 5 KHz) con los datos modulados en esa onda portadora.

Si usted necesita o desea hacer su propio protocolo, entonces lo único que usted necesita hacer es asegurarse de que el LED no se puede dejar accidentalmente durante más de 100US. Tenga cuidado con los interrupciones y subrutinas que pueda afectar a su calendario. El circuito FET de arriba es una excelente manera de permitir que el procesador para cambiar las corrientes elevadas que se utilizan para este LED. Debido a que la resistencia de un FET es tan baja (por lo general mucho menos de 0,1 ohmios) no afectará a los cálculos de resistencia de la serie. Si sustituye la FET con un transistor NPN, tendrá que permitir una pequeña caída de tensión a través de su transistor.


un saludo.

« Última modificación: 11 de Julio de 2012, 06:19:19 por pajaro »