Control en serie de 25 LED desde un solo pin


8

Tengo un microcontrolador con un pin digital disponible.

¿Cómo puedo controlar 25 LED?


2
¿Se pueden direccionar los leds por separado o desea activarlos / desactivarlos todos al mismo tiempo?
Vincent Van Den Berghe

Los leds están destinados a ser accesibles por separado. El microcontrolador no está diseñado para alimentarlos, simplemente determinar su estado. Además, por "puerto digital" me refiero a pin.
Archgoon

Respuestas:


11

I2C IO Expander : - Alguna sobrecarga de protocolo, pero debería expandirse a una cantidad muy grande (miles) de LED.

Registro de desplazamiento simple: interfaz simple muerta, los LED pueden parpadear al actualizar si el reloj del registro de desplazamiento no es bastante rápido. El uso de un registro de desplazamiento con doble búfer solucionará esto.


Gracias, esto es exactamente lo que estaba buscando, pero no sabía cómo se llamaban.
Archgoon

2
Eso requerirá al menos un pin, aunque. ¿Los registros de desplazamiento no requieren al menos dos pines, para reloj y datos?
blalor

@blalor: Sí, pero estos dos pines están diseñados para ser compartidos entre múltiples dispositivos I2C.
Kevin Vermeer

I2C es también dos líneas.
XTL

2
Dallas 1-wire solo necesita un pin, se expande a N dispositivos.
Tim Williscroft

16

Shift Register e I2C son buenos, pero solo si hay al menos 2 pines libres. Sugiero que el extensor de puerto de 1 cable Dallas DS2408 será una solución óptima. El código para el acceso al dispositivo de 1 cable de Dallas no es tan complicado y hay muchos exámenes en la web.

Puede usar varios DS2408 conectados a un pin o implementar más lógica después de un solo DS2408, lo que desee.


2
I2C se puede usar si no hay pines libres, suponiendo que su bus I2C se esté usando como tal y no haya conflictos de direcciones.
Kevin Vermeer

5

Con solo 1 pin IO, puede usar un expansor de 1 cable / registro de desplazamiento o agregar otro dispositivo a su bus I2C, como ya se señaló. Lo único que no se ha mencionado aún es la posibilidad de agregar otro esclavo a su puerto SPI.

SPI se denomina protocolo de 4 hilos: tiene dos líneas de datos, una línea de reloj y una línea de selección (además de una conexión a tierra común, pero eso generalmente no cuenta). Sin embargo, los primeros tres se comparten entre todos los dispositivos en el bus, por lo que cada dispositivo después del primero solo toma un rastro / cable más. SPI también aumenta su bus a dúplex completo, pero eso no importará para esta aplicación.


1

Simplemente encadenaría algunos registros de desplazamiento juntos. (Esto reduce la frecuencia con la que puede alternar los LED, por supuesto ...)


1

Si realmente solo tiene 1 pin disponible, el autobús de 1 cable de Dallas parece lo más obvio. Sin embargo, dado que esto es solo de salida, existen soluciones más baratas. Un bus serie PWM que transporta datos y reloj es fácil de configurar; ver, por ejemplo, la página de Roman Black como también lo menciona davidcary. Solo necesita registros de desplazamiento de salida en paralelo en serie como el 74VHC164 , que puede conectar en cascada para tantas salidas como desee (un '164 tiene 8 salidas).
En esta solución, los LED se controlan estáticamente.

Si tiene otras E / S que puede compartir, como SPI de I2C, puede optar por soluciones más lujosas, como Maxim's MAX6950 . El MAX6950 tiene control de parpadeo y brillo, y limitación de velocidad de respuesta, por nombrar algunas características. Los LED están multiplexados, lo que significa que solo necesita un controlador de 16 pines.


0

La respuesta es probablemente "una serie de registros de desplazamiento", pero ¿puede ser más específico en su pregunta? ¿Qué microcontrolador? ¿Qué quieres decir con "puerto digital"? Un solo pin?


Gracias, he hecho la aclaración, y los registros de desplazamiento son lo que estoy buscando. Gracias.
Archgoon

0

25 LEDs dependiendo del tamaño pueden consumir mucha energía para un solo pin digital IO en un microcontrolador. En lugar de conducirlos directamente, probablemente debería usar un simple interruptor FET (para que el IO esté atado a la puerta) para controlar la potencia de la cadena de LED.

Dependiendo de su aplicación, hay otras formas más sólidas de lograr esto. Pero arrojar un fet probablemente te hará trabajar más rápido.

Por ejemplo, si desea activar una señal variable, existen dispositivos más complicados, a veces llamados relés digitales, que le brindan una forma de cambiarla digitalmente.

En cuanto a controlar individualmente 25 LED con un solo puerto IO. Como otros sugirieron, puede usar algunos registros de desplazamiento. Hay soluciones más complicadas que implican comunicarse con otro IC utilizando un protocolo serie (I2C por ejemplo).


0

Roman Black describe el sistema shift1 que le permite controlar independientemente cualquier número de LED desde un solo pin del microcontrolador.

@Fake Name, @Tim, @pingswept sugieren encadenar algunos registros de desplazamiento juntos, el pin de salida de datos DO en uno alimenta el pin de entrada de datos DI en el siguiente. El 74HC595 funcionaría bien. (Quizás algún otro chip funcionaría un poco mejor ).

(@reemrevnivek, con este tipo de SPI encadenado, cada dispositivo después del primero no requiere más pines en el microcontrolador, al contrario de lo que mucha gente dice: ¿por qué los escuchas? :-).

Normalmente esto requiere 4 pines en el microcontrolador: MISO, MOSI, SCLK y pestillo. Como solo está haciendo salida, no necesita un pin de entrada MISO.

Roman Black ha descubierto que con una sincronización muy cuidadosa en una sola salida de microcontrolador, y con algunos ajustes cuidadosos de un circuito analógico, un solo pin de microcontrolador puede controlar un circuito analógico de aspecto simple que separa el SCLK común, el DI pin del primer chip de la cadena (MOSI) y la señal de bloqueo común.

Entonces ese microcontrolador puede controlar 25 LED desde un solo pin.


0

Puede conectar otro microcontrolador a través de ese único pin y hablar con él a través de 1wire (o su propio protocolo si necesita alta velocidad). Entonces ese otro microcontrolador trata con LED.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.