Autor Tema: Manejar Backlight con PWM  (Leído 9474 veces)

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

Desconectado raraavis

  • PIC10
  • *
  • Mensajes: 47
Manejar Backlight con PWM
« en: 22 de Diciembre de 2006, 19:48:42 »
Alguna idea de como puedo manejar el Backlight de un LCD con 2 botones de un menu?.  tengo idea de hacerlo con PWM que alimente un Capacitor y resistencia. o sea si en el menu del lcd eliges modificar la luz de fondo te muestra el valor actual ( 0, 1, 2,3 y 4) y con los botones subir y bajar te cambia este valor,esto es lo que necesito pero tengo dudas, mas que nada con el circuito.

Saludos.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Manejar Backlight con PWM
« Respuesta #1 en: 22 de Diciembre de 2006, 20:42:05 »
Me estoy yendo, asi que no tengo tiempo de dibujarte un esquema, pero lo podes hacer poniendo entre el PIC y el led de backlight un transistor que sea capaz de manejar la corriente que consume el display, que es mucho mayor a la que puede entregarte el PIC.
Pensa en unos 100mA, por lo que casi CUALQUIER transistor te va a servir....

Si no tenes otra respuesta, mañana te posteo un esquema
Suerte!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Manejar Backlight con PWM
« Respuesta #2 en: 22 de Diciembre de 2006, 23:49:15 »
Hola raraavis , tal como lo comenta el colega aitopes, usando un Tr puedes hacer lo que deseas.

Te recomendaría un BC337, y lo conectas de la siguiente manera:

*  El emisor lo conectas directo a masa.

*  Al colector le conectas una resistencia de bajo valor entre 1 y 22 ohm (ya verás en la practica cual es la necesaria) y esta resistencia la conactas al catodo del Backlight, por supuesto el anodo del Backlight se conecta a los 5Vcc.

*  A la base del Tr le conectas una resistencia de 1K y el extremo opuesto de la resistencia al pin del PIC por donde salga el PWM.

Entonces con la conexión anterior y el PWM podrás controlar la intensidad de iluminación del Backlight, ten en cuenta que la frecuencia del PWM debe ser superior a los 60Hz caso contrario veras el destello del Backlight mientras estes controlando la intensidad luminosa.

Espero te sea de ayuda, si tienes dudas solo consultalas, un saludo.

Atte. CARLOS.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado raraavis

  • PIC10
  • *
  • Mensajes: 47
Re: Manejar Backlight con PWM
« Respuesta #3 en: 23 de Diciembre de 2006, 21:08:19 »
Gracias a Charly29 y Aitopes por la ayuda, estoy queriendo simular en Proteus 6.7 SP3 el ejemplo de Charly29 pero uso un LCD 20x4 que no me dibuja los pines de anodo y katodo del backlight, se pueden agregar?

seguire intentandolo  :lol:

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Manejar Backlight con PWM
« Respuesta #4 en: 23 de Diciembre de 2006, 21:48:39 »
Hola raraavis , por más que fuera posible agregarle los pines, al momento de la simulación no verías el efecto final ya que al ISIS no le da la capacidad de simular un PWM aplicado a un LED.

Por lo tanto te recomiendo que sencillamente te limites a observar con el osciloscopio la forma de onda que saldría del pin destinado a tal función

Un saludo.

Atte. CARLOS.
« Última modificación: 23 de Diciembre de 2006, 21:59:14 por Chaly29 »
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado pikman

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 679
Re: Manejar Backlight con PWM
« Respuesta #5 en: 23 de Diciembre de 2006, 22:51:34 »
Hola, yo pongo un IRF840 con una resistencia de 10K al gate, como es N el source va a masa y el drain al catodo del LCD, en el anodo una rsistencia de 2W de carbon a los 12V de la fuente, asi no cargo el regulador de tension, anda muy bien.

