Tabla de contenido:
- Paso 1:20 LED en 5 pines
- Paso 2: Charlieplexing
- Paso 3: Ponlo en funcionamiento
- Paso 4: más pequeño y más versátil …
- Paso 5: Itty Bitty
- Paso 6: software
Video: Cómo manejar muchos LED desde unos pocos pines de microcontrolador: 6 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
Utilizando el hecho de que muchos pines del microcontrolador tienen tres estados (+ V, GND o "alta impedancia", puede manejar N * (N-1) LED desde N pines. Por lo tanto, el pequeño microcontrolador de 8 pines como un PIC12Fxxx o un ATtiny11 puede manejar 20 LED en sus cinco pines de salida disponibles, y todavía le queda un pin para algún tipo de entrada. Consulte también
Paso 1:20 LED en 5 pines
La cosecha actual de microcontroladores de bajo número de pines (6 pines a 20 pines en
todo el paquete) tienen un precio atractivo y son `` bonitos '', pero surge la pregunta de cómo puede hacer el mejor uso de esos pines para aplicaciones comunes como la conducción de LED. Un enfoque de conexión directa para controlar los LED consume un pin por cada LED. Un esquema de multiplexación tradicional en el que las filas de ánodos LED son impulsadas por un juego de N pines y el cátodo común de cada fila es impulsado por otro juego de pines M logra encender N * M LED con N + M pines. Sin embargo, en un procesador con solo 5 o menos salidas (como es el caso de la mayoría de los microcontroladores de 8 pines), esto apenas le brinda más salidas que la unidad directa.
Paso 2: Charlieplexing
Suponiendo que los pines de salida son en realidad triestados (activo alto, activo bajo y alta impedancia (entrada)), también es posible compartir los controladores de fila y columna y controlar N * (N-1) LED con solo N pines. Un pin está conectado a cátodos comunes de una fila de LED y se conduce bajo, y los pines N-1 restantes se conectan a los ánodos y se colocan en alto para iluminar esa columna, o se dejan como entradas para dejar el LED apagado. Maxim llama a esta técnica "Charlieplexing" y la describe en (1); Microchip también menciona esto en su documento (2) (e implementaciones en la placa PICKit 1 también.) (1) "Charlieplexing - Multiplexación de pantalla LED con recuento de pines reducido" https://www.maxim-ic.com/appnotes. cfm / appnote_number / 1880 (2) "Consejos y trucos Microcontroladores FLASH PIC de 8 clavijas" https://ww1.microchip.com/downloads/en/DeviceDoc/40040b.pdf(3) LED de Charlieplexing: la teoría y las instrucciones de rgbphil
Paso 3: Ponlo en funcionamiento
Esto impulsa 20 LED de un ATtiny11. Una versión anterior de esta placa fue
realmente construido y aparece como la foto de la página principal. Me temo que la imagen del esquema es bastante desesperada; Necesitas que Eagle te diga qué señales están conectadas y dónde.
Paso 4: más pequeño y más versátil …
Dado que la mayor parte de la placa está ocupada por la matriz de LED, podemos hacer espacio
para un chip Attiny O un chip microchip PIC12F. Reduzca los LED a 3 mm y vaya a una placa de doble cara, y obtenemos algo de 27x44 mm. Por desgracia, esta placa aún no ha sido probada …
Paso 5: Itty Bitty
Microchip, por supuesto, tiene sus chips PIC10F de 6 pines, capaces de conducir un
solo 6 LED de los 3 pines de salida. Esto tiene aproximadamente 16 mm de diámetro. Pasar a 603 LED te permite ser un poco más pequeño, pero no estoy seguro de cuál es el punto.
Paso 6: software
El software se vuelve un poco complicado por varias razones:
1) para los PCB mostrados, los LED están dispuestos de una manera que es conveniente para el diseño del PCB, en lugar de en el orden de bits "correcto". En mi opinión, esta es la forma de hacer las cosas, pero significa que Fila 1 no necesariamente significa bit 1, o coluimn 3 no significa bit 3. Esto requiere un nivel de mapeo entre el direccionamiento habitual de fila / columna y el bits que necesitan configuración. 2) Dado que se utilizan los mismos bits para ánodos y cátodos, la conexión común (fila) para algunos bits puede estar en el medio de bits controlados (columna). Eso significa que debe cambiar los bits de columna dependiendo de si están antes o después del bit de fila para ese conjunto de columnas. 3) Tiene que derivar palabras de salida tanto para el ioport como para el registro de dirección del puerto. El código ASM adjunto para ATtiny11 es una "prueba de concepto". Es vergonzosamente no optimizado y mal comentado, pero es todo lo que tengo escrito hasta ahora.
Recomendado:
PCB extensor de E / S versátil para controlar muchos tubos Nixie con I2C: 9 pasos (con imágenes)
PCB extensor de E / S versátil para controlar muchos tubos Nixie con I2C: Actualmente hay mucho interés en dar vida a los tubos nixie antiguos. Hay muchos kits de reloj de tubo nixie disponibles en el mercado. Parecía haber incluso un animado comercio de viejas existencias de tubos nixie rusos. También aquí en Instructables allí
Controlar varios LED con Python y los pines GPIO de su Raspberry Pi: 4 pasos (con imágenes)
Controlar varios LED con Python y los pines GPIO de su Raspberry Pi: este Instructable demuestra cómo controlar varios pines GPIO en su RaspberryPi para alimentar 4 LED. También le presentará parámetros y declaraciones condicionales en Python.Nuestro Instructable anterior Usando los pines GPIO de su Raspberry Pi para
¡Controla muchos servos con Arduino !: 4 pasos (con imágenes)
¡Controla muchos servos con Arduino !: Al principio debería decir algo. No tenía bellas imágenes. Entonces, tomé las fotos de bildr.blog. Sabemos, un Arduino UNO no tiene muchos pwm pwm para controlar muchos servos. Entonces, a menudo caemos en un problema para controlar más servos por un arduino
Enchufe ISP de 6 pines a 8 pines: 4 pasos
Enchufe ISP de 6 pines a 8 pines: La razón por la que construí este proyecto principalmente fue para programar el ATTiny45, que tiene una conexión de 8 pines, mientras que mi USBtinyISP (de Ladyada) solo tiene una conexión de 10 pines y 6 pines. Después de husmear en Internet durante aproximadamente 3-4 semanas, no encontré nada qué
Cómo leer muchos interruptores con un pin MCU: 4 pasos
Cómo leer muchos interruptores con un pin de MCU: ¿Alguna vez has estado trabajando en un proyecto y el proyecto sigue creciendo y creciendo, mientras le agregas más cosas (a eso lo llamamos Creaturismo Feaping)? En un proyecto reciente, estaba construyendo un medidor de frecuencia y agregué una función de cinco