PIC16F676: ¿es posible agregar un circuito de atenuación a las pantallas de siete segmentos?

Estoy intentando construir un voltímetro basado en PIC16F676 usando 3 pantallas multiplexadas de siete segmentos de ánodo común. ¿Es posible agregar un atenuador activado por luz para controlar el brillo de las pantallas a través del PIC o controlar la corriente externamente contra las pantallas mismas? Daría como resultado una pantalla brillante en condiciones brillantes y más tenue en condiciones oscuras para no ser deslumbrantemente brillante o distraer. La mayoría de las pantallas estándar de siete segmentos no suelen ser tan brillantes, pero esta es una pantalla grande que utiliza LED brillantes.

Editar: estoy agregando el esquema en el que estoy trabajando. Supongo que debería haber añadido al principio. Lo siento amigos.

Sitio original: http://www.circuitvalley.com/2012/02/30-volts-panel-volt-meter-pic.html

ingrese la descripción de la imagen aquí

En la pantalla, cada segmento contiene 5x leds en paralelo. Como resultado, los BC557 deberán cambiarse a algo más grande, ya que los LED paralelos 5x pueden consumir> 100ma. El problema de los LED es que estoy usando LED SMD 01005 en un factor de forma pequeño, pero solo los encuentro en un brillo stoopid en lugar de un brillo estándar. :( Cuando pensé en plantear esta pregunta, tuve dificultades para pensar cómo titularla y estoy tratando de no dibujar la pregunta en esa dirección.

Solo necesita reducir la corriente que fluye a través de los LED de alguna manera. Hay muchas maneras de hacer esto. Si puede mostrar un esquema de su configuración actual y describir qué componentes están disponibles (¿hay un microprocesador involucrado? ¿Tiene una salida PWM de repuesto?). Además, ¿solo necesita un par de configuraciones discretas o desea ajustar continuamente en algún rango de luz ambiental?
Agregué el esquema según lo solicitado. Estaba tratando de examinar la hoja de datos PIC16F676 en busca de un PWM de repuesto, pero me resulta difícil ya que se transmiten muchos datos en la hoja de datos o no estoy exactamente seguro de qué buscar, ya que es la primera vez que uso un microcontrolador programable de cualquier tipo. Tenía la intención de intentar un atenuador que variaría el brillo en un rango de luz ambiental.
No exceda la corriente máxima del PIC por puerto, 100 mA suena bastante alto.
Creo que almacenar en búfer la salida PIC contra los leds sería adecuado ya que 100ma ES demasiado.

Respuestas (3)

Necesitas hacer dos cosas separadas:

  1. Medir el nivel de luz. Esto debe hacerse con una resistencia dependiente de la luz y una entrada analógica del PIC.

  2. Ajuste el brillo de la pantalla. La forma más sencilla que se me ocurre es reducir el ciclo de trabajo, la fracción del tiempo que los LED están encendidos.
    Ya está cambiando rápidamente entre los dígitos separados, por lo que debería ser una cuestión simple encenderlos cada uno por un período de tiempo aún más corto. Esto hará que se vean menos brillantes.

Luego puede vincular los dos con una fórmula o algoritmo, que puede desarrollar mediante experimentación.

Una nota sobre la multiplexación:
generalmente puede salirse con la suya parpadeando un LED a quizás 50 o 100 Hz, si es para un rango normal de brillo. Pero para ciclos de trabajo muy cortos (y tendrá que ser muy corto para obtener una pantalla tenue, tal vez 1/256), incluso 100 Hz comienza a parecer extraño, las luces dejan rayas punteadas cuando mira alrededor de la habitación. Así que apunte a algo más como 1 kHz, para asegurarse de que se vea suave incluso con poco brillo.

Debe leer la resistencia conectada a RA4 con un ADC. Con el valor de voltaje, establece el ciclo de trabajo en PWM creados en RA0/1/2. Si tiene PWM de hardware en esos pines, puede usarlos y deshabilitarlos cuando el multiplex no debería estar habilitado en cada dígito.

Recuerda que al multiplexar tus dígitos ya perderán alrededor de 2/3 de su brillo ya que estará alrededor de 2/3 del tiempo deshabilitado. Si necesita atenuar más, debe desactivar el ánodo común durante un período más largo en cada ciclo multiplex.

Tiene dos enfoques para controlar el brillo de los LED: 1) Controlar la corriente a través del ánodo común de las pantallas, tal vez usando transistores para seleccionar varios valores de resistencia (o dispositivo de resistencia conmutable digital)

2) El ancho de pulso modula los segmentos LED. Use una rutina de interrupción, temporizadores y encienda y apague los segmentos de LED y controle la proporción de tiempo de encendido y apagado de los LED.