recuerda los demultiplexores

0

Estoy trabajando en un proyecto de escuela secundaria donde necesito hacer un tablero de puntuación con 420 LED controlados por un Arduino.

Puedo ver que el demultiplexador 74HC4105 nos permitirá convertir tres pines en 8, pero si seleccionamos el pin 000, ¿la salida permanecerá activada? Si no es así, ¿tenemos que seguir encendiendo todos los LED una y otra vez, y estarán apagados?

Incluso si convertimos 3 pines en 8, necesitaríamos más pines de los que tenemos. ¿Cómo podemos controlar 420 pines con solo 20 (o quizás 56 en el Mega?)

Queremos algún tipo de circuito que recuerde si cada LED debe estar encendido o apagado.

    
pregunta Yishai Berland

2 respuestas

4

Los decodificadores no recuerdan, pero los cierres direccionables y los registros de desplazamiento sí lo hacen. Un 74HC259 funcionará como un demultiplexor, pero las salidas que no se seleccionen conservarán su estado actual a menos que o hasta que se seleccionen. Un registro de desplazamiento 74HC595 tiene dos juegos de ocho flip flops; cronometrar el primer set ("shift clock") hará que el primer flop capture el estado de la entrada de datos, mientras que el segundo captura el estado anterior del primero, el tercero captura el estado anterior del segundo, etc. El estado del octavo aparecerá en un pin de salida donde se puede conectar a la entrada de datos de otro chip. Al marcar el segundo conjunto de pestillos ("registrar reloj"), los contenidos de los primeros ocho se copiarán al segundo ocho.

Usando pestillos direccionables, es fácil configurar un sistema para permitir que los bits individuales se cambien directamente sin tener que recargar todo. Al usar los registros de cambios, es posible controlar un número arbitrario de salidas usando solo tres pines ("datos en", "reloj de cambios" y "reloj de registro"), pero cambiar cualquier salida requerirá volver a cargarlos todos.

    
respondido por el supercat
0

Voy a sugerirte que mires hacia los registros de desplazamiento en serie. Existe una gran variedad de dispositivos de este tipo: mencionaré dos números de pieza, pero hay un dispositivo de 16 canales diseñado específicamente para encender los LED, cuyo número de pieza no recuerdo.

La ventaja de usar registros de desplazamiento en serie es que puede generar una gran cantidad de salidas usando muy pocas líneas desde su controlador.

Las dos partes que uso muy a menudo son las 74hc595 & TPIC6595. La parte 74hc es un dispositivo CMOS estándar con salidas CMOS estándar. Es bueno para varios mA por salida y los uso para controlar los LED directamente (con una resistencia adecuada). El TPIC6595 es similar pero tiene salidas de hundimiento de drenaje abierto buenas para más de 100 mA a un máximo de 60 Vcc. Los uso para conducir relés.

Una de mis tarjetas tiene 4-74hc595 con todas las salidas que conducen los LEDs rojos T1 a través de resistencias 100R. La fuente de alimentación de LED es un conmutador simple que proporciona 4 Vcc, toda la lógica de la placa funciona a +5 Vcc. Otra placa tiene un par de registros de cambio TPIC6595 que controlan 16 relés.

Ambos dispositivos funcionan muy bien.

Un truco que debo mencionar es que puede tener varias cadenas de registros de desplazamiento para aumentar su ancho de banda. Cada cadena de registros de desplazamiento comparte el reloj y las líneas de retención, pero tiene líneas de datos separadas que controlan varias cadenas.

Este truco es útil cuando golpeas tus datos SPI. Por lo general, no es necesario si está utilizando un bloque de hardware SPI en su microcontrolador.

    
respondido por el Dwayne Reid

Lea otras preguntas en las etiquetas