Tenemos 30 LEDs seguidos, y queremos encenderlos de izquierda a derecha. Sin embargo, hay muchos para que el Arduino tenga a cada uno en un pin diferente.
¿Hay un IC que puede tomar una salida binaria y una salida en base 1?
Tenemos 30 LEDs seguidos, y queremos encenderlos de izquierda a derecha. Sin embargo, hay muchos para que el Arduino tenga a cada uno en un pin diferente.
¿Hay un IC que puede tomar una salida binaria y una salida en base 1?
Este tipo de LED son comúnmente controlados por registros de desplazamiento. Un registro de desplazamiento toma 3 entradas del arduino (Datos, Habilitar y Reloj), toma un (por ejemplo) número de 8 bits, luego lo envía a 8 pines diferentes. Un ejemplo es el siguiente: Shift Register 8-Bit - 74HC595
Realmente deberías sumergirte en charlieplexing. Con esta técnica es posible conducir muchos leds con solo unos pocos pines. La fórmula es n x n-1. Lo que significa que con 4 pines puede conducir 4 x (4-1) = 12 leds. Imagina que 12 leds con solo 4 pines. Con 5 pines, puede conducir 5 x (5-1) = 20 leds.
Con charlieplexing puede parpadear cada uno de estos leds individualmente o incluso hacer que se quemen todos al mismo tiempo. Se trata de un cableado y software realmente ingeniosos, pero hay mucha documentación al respecto en la red. solo busca en google por arduino y charlieplexing.
Hice un reloj de arena con 20 leds usando solo un Attiny85 y un escáner Larson con 12 leds también usando un Attiny85.
Estoy a punto de escribir una serie detallada sobre charlieplexing en mi sitio web, pero oye, eso llevará un tiempo. enlace
Lo que estás buscando es un decoder o un multiplexer .
La respuesta correcta es a: tome la cantidad de LEDS que tiene y llame a esa cantidad de bits de almacenamiento que necesita. Si tiene 8 LED, debe conectarse a 8 bits de almacenamiento externo. A continuación, deberá encontrar un protocolo de interfaz con un número igual o menor cantidad de pines de los que tiene. Si solo tiene 3 pines GPIO externos, puede utilizar la interfaz SPI o la interfaz IIC.
Considere esta parte como una solución:
Está bien, el código del termómetro. No sé de ningún decodificador comercial para eso.
Si te gusta la lógica programable, creo que un solo CPLD como el XC2C64 podría programarse para controlar (digamos) 50 LED con una entrada de 6 bits. Eso te da una unidad estática.
Una forma más fácil y económica es utilizar los controladores de fuente de unidad de disco multiplexado 8 (UDN2803 o similar) con un puerto de su micro y 8 controladores de disipador (ULN2803) con otro puerto. Eso permitirá que se conduzcan hasta 256 LED con solo 16 pines de puerto, dos chips y 8 resistencias.
Es posible que los controladores de origen tengan que ser MOSFET o algo más fuerte, ya que deben conducir la corriente promedio de un solo LED * 16 (con un ciclo de trabajo del 12.5%). Los controladores del fregadero deben manejar la corriente promedio de un solo LED * 8 (pero todos pueden estar encendidos a la vez). El diseño puede ser más conveniente utilizando un registro de desplazamiento y una unidad estática; el diseño de la matriz es mejor para un rectángulo, no tan bueno para un gráfico de barras lineal.
Lea otras preguntas en las etiquetas led integrated-circuit arduino binary