Voy a suponer que usted desea de la unidad de la matriz de ánodo común, es decir, un ánodo de línea a línea.
Ya se mencionó la transistores para los ánodos, y eso es correcto, usted los necesita, porque usted tendrá que suministrar corriente para hasta 9 LEDs en un tiempo, y eso es demasiado para una lógica de la IC como un integrado 74hc595 registro de desplazamiento. Que será de 9 de la PNP transistores.
Pero usted también necesitará transistores para los cátodos; usted quiere ir en coche a las 9 salidas de baja simultáneamente, y en el 20 mA por LED (un valor típico) eso es demasiado para un integrado 74hc595. Que el 9 de transistores NPN.
Usted tiene el control de 18 líneas, así que usted puede utilizar tres 74HC595s para que, al cambio de 18 bits para cada análisis fila: 9 bits para seleccionar el ánodo de la línea, que es 1 poco baja, el resto de alto y 9 bits para los cátodos de alta para, los bajos para desactivar.
La buena noticia es que usted no necesita separar registro de desplazamiento para los botones: conecte cada uno de ellos a un ánodo de la línea, con los otros pines atados a una entrada, y conectar una resistencia pull-down en esa entrada.
Ahora, cada vez que se escanea un ánodo de la línea se puede ver en la entrada si el botón está presionado; de entrada alta = presionado, de entrada baja = libertad.
Si se espera que los usuarios se presiona los dos botones a la vez (siempre!) usted tendrá que poner los diodos en serie con los botones para evitar que otras filas de LEDs en el que el seleccionado de la luz.
edición de volver a tu comentario
En el sketch tiene los LEDs, resistencias en las columnas, que está bien si usted conduce la pantalla una fila a la vez. De lo contrario, la resistencia va a compartir la corriente para todos los LEDs en una fila, y el brillo puede variar con el
el número de LEDs que son. En mi esquema de abajo me la trasladó a las filas, de modo que cada LED tiene su propia resistencia.
Los círculos representan los LEDs. El microcontrolador de entrada será retirado de baja por la resistencia. Si uno de los botones es presionado, la entrada va a estar muy alto cuando la asociada a la columna seleccionada. De modo que, en cada columna de escaneo puede comprobar el estado de un botón. Los diodos prevenir la iluminación de los LEDs en otras columnas de la activa si hay más de un botón es presionado de forma simultánea.