feliz navidad.
saludos
PikMan

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Manejar Backlight con PWM
« Respuesta #6 en: 24 de Diciembre de 2006, 00:00:17 »
Hola pikman , ¿no será una transistor muy grande para el uso que le das? un mosfet de 500V 8A y 125W, para solo hacer circular un maximo de 12V 0.2A y menos de 0.1W, te recomendaría que lo reemplaces por un BC337 o máximo un BD135, con esto aparte de ahorrar en costos, ahorrarás espacio en la PCB.

Aparte lo de cargar el regulador no le veo sentido, ya que un 7805 entrega una corriente de asta 1A sin problemas y es raro el proyecto que se acerque a  ese limite.

En conclusión aparte del desperdicio de hardware está el factor potencia, ya que esa resistencia de 2W debe calentarce un tanto y eso significa desperdicio de potencia.

Espero no te moleste mi opinión, es solo para que sepas las perspectivas que dispones para el mismo uso.

Un saludo.

Atte. CARLOS.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado pikman

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 679
Re: Manejar Backlight con PWM
« Respuesta #7 en: 24 de Diciembre de 2006, 00:13:24 »
No para nada me molesta tu comentario, probaste un bc337 en la configuracion que propones?, yo no lo pude hacer andar, eso que uso lo encontre en un circuito, puede que sea exajerado, pero el 840 vale 2 pesos, la resistencia no calienta ni me molesta, y la lcd al maximo brillo consume 250 ma, que es el 25% de la capacidad del regulador.

El 840 es 8 amp a 500 V pero no es capaz de manejar 125 W (11 amp) en 12 volts ni por casulidad, fijate un transistor 2N3055 creo que es para 20 amp a 100V pero para una fuente de 20 amp hay que poner 6 u 8 si no queres que se queme todo, osea un 3055 en 12 V no maneja  mas de 3 amp., creo que esto se cumple con el 840, o a lo mejor me equivoco.
saludos
PikMan

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Manejar Backlight con PWM
« Respuesta #8 en: 24 de Diciembre de 2006, 00:52:38 »
Hola pikman, te responderé:

No para nada me molesta tu comentario, probaste un bc337 en la configuracion que propones?, yo no lo pude hacer andar, eso que uso lo encontre en un circuito, puede que sea exajerado, pero el 840 vale 2 pesos, la resistencia no calienta ni me molesta, y la lcd al maximo brillo consume 250 ma, que es el 25% de la capacidad del regulador.

Si lo e probado y a funcionado bien, y si tienes miedo de la corriente el BD135 va sobrado. Por los 250mA te recomendaría que miraces el datasheet del display ya que no conosco ninguno de los display chicos que consuma eso, y es muy facil pasarlos de intensidad con el consiguiente acortamiento de su vida util.

El 840 es 8 amp a 500 V pero no es capaz de manejar 125 W (11 amp) en 12 volts ni por casulidad, fijate un transistor 2N3055 creo que es para 20 amp a 100V pero para una fuente de 20 amp hay que poner 6 u 8 si no queres que se queme todo, osea un 3055 en 12 V no maneja  mas de 3 amp., creo que esto se cumple con el 840, o a lo mejor me equivoco.

Por supuesto que el IRF840 no es capas de disipar los 125W en 12V ya que primero se ve limitado por la intensidad, pero de la manera que lo usas no llega a disipar ni siquiera el 1% de esa potencia.

El 2N3055 es para 15A y para la fuente de 20A necesitaras tantos como sea la potencia a disipar, por ejemplo yo tengo una fuente de 100A y solo usa 20 transistores 2N3055, lo que quiere decir que estan circulando 5A por cada uno a máxima potencia entregada, aparte de eso te puedo segurar que los 2N3055 no tienen ningun problema en manejar los 15A mencionados, siempre y cuando estos 15A no supongan una disipación de potencia mayor a los 115W que soportan.

