Controlar 132 Led independiente

Hola:



Tenemos el Teensy ++ 2.0, el Teensy 3.1 y Arduino UNO r3. También tenemos algunos PIC por si acaso nos haga falta como complemento extra por si hace falta más puertos digitales tanto como salidas o como entradas.

PIC16F88
PIC16F886/7
PIC18F2550/4550

Se trata de controlar mediante en microcontrolador central 132 Leds independientes, nada de unos 3 Leds en serie y cosas de estas. En Realidad son muchos display de 7 segmentos y otros son solo Led normal.

Se usará 33 pulsadores más 13 interruptores. Un total de 46.

Mi intención no era usar trucos de barrido de display para cortar su electrónica o hacerla más simplificada para ahorrar costes, en esta ocasión me da igual, así la programación será más fácil.

Lo que me preocupa, se que no debo usar los Led directamente del o de los microcontroladores, debo usar una fuente alimentación externa de 5V.

A parte de ello, lleva un potenciómetro para controlar el brillo de los Led.

Teniendo todo escrito.

c-874324.jpg


¿Cómo lo diseñarías?

Quiero todo tipo de información para que me funcione de maravilla.
 
124 leds de forma independiente? On-Off o tambien vas a dar tonos de intensidad y cuantos niveles?

Para On-Off es simple... muchas latches y multiplexores tipo D

Para niveles de intensidad se requiere PWM, un micro muy rapido y mucha paciencia.... ademas de las Latches...
 
Última edición:
Para los displays si es que solamente se mostrarán números viene un 74LS47 o el 74LS48. Y multiplexados, no hay más, (un registro de corrimiento tampoco complica mucho las cosas). Para su intensidad se puede controlar jugando con algún transistor conectado en el común del display y una señal PWM.

Ahora, con PWM habrá que definir entre cuantos posibles valores de intensidad se manejarán los leds, potenciómetro--->ADC--->Valor PMW

Lo que me preocupa, se que no debo usar los Led directamente del o de los microcontroladores, debo usar una fuente alimentación externa de 5V.

¿Cuánta corriente aproximada será por led a máximo brillo?
 
Hola:

Por lo que se ve, el 74LS47 está bien, recordar que son 15 display de 7 seg. Antes que nada corrijo, ya que no puedo cambiar el título, son 132 Leds.
decodificador-7-segmentos-7447-74ls47.jpg


Por lo que se ve, hay que ingeniárselas para controlar tantos display de 7 seg. ya que debo evitar artarme de usar muchos IC para su control. Por lo que he estado mirando aquí, parace buena opción.

td_libs_LedControl_2.jpg


Fuente:
http://www.pjrc.com/teensy/td_libs_LedControl.html

Hoja de datos (Datasheet):
MAX7219/21

Mirando este vídeo parace que no usa mucho electrónica.

Saber más sobre él.


Puedes sacar conclusiones de como diseñar. supuestamente los Leds normales sonde 2V a 25mA de consumo.

He pensado lo del PWM, también como una resistenca ajustable y controlar el brillo directametne.

Un saludo.

PD: Como dato curioso...
 
Última edición:
No entiendo como funciona el "Charlieplexing".

Si solo analizamos los 2 primeros displays, entonces para encenderlos:

- Display 1 activa el puerto 0.
- Display 2 activa el puerto 1.

Supongamos que es necesario encender el 1er display y es necesario encender el segmento "a" (puerto 9) y "." (puerto 1), como el segmento "." de 1 está conectado a la habilitación del display 2, lo terminás habilitando también, quedando encendido:

- Display 1: "a" y "." (puerto 9 y puerto 1).
- Display 2: "a" y "." también (puerto 9 y puerto 0).
 
Última edición:
Holassssss:

Mirando el MAX7219 cuesta entorno 10 € en España, 8 € como barato, casi 12 € como caro. Lo bueno que tiene es que puedes controlar de 8 a 64 Led independiente en maya.

MAX7219app.png


Es 8 x 8 = 64 Led. Me sale más barato usar dos PIC16F886 por 3 € cada uno comunicarlo en I2C que el propio MAX7219.

