Para el LED, la forma más obvia de hacerlo es tener una salida para cada fila y cada columna del tablero de ajedrez: un total de 8+8=16 pines. Los ánodos pueden ser conectadas a la fila de los cables y los cátodos a la columna de alambre. Para que el LED se desea a la luz que haría su ánodo cable positivo (lógica 1) y el cátodo cable negativo (lógica 0), mientras que el mantenimiento de los otros en el reverso del estado (para el resto de los LED tienen neutral o polarización inversa.)
Yo estoy haciendo una suposición aquí que el microcontoller da suffciently de alta/baja tensión para que usted será capaz de salvar un LED de uno a otro. Si ese no es el caso, usted tendrá un transistor o buffer para cada línea. Con 5V de alimentación está apretado, teniendo en cuenta que el LED deje caer sobre 2V y desea una razonable caída de voltaje a través de la actual de la resistencia limitadora (nota: sólo tiene que instalar estos en cualquiera de las líneas o la columna de las líneas, no tanto.)
Si las salidas están tri estado (que es, además de la lógica 0 y 1 lógico, se puede ajustar a un estado de alta impedancia, tal vez por el temporal de configurar como entradas), a continuación, usted puede conseguir inteligente y el uso de un 4x8 cuadrícula, con los LED conectados en antiparalelo pares. Es importante establecer salidas no utilizadas de alta impedancia en esta configuración, de lo contrario no deseados LED se iluminará.
En cualquier caso, usted tendrá que pensar sobre el consumo de corriente, y si es aceptable el riesgo de la posibilidad de un error de software de iluminación LED en una fila a la vez (que si no se explica, podría sobrecorriente que la fila de la línea de la microcontrolador.)
El caso de los sensores es más complicado. Voy a suponer que el uso de sensores resistivos, aunque fototransistores no son necesariamente garantizado para llevar a cabo en una sola dirección.
Usted puede utilizar el mismo 8 de la fila de las salidas que se utiliza para iluminar el LED, pero vas a necesitar columna de 8 entradas dedicadas a la detección. Usted, sin duda, han visto circuitos para teclados como este. Tenga en cuenta que estas son sólo diseñado para tener una tecla en un momento. Si el usuario presiona 1,3,7 y 9, el teclado es incapaz de detectar si el usuario libera a una de estas cuatro claves porque todavía existe una ruta de acceso actual a través de los otros tres interruptores.
Una solución utilizada en teclados musicales (que son diseñados para tener más de un elemento de la matriz de realizar en un tiempo) es tener un diodo en serie con cada interruptor.
Otra solución sería la de comprar cuatro de 4 a 16 decodificador de ICs con salidas de colector abierto (o drenaje abierto si el uso de MOSFET IC)como este: http://www.unicornelectronics.com/ftp/Data%20Sheets/74159.pdf colector Abierto significa que los resultados de la IC sólo fregadero de la actual, no la fuente. Así que usted puede conectar 16 sensores de 16 salidas del chip, y el común de los otros extremos juntos con una resistencia pull-up (que podría conectar su ADC). Usted trae una salida baja (la realización) y los otros 15 siguen siendo altos (no conductor.) Esto está en contraste con la lógica estándar de salida, donde los otros 15 salidas sería vertido de corriente en el punto común.
La entrada a estos ci es de 4 bits binarios para seleccionar uno de los 16 salidas, pero también tienen una entrada extra para habilitar/deshabilitar el chip. Por lo tanto usted podría tener una matriz de 64 colector abierto fregaderos, conectado a 64 sensores, con los otros extremos de los sensores de todos los commoned a una sola resistencia pull-up y convertidor análogo-digital. Se necesitaría un total de 8 salidas del microcontrolador para esto: de cuatro a tomar de 4 a 16 señales de selección (común a todos los cuatro chips) y cuatro para tomar el habilitar las señales (uno para cada chip.)
EDIT: de 3 a 8 decodificadores (también llamado 1 de 8 = 1 salida de línea de 8) parecen ser más disponibles de 4 a 16, pero 8 IC es mucho más desordenado de 4. Otro tipo de IC que podría ser útil es el contador octal (y su más comunes primo de la década de contador, que puede ser configurado como un contador octal mediante la conexión de su novena salida a la linea de reset.) Estos requieren de una serie de pulso para el avance de una salida a la siguiente, por lo que el necesita menos de e/S de pines en el microcontrolador de la decodificador de IC. Por lo general, tienen entradas adicionales para restablecer y activar. También hay IC llamados registros de desplazamiento, los cuales están disponibles en dos tipos: uno para la conversión de serie a paralelo, el otro para la conversión de paralelo a serie. Por último, hay buffers, que se puede poner entre su Raspberry Pi y su tablero de ajedrez, por lo que el Pi no se destruyen en caso de sobrecorriente. Todos estos pueden ser útiles en la multiplexación de los circuitos.