Ten en cuenta que en una fuente de alimentación y en cualquier circuito siempre todo está calculado para que ante un error o falla no se queme lo más caro, por lo tanto siempre está todo sobre-dimencionado, por lo tanto la relación que me planteas no tiene mucho sentido.

Tú circuito: 12V 0.25A 0.2W max.
     BC337: 50V 0.8A   0.625W

Por lo tanto y como puedes apreciar el BC337 funciona muy bien para ese uso

Vuelvo a repetirte, prueba usando un BC337, con una resistencia de 1K y verás que todo funciona correctamente, luego me comentas los resultados

Un saludo.

Atte. CARLOS.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado pikman

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 679
Re: Manejar Backlight con PWM
« Respuesta #9 en: 24 de Diciembre de 2006, 01:05:32 »
Ok, Carlos, voy a probarlo y te cuento.

saludos
PikMan

Desconectado GustavoT

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 102
Re: Manejar Backlight con PWM
« Respuesta #10 en: 24 de Diciembre de 2006, 01:51:33 »
que onda el mosfet 2N7000 encapsulado TO92, es una brutalidad poner un TO220 para un backlight

Lo que me pregunto es si tendra algun tipo de stress que le redusca la vida util el hecho de usarlo con PMW al led
Hay dos cosas infinitas: el Universo y la estupidez humana. Y del Universo no estoy seguro.   Albert Einstein

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Manejar Backlight con PWM
« Respuesta #11 en: 24 de Diciembre de 2006, 09:30:02 »
Hola GustavoT, el stress de los led no viene producido por la conmutación, si no que está producido por la sobre-intesodad que se le aplique, si la intensidad se mantiene dentro de los margenes dados por el fabricante, de seguro cumplirá con las horas de uso detalladas.

Con respecto al 2N7000 no creo sea buena elección ya que solo soporta 200mA, pero el 2N7010 si lo es, este permite 1.3A, pero no sé que tan complicado será su obtención.

Un saludo.

Atte. CARLOS.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado raraavis

  • PIC10
  • *
  • Mensajes: 47
Re: Manejar Backlight con PWM
« Respuesta #12 en: 25 de Diciembre de 2006, 16:50:10 »
controlando backlight con 2 pulsdores y PWM.
alguien podria revisar mi codigo por favor el problema esta en que grabo un valor en eeprom interna, y despues quiero usar ese valor como index de Branchl y eso no funciona, no se como convertir el valor de la eeprom en una variable decimal.quisiera subir el DNS pero no se como.

Código: [Seleccionar]
Device 16F877
    XTAL 4
               
        ' Text LCD pin Assignments
        LCD_TYPE = 0       
        Declare LCD_DTPIN PORTD.4
        Declare LCD_RSPIN PORTC.4
        Declare LCD_ENPIN PORTC.5
        Declare LCD_LINES 4
        Declare LCD_INTERFACE 4
       
        ALL_DIGITAL = TRUE
        trisD = 1
        portD = 0
        Symbol Pulso = portb.4
        symbol Subir = portD.0
        symbol Bajar = portD.1
        EWRITE 10, [2]         'grabo en la posicion 10 el valor 2
Inicio:       
        DIM Valor as Byte
        Valor = EREAD 10
        Delayms 500
        cls
        print at 1,2, "Backlight (0-3)", @valor
                     
        goto Cambio
        'se va
Loop:       
        ' Si pulsa Boton Subir
        if Subir = 1 then
        if Valor < 3 then      'si es menor de 3 suma 1
        inc Valor
        EWRITE 10, [Valor]
        goto Cambio
        end if       
        end if
       
        ' Si pulsa Boton Bajar
        if Bajar = 1 then
        if Valor > 0 then        ' si es mayor a 0 resta 1
        dec Valor
        EWRITE 10, [Valor]
        goto Cambio       
        end if
        end if
       
        goto Loop
       
Cambio: Valor = EREAD 10
        BRANCHl Valor,[v_0, v_1, v_2, v_3]  'aqui esta el problema
        'goto loop
