¿Arduino + Max7221 + Matriz LED de 4 dígitos y 7 segmentos de ánodo común?

Estoy tratando de conectar una matriz de LED de 7 segmentos y 4 dígitos de ánodo común a mi Arduino a través de un IC Max7221.

Aquí hay un pinout difícil de ver (¡lo siento!) para mi conjunto de LED (mi conjunto de LED es el ánodo común inferior, LFC0566XXX)

Aquí está la hoja de datos del Max7221 IC que estoy usando.

Estaba siguiendo un tutorial en Arduino Wiki y decía que el Max7221 no funcionará con conjuntos de LED de ánodo comunes como el que tengo. Sin embargo, los comentarios en la página del producto Max7221 Sparkfun dicen que es posible usarlo:

Puede manejar pantallas de ánodo comunes con este chip muy bien. Tiene 8 salidas de cátodo y 8 salidas de ánodo. Lo único que pierde es el decodificador de segmento BCD-7, que funcionaría extrañamente conectado a una pantalla de ánodo común de 7 segmentos. Pero si solo le está diciendo al chip qué segmentos encender directamente, funcionará bien de cualquier manera.

¿Cómo puedo conectar mi conjunto de LED al Max7221?

Respuestas (2)

No creo que pueda ejecutar razonablemente su pantalla (o cualquier pantalla de ánodo común de varios dígitos ) con este chip. Es posible que pueda arreglárselas para manejar una pantalla de un solo dígito a través de un poco de creatividad conectando el ánodo común a VCC y no conectando ninguno de los pines DIG del chip.

La forma en que funciona el chip es que los pines SEG* "generan corriente en la pantalla" y los pines DIG* "drenan corriente del cátodo común de la pantalla". La forma en que debe conectarse es que el cátodo común de cada dígito en el 7SD está conectado a un pin DIG correspondiente y los pines SEG están conectados a los pines del segmento de ánodo correspondiente del 7SD. Usted carga en serie "lo que debe mostrarse" en la memoria del chip y algunos ajustes de configuración y lo toma desde allí.

El chip "escanea" la pantalla de 7 segmentos por usted y lo hace, para cada dígito N:

  • cambiar el pin DIG N a GND (y todos los demás pines DIG a alta impedancia).
  • configurando todos los pines SEG a lo que está almacenado en su memoria (opcionalmente decodificando el valor almacenado como BCD primero)
  • luego pasar al dígito N+1 módulo el número de dígitos que está escaneando...

Simplemente no hay forma de que pueda aprovechar el algoritmo de multiplexación del chip porque se basa en los pines DIG que conducen el cátodo común a GND para "habilitar" cada dígito a su vez.

Podría insertar un búfer de inversión entre todos los pines SEG y DIG del chip y la pantalla y luego se comunicaría con el chip y lo conectaría "normalmente" como si fuera una pantalla de cátodo común. No vale la pena si me preguntas...

Mmm... buen punto. ¡Creo que me rendiré y obtendré una pantalla de cátodo común! :D
Revisé bien la hoja de datos y esta es también la conclusión a la que llegué: no estoy seguro de qué estaban hablando en Sparkfun, aunque un tipo dice que lo hizo funcionar (aunque no estoy seguro de qué tan bien ;-)) Si podría impulsar cualquier combinación de los pines DIG sería posible, pero la hoja de datos solo menciona seleccionar uno a la vez para cada segmento habilitado.

Tenga en cuenta que una pantalla de 8 dígitos es simétrica: todos los pines de dígitos se conectan a ocho LED cada uno, y todos los pines de segmento se conectan a ocho LED cada uno. En una pantalla de cuatro dígitos, los pines de cuatro dígitos se conectan a ocho LED y los pines de ocho segmentos (incluido el punto decimal o los dos puntos) se conectan a cuatro LED cada uno. La diferencia entre 'ánodo común' y 'cátodo común' es si los pines de dígitos se conectan al ánodo o al cátodo.

Entonces, en lo que respecta al chip, en el modo de segmento individual, no hay una diferencia entre las pantallas de ocho dígitos de ánodo común y de cátodo común o las pantallas de cuadrícula de 8x8; controlaría 8 bancos de 8 LED con cada combinación de pin de fuente y pin receptor . A las pantallas de cuatro dígitos les falta la mitad de los dígitos o les faltan los segmentos si los conecta al revés. El chip también se usa con rejillas LED de 8x8, que nuevamente son 8 pines que van a un lado de 8 LED y otros 8 pines van al otro lado de 8 LED.

Para el ánodo común, invierte los roles de los pines y los registros, de modo que las salidas de segmento del chip se conecten a los pines de dígitos de la pantalla y viceversa. Escribir 0xff en el registro del primer dígito en lugar de activar todos los segmentos en el primer dígito, activa el primer segmento en todos los dígitos. No puede usar BCD y tiene que configurar el escaneo como 8 dígitos, ya que tiene 8 segmentos repartidos en los registros, por lo que es más como manejar la mitad de una pantalla de cuadrícula de 8x8 que una pantalla basada en dígitos.

Es más fácil comprar cátodo común dados los precios relativos del chip y las pantallas LED.