Por lo que veo, mirando pines y la comunicación debe ser por I2C o más bien SPI que es más rápido. Mirando que 132 Leds y los PIC16F886 los consigo en mi tienda habitual por 3 € cada uno, el PIC16F887 no lo tienen.

PIC que tienen ahora mismo en el local más cercano que tengo. (En España). En internet está más caros o más baratos depende donde mires.
PIC18F2550 por 12.84 € (¡¡¡Qué caro por Dios!!!).
PIC16F4550 por 8.13 €
PIC16F88 por 8.35 € (Como si fuera de oro).
PIC16F886 por 3 €.
PIC16F84A por 4.07 €
PIC16F84 por 10.70 €
PIC16F27Apor 3.10 €
PIC16F628 por 3.10 € (Tampoco el A).
No pongo más que me entra depresión ver algunos precios.

Recordar que Arduino es el cerebro y estos PIC e incluso un ATmega328P-PU o también IC de la serie 74 son esclavos o complementos para controlar 132 Leds independientes tipo maya. No olvidar quehay que controlar el Aruidno 33 pulsadores y 13 interruptores con un total de 46 entradas digitales.

Con todo esto, hay que saber que IC escoger y protocolo de comunicación incluido para controlar estos Led.

c-874724.jpg


Un saludo.
 
mmm... yo implementaría algo como lo que dijo Daniel, 3 shifter de 8 bits para controlar las columnas.

Con un poco de electrónica lógica, evitás tener tantos uC y comunicaciones que solo agregan más posibilidad de fallar.
 
Estoy tanteando entre lo que dice Daniel con el 74xx y el MAX7219.

Lo que me preocupa que tantos Led que tiene, hay que usar una fuente alimentación externa de 5V y vete a saber el consumo total, al menos que aguante 1 A.

Supongamos que usemos la idea de Daniel. Recordar que se usará 15 display de 7 segmentos.
Los 74SL47/48 no encienden LEd libre, sino tiene sus códigos para que se muestren una lista ya programadas de salidas.


bcdto7seg.bmp

functiontable.bmp


Si son 15 Display de 7 seg. ¿Cuántos 74Sl47 se necesitan?

¿Una por cada display? Eso seguro. :D

Con dos MAX7219 funciona igual y tiene mayor control sobre Led independiente ya que funciona tipo maya.

Deja ver que me dice el colega si le interesa así, es el que va hacer la compra de los componentes finales cuando todo esté funcionando en Proteus simulado. ;)

1) Hago unas preguntas. ¿En qué se diferencia entre el 74SL47 con el 74SL48?

2) ¿En qué se diferencia el MAX7219 con el MAX7221?

Será que no se mucho inglés y no aprecio los cambos. En cuanto a los MAX, solo veo que cambia el pin 12, para el 7219 se llama LOAD y el 7221 CS. El 7221 dice Chip Select, vale, para seleccionar un chip. Parace ser que sihay varios MAX, uno es el 7219 y los demás son el 7221. ¿Es así?

Saludo.

PD: Buscando información, por casualidad encontré un comprobador de Led, pueden tener ideas para fabricarse uno. ¿Realmente esto hace falta?
 
Vamos por parte, porque sino es un lío de información que a larga no se termina de entender tu aplicación.

Saco en limpio del último post que necesitas manejar 15 displays 7 segmentos.

Si vas a multiplexar con un uC, el 74SL47 desaparece del proyecto, justamente esa codificación la hacés con el propio uC.

De la idea de Daniel, yo tomaría los shifter, son 15 displays => 2 shifter de 8 bits (podrías controlar 16 displays).

Los problemas que te vas a encontrar son:

1- Si los puertos del uC son capaces de suministrar la corriente necesaria a c/segmento. Pensá que tal vez no alcance con 20mA pico y debas tener que entregar mucha más corriente.

2- Efectivamente la corriente que deberá suministrar la fuente es importante.

¿Cómo sería el circuito?

Similar al de multiplexación que subistes.

