¿Como manejar 16 LEDs por medio de 1 pin?



Por Internet se pueden encontrar distintas formas para manejar LEDs usando pocas lineas I/O de microcontroladores, pero siempre es un tema recurrente en los foros de electronica.

El siguiente circuito electronico permite manejar 16 LEDs utilizando solo 1 pin de un microcontrolador y dos registros de desplazamiento (shift registers) de entrada serial y salida paralela, puede usarse para manejar barras de puntos o dos displays de 7 segmentos. Si se agrega multiplexación al circuito permite manejar hasta 8 displays de 7 segmentos.

circuito manejar LEDs un 1 pinEl microcontrolador maneja la entrada de clock de los registros. La misma señal también pasa por un filtro RC y maneja las entradas de datos A y B.

El filtro se forma con un resistor de 100 kΩ y las capacitancias de entrada de los pines A y B, produciendo una constante de tiempo (delay) R*C*In2 = 100 kΩ×(5 pF+5 pF)×0.7=0.7 μseg.

filtro RC

Para enviar un cero (lógico) hacia el registro, el μcontrolador tiene que mantener un nivel bajo por 2 μseg, tiempo que es mayor a la constante del filtro. Para enviar un “1” la salida del μcontrolador tiene que estar en alto un tiempo mayor al tau del filtro. El micro puede mandar pulsos negativos de 0,25 μseg o 2 ciclos de CPU, lo cual al ser menor a la cte del filtro no cambia el nivel lógico en las entradas. El flanco ascendente es usado como señal de clock en los registros.

Resumiendo, los datos se envían en los flancos ascendente, teniendo pulsos negativos de corta duración, los capacitores del filtro no tienen tiempo suficiente para descargarse por lo cual el nivel de tensión de la línea de datos se mantiene en un nivel alto, para los flancos ascendentes del clock Teniendo una duración mayor de los pulsos en nivel bajo permite que los capa se descarguen, lo que causa un nivel lógico bajo para un flanco ascendente del clock.

clock datos registro manejar 16 ledsv

En la figura anterior se puede ver que el nivel de tensión para los ceros y unos lógicos son 1, 3 V y 3,1 V respectivamente. El registro tiene un Vih en 2,5 V lo que da suficiente margen. En caso de necesitar otros valores de tensiones, solo hay que variar el tiempo de la señal y obviamente la R del filtro.

El circuito almacena 16 bits en los registros en tan solo 35 μseg.

3 comentarios en “¿Como manejar 16 LEDs por medio de 1 pin?

  1. Pingback: Bitacoras.com

Comments are closed.