Problema con la pantalla de 7 segmentos: débilmente iluminada cuando está apagada

Estoy manejando dos grandes pantallas de siete segmentos usando dos registros de desplazamiento (74HC595). Las pantallas tienen un voltaje directo de 12 V y una corriente directa máxima de 20 mA.

Estoy alimentando datos y 5 V de energía a los registros de desplazamiento de mi Arduino y usé un suministro externo de 12 V para las pantallas, pero estaba planeando usar un suministro más grande (18 V) más adelante. Conecté 12V + a los ánodos comunes de las dos pantallas, luego conecté los segmentos a los pines adecuados en los registros de desplazamiento. Coloqué una resistencia de 330 ohmios entre los pines SR y los cátodos del segmento. Mi plan era usar 18 V, así que pensé que 330 limitaría mi corriente a 18 mA por segmento. Cuando se ejecuta con el suministro de 12 V, esperaba que los segmentos fueran más tenues, pero funcionaban bien.

Entonces, todos mis prototipos con 12V funcionaron bien. Cuando cambié a usar 18 V (de dos baterías de 9 V conectadas en serie) noté que una de las pantallas parece estar tenuemente iluminada incluso cuando se supone que todos los segmentos están apagados. (Todavía se iluminan como deberían cuando están encendidos).

FWIW, parece que solo le sucede a la pantalla que está conectada al primer registro de desplazamiento, es decir, el primero en la cadena que recibe datos directamente del Arduino. La otra pantalla (impulsada por el segundo SR) parece estar bien.

Soy un poco novato, así que no me sorprendería si cometo algunos errores aquí. ¿Alguna sugerencia?

--

ACTUALIZACIÓN: esquema agregado a continuación que representa el diseño actual (defectuoso).

Cómo está conectado ahora

Entonces, escucho dos posibles soluciones para reducir el voltaje que fluye a través de los segmentos cuando están "apagados": la primera simplemente reduciría mis 18 V a 12 V. Otros han sugerido colocar dos arreglos darlington (p. ej., ULN2803), que supongo que se ubicarían entre cada 74HC595 y las resistencias que conducen a los cátodos de los segmentos individuales. ¿Es así? ¿Se vería así?

(Solo muestro un ensamblaje de un registro de desplazamiento, una matriz Darlington, resistencias y una pantalla de 7 segmentos. Además, ignore la resistencia parásita en la parte superior derecha).

¿Es esto correcto?

esquema por favor?
Lo siento, no tengo uno a mano, pero lo publicaré más tarde. Sin embargo, es bastante sencillo.
Por lo general, son sencillos, si se hacen bien, lo que a menudo no es...
Creo que esta página muestra esencialmente la idea correcta usando el registro de desplazamiento con la matriz de transistores: labalec.fr/erwan/?p=1288

Respuestas (1)

Las pantallas LED se iluminan con la corriente que fluye a través de los MOSFET de canal p (y posiblemente los diodos de protección) en los HC595. Solo pueden proporcionar 0 V y 5 V en las salidas, por lo que cuando están altos (apagados), tiene 18 V - 5 V = 13 V en la pantalla LED + resistencia.

Necesitas bajar los 18V a algo un poco menos. Sugiero un LM317 para que pueda jugar con la configuración de voltaje, hasta 16.5V más o menos.

esquemático

simular este circuito : esquema creado con CircuitLab

