¿Cómo puedo usar Charlieplexing con LED RGB de ánodo comunes?

0

Tengo una placa de desarrollo basada en ESP32 (LoLin32) que tiene 26 pines de E / S digitales. Quiero conectar 25 LEDs RGB de ánodo comunes. Conectarlos de forma "normal" requeriría 75 pines de E / S, que no tengo por supuesto. He oído que podría usar Charlieplexing para conectar n * (n-1) LED a n pines, pero no entiendo bien cómo podría usar Charlieplexing con LED RGB de ánodo comunes.

Edit: no necesariamente tiene que ser Charlieplexing, otras soluciones también son bienvenidas. Sé acerca de las cosas de WS2812-ish, pero eso es algo que quería evitar.

    
pregunta wb9688

4 respuestas

3

No puedes usar Charlieplexing con ánodo común, ni cátodo común. Necesitas tener los ánodos / cátodos en cada pin.

Una solución relativamente simple en su caso sería adquirir un par de registros de turnos, el 74HC595 te da 8 salidas adicionales al costo de tres pines en el ESP32. Puede conectar en cadena el 74HC595 y tener 16 salidas adicionales y aún solo pagando un total de tres pines en el ESP32.

Para cubrir 75 LED, usarías 75/8 = > 10x 74HC595.

Si en cualquier momento usted tendrá solo un LED activado (que Charlieplexing le obligaría a hacer), entonces puede salirse con una sola resistencia, que se encuentra entre el ánodo común y su suministro de voltaje.

Si en algún momento usted tiene varios LED activados (que puede hacer con 74HC595), entonces debería colocar una resistencia para cada LED. En otras palabras, entre cada pin en su 74HC595 y sus LED. Si hace lo que dije primero, con un solo resistor, entonces los LED se oscurecerán a medida que se activen los LED. Pero con un resistor para cada LED, el brillo permanecerá igual independientemente de si tiene 1 o 30 LED activados.

Actualizar

Después de ver la respuesta de Transistor, me di cuenta de que obviamente tienes 25 LED RGB = 4 pines cada uno. No es una matriz grande de 5x5 con un solo ánodo común, como pensé al principio.

Esto significa que realmente puedes resolver esto de una manera mucho mejor de lo que te propuse por primera vez.

Esto es lo que haría si fuera tú:

  • Conecte cada pin rojo de los 25 LEDs juntos
  • Conecte cada pin verde de los 25 LED juntos
  • Conecte cada pin azul de los 25 LEDs juntos
  • Use 4x 74HC595 en lugar de 10, obtendrá 32 pines
  • Conecte una resistencia de 220 Ω en 25 de las 32 salidas del 4x 74HC595
  • Conecte los ánodos de los 25 LED a esas resistencias
  • Conecta el rojo & verde y amp; azul a algunos pines restantes en el último 74HC595

De nuevo, solo tomará 3 pines en tu ESP32, pero solo 4x 74HC595 en lugar de 10. Y 25 resistencias en lugar de 1 resistencia, o 75, según cómo lo hagas.

Una cosa muy importante a tener en cuenta, como lo mencionó Transistor, es que los diferentes LED tienen diferentes tensiones directas. Esto significa que 220 make hará que el LED rojo también brille y los otros dos serán más débiles porque tienen una mayor caída de tensión directa. Esto, a su vez, significa que cualquier esquema de modulación que esté implementando debería dar menos tiempo al rojo. Y no debes usar rojo, verde o azul al mismo tiempo. Solo puede activar un LED (alimentando su ánodo a través de su resistencia) a la vez.

    
respondido por el Harry Svensson
1

*Figura1.UnLEDde6pinespermiteelaccesoalánodoycátodoindividualesdecadaLED.Fuente: LED con más de dos pines .

No. Charlieplexing sería posible con LED RGB de 6 pines pero no con un ánodo o cátodo comunes.

simular este circuito : esquema creado usando CircuitLab

Figura 2. Un esquema de caracterización RGB necesitaría acceso a ánodos y cátodos individuales. En este ejemplo D1, 2 & 3 son el LED RGB y D4, 5 y amp; 6 son otro.

Sería posible fabricar un LED emparejable de 6 pines, 2 x R, 2 x G, 2 x B emparejados para este propósito, pero el mercado sería pequeño.

Tenga en cuenta que otro problema con la aplicación de los LEDs sería la diferencia de los voltajes directos.

    
respondido por el Transistor
1

No puedes.

Multiplexación regular usando n controladores de columna y m * 3 controladores de fila (y m * 3 resistencias si no son de corriente constante), donde myn son enteros.

Así que si seleccionas n = 5 y m = 5 necesitas 5 + 15 = 20 pines. El ciclo de trabajo sería 1/5 = 20%. Por lo tanto, para una corriente promedio de 5 mA necesitará una unidad de fila de 25 mA y una unidad de columna de 375 mA, que también será la corriente máxima para toda la pantalla.

También puede utilizar un registro de desplazamiento (por ejemplo, 2x HC595) para los datos de la fila, dos relojes y un dato, por lo que 8 pines, sin emplear ningún truco. También puede usar una unidad estática de los HC595, en cuyo caso necesitaría 5 veces más y 5 veces más resistencias, pero no otros componentes.

O use los LEDs RGB o RGBW direccionables de estilo WS2811 y evite todo ese lío, además de obtener el control de brillo PWM de dados individuales sin ninguna sobrecarga de software.

    
respondido por el Spehro Pefhany
0

En la siguiente figura, la matriz de LED consta de tres LED de ánodo comunes conectados entre sí.

La señal PWM creada por el controlador es amplificada por un transistor antes de ser aplicada a la matriz. La amplitud de 5 V es demasiado baja para conducir la matriz directamente. Si el tamaño de la matriz aumenta, se deben conectar rutas adicionales al multiplexor y posiblemente se requieran transistores adicionales para la amplificación.

Este circuito es de un OSRAM App Note: LED de conducción con un microcontrolador PIC

    
respondido por el Misunderstood

Lea otras preguntas en las etiquetas