¿Cómo alimentar 24 pantallas de 7 segmentos con Arduino?

4

Estoy trabajando en un proyecto Arduino en el que necesito alimentar 24 pantallas de 7 segmentos (modelo Kingbright SC56-11YWA).

Decidí controlarlos utilizando registros de desplazamiento de 8 bits (modelo 74LS164N). Esto está funcionando bien para un prototipo. Pero ya me he dado cuenta de que los segmentos son más brillantes cuando solo hay dos iluminados en lugar de los siete.

¿Un Arduino (Mega) podrá manejar esto cuando conecto los 24? ¿O está bien si uso una fuente de alimentación externa de 5 V (convertida de CA) para todos los registros de turnos?

Hay una resistencia de 220 ohm (alrededor de ese número) conectada en el GND de 7 segmentos. Supongo que disminuir ese número u omitir finalmente la resistencia, también haría algo, pero tal vez no sea suficiente para 24 de ellos.

Espero que mi pregunta sea clara.

    
pregunta Dyte

6 respuestas

2

Debería poder conducir esto muy fácilmente con nada más que las mega y 8 resistencias Arduino, por lo que no necesariamente necesita 24 registros de desplazamiento (!). No los conducirás todos a la vez, conducirás uno de ellos a la vez. Pero será el más sencillo de construir y no se llevará fichas adicionales. En total, probablemente necesitarás 32 de tus pines, pero el mega no tiene escasez de pines.

Recuerde que cada uno de los pines IO están en estado triple. Ponerlos en modo de entrada los pone en modo de alta impedancia, que es como poner un resistor de valor muy alto en ese pin, esencialmente eliminando su efecto del circuito. Al cablear cada uno de los pines del cátodo común a los pines IO y configurarlos a todos para que entren en la entrada, puede configurar los pines individuales para que emitan un valor bajo (conectándolos a tierra) y conduzca dígitos individuales a la vez. Luego, todo lo que necesita es un temporizador y un ciclo a través de cada uno de los dígitos.

Lo único que hay que considerar aquí es cuánta corriente está obteniendo y hundiendo a través de la MCU. Pero para solo 8 LEDs a la vez, creo que debería estar bien, dependiendo de cuánta corriente les guste y qué más está alimentando con la MCU. Tiendo a buscar diseños con menos componentes externos, por lo que esta es la solución que más me atrae.

Además, los otros tienen razón al decir que una resistencia limitadora de corriente única en el cátodo no es suficiente. Su problema de brillo está relacionado con esto o con la cantidad de corriente que pueden obtener sus registros de turnos.

    
respondido por el UziMonkey
6

Primero, no debes colocar la resistencia en el lado del suelo, sino una en cada salida del LS164. Para obtener 20mA, el valor debe ser 150 \ $ \ Omega \ $.

A continuación, el LS164 es una mala elección. Desea un registro de desplazamiento bloqueado , donde puede cambiar libremente los datos sin alterar las salidas. El TPIC6C595 es compatible con el 74HC595 de uso frecuente (ab), pero el último puede No suministre 20 mA a todas las salidas al mismo tiempo. (¡La corriente de alimentación para un 74HC595 nunca debe ser superior a 70 mA!) Sin embargo, las salidas del TPIC6C595 están abiertas al suelo, por lo que necesitará pantallas de ánodo comunes. (También necesitaría pantallas de ánodo comunes para un registro de cambios Schottky de baja potencia como el 74LS164. ¡El LS-TTL casi no puede proporcionar ninguna corriente, e incluso no puede hundirse lo suficiente como para encender los LED !)

Los LED de atenuación cuando hay más conectados a menudo apuntan a un ciclo de trabajo demasiado corto cuando se realiza la multiplexación, pero creo que se supone que es estático. Compruebe la fuente de alimentación para ver si puede suministrar la corriente requerida. ¡Cuente con 20mA por LED, eso es un total de 3.4A! Eso es mucho, y puede ser la causa de su problema. Tenga en cuenta que la multiplexación agregará complejidad, pero no hará nada para ahorrar energía; Necesitarás exactamente lo mismo.

    
respondido por el stevenvh
4

La resistencia del cátodo común está limitando la corriente

Necesita una resistencia en serie en el ánodo de cada segmento de LED, no una resistencia única en el cátodo común. Aquí hay una representación esquemática de una sola pantalla de siete segmentos:

Con su circuito actual, ha conectado una sola resistencia al cátodo común. Eso hará que la corriente sea dependiente de la cantidad de segmentos que se enciendan en un momento dado.

Cada LED bajará aproximadamente la misma tensión directa. Para los indicadores LED rojos estándar en la mayoría de las pantallas de 7 segmentos, eso es aproximadamente 2 V. Suponiendo que está utilizando un controlador de 5 V, eso deja a 3V caer sobre la resistencia. La ley de Ohm dice que la corriente a través de esa resistencia viene dada por:

\ $ I = \ cfrac {V} {R} \ $