Gracias por su respuesta. Reconozco que no lo sigo al 100%, pero haré mis deberes para intentar entenderlo mejor.
Para su información, probé un suministro de 15 V y aún veo el problema que describí. ¿Tiene sentido?
Además, ¿por qué solo sucede en una de las pantallas? ¿No debería pasar en ambos?
¿Las pantallas son idénticas? O diferentes colores?
PS verifique los voltajes de suministro exactos reales en ambos pines de alimentación 74HC595.
PPS Además, desconecte todas las líneas de datos/reloj de Arduino (presumiblemente está utilizando tres líneas para datos y relojes) para descartar cualquier problema de firmware.
Las pantallas son idénticas. He probado a cambiarlos y siempre obtengo el mismo resultado con el conectado al primer 74HC595. Por cierto, solo para aclarar, en mi circuito, las resistencias están entre los pines del registro de desplazamiento y los cátodos de 7 segmentos. Su diagrama muestra una sola resistencia entre el suministro y el ánodo común. (Lo siento, sé que no publiqué un esquema).
@josemonkey Sí, es el mismo concepto con las resistencias del otro lado (donde tienen que estar, por supuesto). Cambió el esquema, mejor para futuras referencias.
En lugar de reducir el voltaje, probablemente sería más simple simplemente agregar un MOSFET a cada salida del '595 para hacer que las salidas se drenen abiertamente.
@TomCarpenter Sí, esa es la solución preferida (aunque quizás no sea más simple). Un ULN2803 por HC595 lo logrará todo con un total de dos chips adicionales y puede manejar hasta un suministro de 50 V.
La razón por la que sugiero verificar los voltajes de suministro es que un suministro abierto en el HC595 Vcc que parece estar funcionando tendría los síntomas que usted describe.
Estoy de acuerdo: agregar chips ULN2803 suena inteligente, pero complicaría mi diseño (ciertamente miope) ... que ya está soldado. :-( Sospecho que bajar mi voltaje es lo más fácil ahora, aunque parece que no puedo hacer que funcione bien con nada más alto que 12V. Esperaba sacar esto de las baterías alcalinas... así que Elegí dos de 9V como la opción más fácil. Si quiero 12V, necesitaré 8 AA o algo... ugh.
@ josemonkey ULN2803 o incluso transistores discretos es la única solución admisible para este problema. Controlar cualquier suministro de 12 V o más directamente desde HC595 es MUY mala idea.
@lustful-rat Gracias por tu aporte. ¿Podría explicar por qué es una mala idea? No digo que estés equivocado, simplemente no sé por qué es malo.
@josemonkey 1. Como notó que los LED se atenúan en el estado apagado: Spehro Pefhany le muestra el esquema y apunta directamente al problema, 2. Si algo sale mal en la cadena de LED, 12V mata rápidamente su HC y otra lógica, 3. Puertas lógicas con salidas CMOS no están diseñados para controlar cargas directamente, 4. Es una buena práctica de ingeniería usar salidas de drenaje abierto o colector abierto para controlar tales cargas, es seguro y confiable.
Obtuve dos arreglos ULN2003 y los conecté como se muestra en el diagrama de arriba. Observé dos cosas: 1. Realmente debo haber tenido algo mal antes, porque parece como si la lógica para activar/desactivar segmentos fuera la inversa. Antes, enviaba un byte al SR con bits configurados en 0 para los segmentos que deseaba ACTIVAR y configurados en 1 para los que deseaba desactivar. (Eso me pareció al revés, pero arrojó el resultado esperado, así que pensé que estaba confundido). Ahora, es lo contrario: envíe 1 para encendido, 0 para apagado.
En segundo lugar, sigo obteniendo el mismo resultado... es decir, si aplico 18 V al ánodo común, los segmentos permanecen tenuemente iluminados cuando deberían estar apagados. ¿Alguna sugerencia, @SpehroPefhany o @lustful-rat?
¿Desconectaste los datos y los relojes como te sugerí?
Sí, acabo de intentar sin el arduino en absoluto. La aplicación de 5 V a las entradas del ULN2003 ilumina esos segmentos. Pero cuando están adheridos al suelo, permanecen tenuemente iluminados.
Entonces, supongo que mi problema sigue siendo la corriente de 18V. Parece que la solución es quedarse con 12V y usar las matrices de transistores para proteger los registros del voltaje más alto.
Algo más está completamente mal. ¿Estás seguro de que no tienes nada más conectado a esos cables LED?
Agradezco sus continuas respuestas... Sí, desconecté todo de la pantalla... Arduino ni siquiera está conectado. Solo una matriz de transistores, resistencias y una pantalla. Si coloco 18 V en el ánodo común de la pantalla y 5 V en los pines de entrada del conjunto de transistores, se iluminan los segmentos adecuados. Si elimino los 5V, los segmentos permanecen tenuemente iluminados.
Tal vez una falla en la PCB o alguna otra vía de escape resistiva o a +5; apuesto a que lo hace incluso sin el uln2003.
Esto es lo que tengo ahora (lo siento, no sé cómo insertar la imagen).
Todo solo en una placa de prueba en este momento.
¿Solo estoy siendo realmente tonto? ¿La aplicación de 18V es el problema, punto? La pantalla de segmento dice que el voltaje directo es de 12,4 V máx. Supuse que si limitaba la corriente con una resistencia, estaría bien con un voltaje más alto. ¿Es eso un defecto fundamental, o lo estoy entendiendo bien?
No, tu concepto está bien. ¡Ah, veo tu problema! COM debe ir a +18/+12 o simplemente dejarlo abierto. ¡Conectarlo a +5 es lo que está causando su problema actual!
¡Ay! Estás en lo correcto. ¡Quitar +5V del pin COM hace que desaparezca la iluminación tenue! Muchas gracias. Solo por curiosidad ... ¿habría una diferencia significativa si pongo +18V en ese pin en lugar de dejarlo abierto?
No, está ahí para cargas inductivas como relés.