¿Qué vas a tener que calcular?

Las corrientes pico, eso lo hacés así:

https://www.forosdeelectronica.com/...isplays-pueden-multiplexar-112175/#post886693

De esta forma vas a tener algo así:

uC (7/8 puertos) => Buffer (si es necesario) => Displays (por ej. cátodo común)

Displays (cátodo común) => Salida de los shifter (o transistores si las corrientes son elevadas)

uC (un par de puertos) => Entrada del 1er shifter que estará conectado al 2do shifter.
 
Última edición por un moderador:
Buenas:

Parece ser que se usará una fuente externa para los Led, 5V con el regulador 7805 que aguanta hasta 1 A.

En los bordes de la Matriz de 8x8=64 Led, se usarán transistores, que son unos 16 en total si no me equivoco. El µC tiene se conecgará a la base del transitor con su resistencia dicha matriz.

Pienso que de esta manera, los Led no tira del microcontrolador, sino de la fuente externa, y en la base del transistor solo necesita un poco de corriente mínima para exitar el transistor y empiece a conducir.

Dejo claro que se usará 15 display de 7 segmentos del cual 4 de ellos se usará el punto Dp decimal.

Si optamos por usar 74LS47, es uno por cada display y no tengo libertad como una matríz.

En cuanto a usar el MAX7219/7221, parece ser que el amigo se gastará dinero en ello. El protocolo a usar es SPI.

Se usará este esquema.
MAX72XX_Schematic.jpg

Ahora falta una matriz de pulsadores y los interruptores directos.

Un saludo.
 
Si optamos por usar 74LS47, es uno por cada display y no tengo libertad como una matríz.

En realidad es sólo uno para TODOS los displays, la idea es utilizar el estilo del MAX, multiplexando el común de todos los displays para elegir cual de todos encender en un momento dado.
lo del punto decimal se podría controlar por medio de un registro de desplazamiento alterno.
Es necesario considerar también la velocidad de refrescado para que no se observen parpadeos, no se si con 15 displays se alcancen a refrescar tan rápidamente para no perder brillo en ellos
 
Jola:

Espero que no se muestren pérdidas de brillo.


¿Lo de ajustar brillo de podrá hacer con el MAX7219 bajo potenciómetro?

Salu2.
 
El brillo dependerá de la potencia del LED.

La potencia del LED está dada por la integral de la tensión instantánea por la corriente instantánea.

Como en un diodo (o LED) la tensión instantánea es constante (Vdiodo o Vled), dicha potencia dependerá de la corriente media.

A su vez, la corriente media depende del duty y de la corriente pico (resistencias limitadora), ahí entra el tópico que te pasé.
 
Vas a tener que calcular bien las resistencias limitadora en función de la corriente media que buscas y la corriente pico que soportan los displays.

Ya sabes que el duty es de 1/15 y si tomás una frecuencia de refresco de 50Hz, el tiempo de habilitación que tendrán los displays será 20mS/15.

Tené muy en cuenta si esos IC que pusistes, son capaces de manejar la corriente pico de c/segmento e incluso mucho ojo con los puertos de ese IC que tendrán que drenar la corriente total de dichos segmentos.
 
Última edición:
Buenas:

Para queno se quede sin corriente, según he visto por Internet, pues poner una fuente externa. Es muy importante.

Gracias por los consejos mi muy distinguido amigo.
 
Si señor, para eso necesitas un integrado simil al ULN2803/4, que si no me equivoco es el UDN2983/4 (no lo busques en el proteus que no lo vas a encontrar)

Del lado del pin común (cátodo común) ahi si la corriente te dá usá el ULN, de lo contrario vas a tener que usar transistores comunes de media potencia como los BD.

De esa forma la corriente la suministra esa fuente que decís.
 
Pensaba que ese integrado es para transistores con relés o motores DC.

Pues egún ejemplo del datasheet oficial del MAX7219, no necesita transistores, ya los lleva dentro. Esa es una de las ventajas de este IC y...

...por eso es muy cara y necesitamos dos.

Saludo.
 
Atrás
Arriba