v_0:    PWM Pulso,0,70   'Valor 0
        Delayms 500
        print at 2,2, "Valor Luz:", @Valor
        Delayms 500
        goto Loop
v_1:    PWM Pulso,64,70  'valor 1
        Delayms 500
        print at 2,2, "Valor Luz:", @Valor
        Delayms 500
        goto Loop
v_2:    PWM Pulso,128,70    'valor 2
        Delayms 500
        print at 2,2, "Valor Luz:", @Valor
        Delayms 500
        goto Loop
v_3:    PWM Pulso,255,70       'valor 3
        Delayms 500
        print at 2,2, "Valor Luz:", @Valor
        Delayms 500
        goto Loop
        end

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: Manejar Backlight con PWM
« Respuesta #13 en: 25 de Diciembre de 2006, 19:42:52 »
Que tal Raraavis:

Lo que yo observo es que la parte donde usas el branch es correcto. Lo que no me parece funcional es que solamente se ejecuta una sola vez la instruccion del PWM, lo que hace que no veas el efecto del cambio en la intensidad del backlight. Si pudieras ser mas especifico en cuanto lo que ocurre con tu programa, seria fabuloso.

De cualquier manera, yo te recomendaria debido al microcontrolador que estas usando, utilices el PWM por hardware ya que este micro lo contiene (PIC16F877) y asi no tendras que preocuparte por realizar varios ciclos del PWM, con el hardware simplemente lo configuras y el solito generara el PWM que tu le solicites, asi como el ciclo de trabajo y ya unicamente te preocupes por los botones en el programa principal.

Con respecto a lo que te comentaba de que tu codigo no es funcional, esto es porque lees un valor de la EEPROM interna y luego ese valor lo usas como index para la instruccion BRANCHL, y lo ejecuta, pero el problema viene con las siguientes instrucciones; te explico por que:

Imaginemos que despues de leer el valor en la EEPROM, este tiene un 1, entonces al llegar al BRANCHL, el programa saltara a la etiqeta, V_1, entonce ejecuta lo siguiente:

        PWM Pulso,64,70  'valor 1

Esta instruccion ejecuta el PWM solamente durante 350 milisegundos y no mas (5ms *  70), entonces realizas un delay de 500 milisegundos en donde el backlight se apaga completamente,
        Delayms 500

Luego despliegas en pantalla el valor que tomaste de la EEPROM, pero el Backlight ya esta apagado, ya no existe mas el PWM y despues ejecutas otro delay de 500 milisegundos
        print at 2,2, "Valor Luz:", @Valor
        Delayms 500
        goto Loop                         'Aqui te regresas a preguntar por lo que sucede en los botones, pero unicamente eso, una vez que preguntas por lo botones y no presionas ninguno, se cicla ahi preguntando continuamente por los botones, por lo que el PWM no se ejecutara a menos que alguno boton este presionado.

Espero que a eso te refieras con "no funciona". Si no es asi, como te mencione anteriormente si pudieras explicar un poco mas que sucede con este codigo que actualmente estas usando.

De cualqueir manera hechale un vistazo el HPWM que es mas util que el simple PWM.

Saludos y esperamos tus comentarios.

Elreypic.

Desconectado raraavis

  • PIC10
  • *
  • Mensajes: 47
Re: Manejar Backlight con PWM
« Respuesta #14 en: 26 de Diciembre de 2006, 08:35:56 »
hola reypic

Lo que quiero es manejar el Backlight de un LCD con 2 botones .  o sea en un menu del lcd eliges modificar la luz de fondo y te muestra el valor actual ( 0, 1, 2,3 ) y con los botones subir y bajar te cambie este valor.
aqui estan el source y el dns modificado con HPWM.   :-/

Bajar aqui Source y DNS

Foto
« Última modificación: 26 de Diciembre de 2006, 08:45:22 por raraavis »