Tengo una pantalla de 7 segmentos de 4 dígitos de ánodo común. Tengo cada cátodo de segmento conectado a una resistencia de 330 ohmios, y la resistencia está conectada a un registro de desplazamiento. Cada cátodo de segmento está conectado al mismo registro de desplazamiento. Cada ánodo común está conectado a un segundo registro de desplazamiento. En este momento, estoy usando un Arduino para multiplexar la pantalla para mostrar un número.
Esto funciona muy bien, pero hay un problema. ¡La pantalla no es lo suficientemente brillante! Supongo que porque esta es una configuración de ánodo común y que el registro de desplazamiento solo puede proporcionar alrededor de 40 mA de corriente para 8 segmentos (AG y el punto decimal).
He decidido que necesito más poder. Mi primer pensamiento fue tratar de usar 4 transistores PNP . Los conecto correctamente y los segmentos se vuelven más brillantes. ¡Excelente! Sin embargo, hay un problema. ¡Parece que el transistor está ralentizando algo! ¡Hay un brillo desagradable de segmentos que son utilizados por otros dígitos! Tengo el microprocesador configurado para mostrar cada segmento durante 4 milisegundos. La hoja de datos afirma que el transistor debería encenderse y apagarse más rápido que eso. ¿Por qué está ocurriendo este débil resplandor?
Esto es lo que parece cuando se muestra 1111:
Esto es lo que parece cuando se muestra 1112:
Aquí hay un posible mecanismo para la falla. Dices que funciona (débilmente) sin los transistores, pero no funciona con ellos. Entonces parece que la falla está en los transistores. ¿Hay alguna razón por la que los transistores puedan estar dejando pasar algo de corriente cuando no deberían?
Sí. Estás usando un transistor PNP. Como sabe, estos transistores están encendidos cuando el voltaje base es más bajo que el voltaje del emisor. Están apagados cuando el voltaje base es mayor o igual al voltaje del emisor.
El problema con el chip de registro de desplazamiento es que las salidas siempre son más bajas que el voltaje del emisor. No pude distinguir el número de pieza del chip que está utilizando, pero según la hoja de datos del 74HC595 (página 6), las salidas no llegan a Vcc. Si hay una pequeña diferencia de voltaje, es posible que se esté escapando una pequeña cantidad de corriente de la base del transistor PNP. Con una ganancia de alrededor de 100, puede encontrar que hay suficiente corriente CE para dar una salida de luz notable en los LED.
Algo para probar: agregue un diodo schottky entre Vcc y el emisor. Esto debería reducir el voltaje del colector en una fracción de voltio, lo suficiente como para permitir que el registro de desplazamiento apague completamente el transistor.
¡No vote esta respuesta! Blake encontró la solución él mismo, pero no parece interesado en publicarla como respuesta. Solo estoy publicando como una lección sabia para las generaciones futuras.
Conduciendo los ánodos comunes directamente, hizo una salida alta a la vez, y las salidas para las pantallas no seleccionadas son bajas. Pero agregar los transistores PNP invierte la lógica, y luego desea que la salida de la pantalla seleccionada sea baja y las otras altas.
Entonces, ¿qué sucede si olvida invertir los controladores de ánodo? Digamos que desea mostrar "1234". Hace que el ánodo del primer dígito sea alto, los otros bajos, y genera el patrón de bits para un "1". En lugar de que el primer dígito muestre el "1", permanece en blanco y los demás mostrarán el "1". Mover al siguiente dígito. Nuevamente, ese dígito permanecerá en blanco y los otros tres mostrarán el "2". Etcétera. Debido a la multiplexación, cada dígito mostrará una combinación de los otros tres dígitos, pero no el valor real de ese dígito.
Blake dice que se suponía que esto era "1112". Los primeros tres dígitos muestran la combinación de "1" y "2", mientras que el último solo muestra el "1" porque eso es lo que son todos los demás dígitos.
Rocketmagnet bien puede estar en el camino correcto: los PNP pueden tener algo de corriente base debido a las fugas de sus controladores. Si la fuente de alimentación de PNP (el voltaje del emisor de los transistores) es la misma que la de los controladores HCMOS (¿HC595?), entonces esto no debería ser un problema, las salidas HCMOS generalmente se mantienen dentro de los 100 mV más o menos de los rieles.
Si el suministro de los PNP es mayor, entonces no debe conducirlos con una salida push-pull, sino con un drenaje abierto/colector abierto. En ese caso, la corriente de fuga del transistor cuando está "apagado" pasará a través de la base del PNP y, por lo tanto, se amplificará. Un 2N2907 no tiene un hFE muy alto, pero puede causar suficiente corriente de colector para mostrar LED ligeramente iluminados hacia arriba.
El remedio es simple: agregue una resistencia entre la base y el emisor de los PNP. Luego, siempre que la corriente de fuga provoque una caída de voltaje inferior a 0,6 V en la resistencia, toda pasará a través de la resistencia y nada a través de la base. Elija, por ejemplo, una resistencia de 4,7 kΩ. Luego, necesitará al menos 130 µA para obtener la primera corriente a través de la base, hasta entonces todo pasará a través de la resistencia. 130 µA es un valor seguro: es mucho mayor que la corriente de fuga esperada, pero mucho menor de lo que el controlador puede absorber.
Es un problema muy común cuando eres nuevo en la multiplexación. La multiplexación significa conducir una por una pantalla LED. Este problema surge cuando todavía hay datos en el puerto de salida y activa otra pantalla. HAGA esto - Coloque los datos en el puerto de pantalla - encienda cualquier pantalla - Apague todos los datos - apague la pantalla - retraso muy pequeño - ......Repita este paso... Su problema se resolverá.
Supongamos una corriente pico máxima de 20 mA por segmento. Cada uno de los controladores de lado bajo y alto caerá ~ 0,5 V, la pantalla en sí caerá ~ 1,5 V. Por lo tanto, la resistencia caerá 2,5, por lo que para 20 mA debe ser de 125 ohmios. 120 ohmios servirá.
Un registro de desplazamiento común no tendrá problemas con 20 mA, pero 8 x 20 mA (todos los segmentos de un dígito encendidos) probablemente sea demasiado. Si tiene 4 salidas de sobra, puede usar transistores PNP (resistencia base de 1k). De lo contrario, conecte los transistores a su segundo registro de desplazamiento.
Debe darse cuenta de que está multiplexando en el tiempo: debe dividir el tiempo de 'encendido' de manera uniforme entre los 4 dígitos, y el tiempo de 'encendido' debe ser mucho mayor que el tiempo requerido para cambiar entre los dígitos. Esto solicitaría una frecuencia de conmutación baja, pero tampoco desea ver la conmutación, por lo que ~ 100 Hz (2,5 ms para cada dígito) podría ser un buen compromiso.
Sus imágenes muestran imágenes fantasma: un dígito no deseado aparece (tenuemente) superpuesto al dígito que debería estar visible. Es probable que esto se deba a que se cambiaron las filas o las columnas demasiado pronto. Cuando no puede cambiar todo en un solo paso (¡tenga en cuenta que puede hacerlo con un registro de desplazamiento en cascada con un registro de retención separado!) debe
Omitir el primer paso le dará el efecto fantasma.
Kortuk
yippie
Oli Glaser
usuario27869