o alrededor de 13.6 mA. Este 13.6 mA será constante independientemente de cuántos LED estén encendidos. Si enciende los 7, la corriente en cada uno será de 13.6 / 7 ~ = 2 mA. La corriente en un LED es proporcional a la luminosidad; 2 mA es apenas visible. Para solucionar este problema, debe conectar una resistencia a cada ánodo de los LED. Esto permitirá 13.6 mA en cada resistencia que no es necesario compartir. La corriente a través del cátodo común puede ser de 13.6 * 7, por lo que obtendrás un brillo total.

Un mecanismo alternativo

Sin embargo, eso es un montón de resistencias. Si está utilizando resistencias de orificio pasante, podría aumentar considerablemente el tamaño de su circuito. Puede ahorrar espacio en la placa, tiempo de soldadura y costo de compra de componentes escribiendo un software un poco más complicado.

Un mecanismo de control alternativo sería iluminar solo un segmento en un momento dado. Al parpadear (o no parpadear) cada segmento a 200 Hz o más, sus ojos verán el promedio. Debido a que los LED solo se iluminarán por 1/7 de las veces que se encenderían con iluminación individual, la luminosidad promedio será menor y usted querrá aumentar la corriente. A más de 20 mA o menos, estos LED no aumentarán el brillo de manera apreciable, así que solo use una resistencia de 150 ohmios.

    
respondido por el Kevin Vermeer
1

Como ya mencionó UziMonkey y la mayoría de los demás, una única resistencia en el cátodo es "atenuar" los segmentos a medida que se encienden más segmentos. La corriente a través de la resistencia debería ser mayor cuando se encienden más segmentos, y esto aumenta la caída de voltaje en la resistencia, por lo que se están atenuando. Debe usar 8 resistencias separadas en los ánodos, por lo que no sucederá lo anterior.

Acerca de la conducción de múltiples segmentos de LED. Use un demultiplexor TTL de 5 a 32 (también conocido como demux, ejemplo: 74LS154) para poder controlar hasta 32 módulos LED de 7 segmentos. Las 5 entradas a este demultiplexor provendrán del arduino. Conecte todas las 24 (o 32) salidas de demux a los cátodos de los módulos LED de 7 segmentos. Ahora, el Arduino conducirá los 7 segmentos a través de 7 líneas, y las salidas de demux seleccionarán qué pantalla se va a "ENCENDER". Varios factores, como el voltaje que se aplica a los segmentos de LED, dependen de la frecuencia de exploración del Demux.

    
respondido por el Anil
0

Estoy de acuerdo con @stevenvh, consulte el DayCounter Kit : es básicamente su proyecto modularizado utilizando los registros de turnos bloqueados 74HC595. También proporcionamos cables para encadenar juntas y cables de extensión para las pantallas de 7 segmentos. Incluso escribí una biblioteca de Arduino para ella que maneja la profundidad de encadenamiento arbitrario. Consulte el esquema aquí .

Editar

Tal como se prometió, aquí está la respuesta no editada que recibí de Texas Instruments a la pregunta "¿Cuánta corriente puede hundir cada pin en el contexto de los LED de activación, y hay un límite para la corriente general que las salidas podrían hundir? "

  

El SN74HC595 puede hundir o generar un máximo de 20 mA desde cada salida.   Los factores limitantes son dos veces:

     
  1. La corriente máxima a través de todo el chip solo puede ser +/- 70mA. Esto significa que todas las salidas no pueden hundir o generar 20 mA a la vez   tiempo como esto pondría el chip por encima del nivel máximo para el total   actual de Vcc a GND.

  2.   
  3. El segundo factor limitante es el voltaje de salida bajo carga. Esto se especifica en las especificaciones de Voh y Vol en la página 6 de la hoja de datos. Tú   Puede ver que a medida que aumenta la corriente pasada la última especificación actual   (depende de Vin) el Voh comienza a caer y el Vol comienza a subir. en un   aplicación lógica esto sería inaceptable debido a la tensión lógica   especificaciones. Si está conduciendo LED's no importa en términos de lógica   niveles, pero necesita asegurarse de que si está conduciendo los LED que   Hay suficiente voltaje hacia adelante para controlar los LED.

  4.   

Por lo tanto, puede tener salidas de sumidero o fuente individuales de 20 mA máx., pero   el total para todas las salidas no puede exceder de +/- 70mA. Siempre y cuando tu   cumpla con esta especificación, puede conducir los LED siempre que el consumo actual   La salida no disminuye a menos la tensión directa del LED.

    
respondido por el vicatcu
0

Tengo varios proyectos que utilizan 595 registros de desplazamiento para controlar directamente las pantallas de 7 segmentos (a través de resistencias). Conocía el límite de pines de salida de 20 mA por pin, pero desconocía el límite total de VCC y GND de 70 mA. Uno de mis proyectos es un reloj LED que utiliza filas de LEDs tipo ábaco para mostrar la hora. El primer 595 controla los 8 LEDS de 1 a 8 en punto. Entre las 8 y las 12 am o pm, todos los 8 de estos LEDS están encendidos. Estoy usando resistencias de 220 ohmios en cada salida, lo que equivale a aproximadamente 15 mA por pin. 15 X 8 = 120mA! Bien sobre el límite de mex. El reloj ha estado funcionando durante más de 2 años sin problemas.

    
respondido por el user184979

Lea otras preguntas en las etiquetas