Control de N2 -N leds usando N pin (+ interfaz 3 hilos en progreso)

Este es mi primer post con un proyecto de arduino...

Este proyecto permite controlar individualmente N2 - N LED usando N pines ( Charlieplexing - Wikipedia según he leído) usando interrupciones (he usado el Timer1).
Son dos clases.
Por una parte matrixDisplay simplifica el acceder a cada LED indicando una coordenada X, una Y y el valor encendido (3 - 2 o 1) y apagado (0). se puede escribir y leer el estado de cada Led
Adicionalmente, MxLedDisplay incorpora funciones de texto (compatible con LcdDisplay en casi todo)

el pero es :
no existe una matriz de led hardware única (que yo sepa) y cada un monta los led como quiere o puede.
para funcionar correctamente hace falta configurar las librerías.

a) matrixDisplay.h
Como he hecho 2 matrices (6x5 y 6x15) he dejado 2 configuraciones diferentes
NPIN - número total de pines que se van a usar
NFILAS - geometría de la matriz de control X
NCOLUMNAS - geometría de la matriz de control Y

se pueden configurar matrices cd M*N LED usando M+N pines, leer el fichero para saber mas(no lo he probado)
se puede configurar un conjunto de registros de desplazamiento , lo que se dice un bus de 3 hilos (tampoco lo he probado)

b) matrixDisplay.cpp
unsigned char leds[NFILAS][NCOLUMNAS] PROGMEM
aquí se describe como están conectados los Led a las salidas. haz una definición para cada conjunto de leds distinto que hagas
(mas detalles en los comentarios)

en el constructor poner un case en el switch(NPIN) para el número de pin que uses
(lo mismo en MxLedDisplay.cpp)
c) font/font_*
He hecho 3 archivos de fuentes, se debe elegir uno antes de compilar (se copia en font.cpp)
son fáciles de personalizar .

d) función ISR el el script inicial (ver ejemplos)

Aún quedan cosas que pulir

un par de imágenes y las librerías

LED-display-6x5-text-t.jpg

LED-display-6x15-text-led.jpg

MxLedDisplay.v-0.35.tbz2 (19.5 KB)

MxLedDisplay.v-0.35.zip (31.6 KB)