5 votos

¿Cómo puedo controlar 8 LEDs utilizando sólo 5 pines de un microcontrolador?

¿Cómo puedo controlar 8 LEDs utilizando sólo 5 pines de un microcontrolador sin utilizar ningún registro de desplazamiento o expansores de E/S?

Por "controlar" me refiero a encender o apagar un LED o un conjunto de LEDs, no sólo a encender uno cada vez como Charlieplexing.

Editado : Esta consulta tenía un límite de no utilizar ningún dispositivo o IC que no sea el microcontrolador, cualquier posible número y combinación de cables y resistencias. Algunas respuestas tienden a ser útiles para las personas que tienen la misma pregunta, pero el uso de dispositivos o ICs está permitido.

14voto

8 leds encendidos/apagados tienen 2^8 = 256 estados posibles

5 pines de control on/off tienen 2^5 = 32 estados posibles

Como 32 < 256, y no se pueden utilizar registros de desplazamiento ni expansores de E/S, sería imposible...

Pero si los 5 pines de control son los pines de un MCU, es necesario utilizar sólo uno de ellos para controlar el proceso de multiplexación 4 * 2. Uno de los pines puede ser 0V o +Vcc, cada uno de estos dos estados permite un conjunto diferente de 4 LEDs conectados a los otros 4 pines.

"nos dio una pista : utiliza una combinación de conexión por cable si aparece un problema intenta resolverlo en tu código"

Como se trata de una pregunta teórica en una maldición, creo que esta sería una posible respuesta correcta. Se trata de una especie de multiplexación 2*4, utilizando sólo 5 pines.

Si necesita controlar un mayor número de LEDs, charlieplexing permitiría controlar hasta 20 LEDs.

schematic

simular este circuito - Esquema creado con CircuitLab

10voto

Shaun Puntos 938

Utilice LEDs direccionables como WS2812B o similar.

Sólo necesitarías 1 pin (más alimentación y masa) para controlar cientos de ellos. Están disponibles individualmente o como parte de una tira de LED (que normalmente puede cortarse en tiras más pequeñas o LED individuales).

6voto

Anonymous Puntos 91

Existen esas cosas que se conocen como "películas", en las que una imagen se enciende y apaga rápidamente, dando a la débil mente humana la ilusión de que la imagen es continua.

Puedes conseguir algo parecido haciendo que un multiplexor (3 señales selectoras y una señal estroboscópica) encienda (o no) los 8 LEDs de uno en uno.

Y si realmente quieres ponerte elegante, puedes añadir un condensador a cada LED para mantenerlo encendido durante un periodo de tiempo después de que se apague su señal.

1voto

user1532080 Puntos 125

8x flip-flops D y un multiplexor 8:1 harán el trabajo. Elige un flip-flop D cuyo valor cambie en el flanco ascendente.

Conecta el pin "value" del µC a todos los flip-flops D. Conecta el pin "clock" del µC a la entrada de mezcla 8:1. Conecta cada salida del mux a la señal de reloj de un flip-flop D. Conecte 3 clavijas de "dirección" del mux al µC.

Ahora, para cambiar el estado de un LED, configuras tu pin "valor", programas el pin "dirección" para que apunte al flip-flop D correcto, y finalmente, haces un ciclo bajo-hi en el pin "reloj".

Ahora tienes un control individual completo de cada LED.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X