Estoy trabajando en un dispositivo con un contador de 7 segmentos de 4 dígitos y me pregunto cuál es la mejor manera de controlar todos los LED. En este momento tengo una PCB personalizada que los controla a todos desde un Atmega168, usando la mayoría de los pines de E/S. El problema es que algunos de los números parecen más brillantes que otros. Por ejemplo, un "1" es más brillante que un "8888".
Alguien sugirió que debería usar un controlador LED como el TLC5940.
¿Es esto necesario? Dado que es para un dispositivo portátil, trato de mantener el tamaño y la potencia al mínimo.
El prototipo actual funciona bien, pero quiero asegurarme de que los dígitos sean igualmente brillantes y tan brillantes como puedan ser de forma segura, para aumentar su visibilidad.
Puede reducir la cantidad de pines que usa en el AVR multiplexando las pantallas. Conecte todos los segmentos juntos y conéctelos a siete pines de salida a través de resistencias, y conecte los cuatro cátodos comunes a otros cuatro pines de salida. Esto debería darle un brillo constante. El software será más complejo, pero es una solución mucho mejor.
Debido a que el ojo humano responde al brillo máximo, la multiplexación puede proporcionar más brillo del que es posible con pantallas no multiplexadas y usa menos energía, especialmente si se reduce el ciclo de trabajo.
Por supuesto, debe asegurarse de que no se excedan los límites actuales de los pines AVR. Se necesitarán dispositivos de controlador si se requieren corrientes mayores que el límite de 25 mA para los pines AVR. Los uso en una PCB que diseñé para una aplicación similar.
No necesita un controlador LED, pero tiene sus ventajas. Ahorras mucho en la E/S de tu microcontrolador, solo necesitas un par de líneas para la interfaz serial (SPI o I2C). También puede ahorrar espacio en la placa, ya que no necesita un montón de componentes discretos para la multiplexación.
Personalmente me gusta el Maxim MAX6950/51 para cinco y ocho dígitos de 7 segmentos resp. Viene en un pequeño paquete de 16 pines. Tiene control de brillo digital y decodificador de hexadecimal a 7 segmentos. Interfaces a tu uC con 3 líneas.
Estás diciendo que este es un dispositivo portátil. Es posible que los problemas de brillo que está viendo no tengan nada que ver con los chips involucrados, sino que sean el resultado de la resistencia interna de la batería, especialmente si está usando pilas de botón. Es decir, cuando intenta encender todos los LED (en un segmento) a la vez, alcanza el límite de la cantidad de corriente que puede entregar la batería, independientemente de los controladores del microcontrolador.
Un enfoque viable es utilizar una cadena de cuatro registros de desplazamiento de 8 bits (p. ej., 74HC595) para controlar todos los segmentos y utilizar una resistencia limitadora de corriente del mismo tamaño para cada segmento (importante: cada segmento tiene su propia resistencia).
Luego simplemente cambie el patrón de 32 bits apropiado del AVR para el valor que está tratando de representar. Eso desacoplará los requisitos de energía de la pantalla LCD de las restricciones de suministro de corriente del pin AVR. También reducirá la utilización de su pin AVR a tres pines (datos, reloj, pestillo).
En términos de complejidad del software, todo lo que necesita es una tabla para asignar valores de dígitos a patrones de bits. Si mantiene el cableado consistente entre los dígitos, eso es solo una tabla de búsqueda de 10 entradas (si solo está mostrando números de base 10 simples). El protocolo de comunicación del registro de desplazamiento no podría ser mucho más simple: abra el pestillo, registre los bits de datos, cierre el pestillo, y son capaces de operar de manera confiable a velocidades mucho mayores que las que puede lograr con los AVR, por lo que solo puede moverse. los cables lo más rápido posible en el software. Si desea reducir la energía, es posible que pueda lograr PWM cambiando a 0x0000 durante el ciclo de apagado y usando interrupciones del temporizador para garantizar la consistencia del ciclo de trabajo, por ejemplo.
Lo último, estas cosas son baratas y vienen en paquetes DIP si eso es importante para usted.
kevin vermeer