El teclado de matriz
Jordi Bartolomé - 2003

1-Introducción
2-Conexiones
3-Componentes
4-Funcionamiento


1-Introducción
Los teclados de matriz son muy utilizados en los proyectos de electrónica debido a su versatilidad, pues permiten disponer de una completa interfaz de entrada consumiendo un número mínimo de puertos de E/S. Esto se puede ver en el teclado de matriz del esquema: en este se ocupan 7 bits (3 columnas + 4 filas), si el mismo teclado se implementase conectando cada uno de los pulsadores directamente a los puertos se ocuparían 12 (uno por cada pulsador). En este caso la diferencia no es muy grande, pero imaginemos un teclado de ordenador con mas 100 teclas: resultaría muy poco eficiente conectar cada una de las teclas a un pin de E/S del controlador del teclado. Esto consumiría 100 pins de E/S. En cambio siguiendo el esquema de los teclados de matriz con 20 pins de E/S tendríamos suficiente para rastrear las 100 teclas.

2-Conexiones
El teclado del esquema consta de 3 entradas (A, B y C) y 4 salidas (D, E, F y G). Las 3 entradas (A, B y C) del teclado van conectadas a 3 bits de salida de algún puerto del microcontrolador. Las 4 salidas del teclado (D,E,F y G) también van conectadas a 4 bits de un puerto del microcontrolador pero en este caso de entrada. Así, desde el microcontrolador se puede escribir sobre ABC (3bits) y leer lo que llega a través de DEFG (4bits).



Fig 1.Esquema de un teclado de matriz de 3x4



3-Componentes
Para montarlo por partes simplemente hay que seguir el esquema del ejemplo, aunque también se pueden encontrar teclados de matriz comerciales (3x4, 4x4...) en las tiendas de componentes electrónicos (no confundir con los teclados de punto común). Las resistencias R1 son las resistencias de Pull-Down y para estas es válido cualquier valor comprendido entre los 330-1000 Ohms. R2 son las resistencias de Pull-Up, y para estas es válido cualquier valor situado alrededor de los 75-100 Ohms.

4-Funcionamiento
A grandes rasgos, la idea general del funcionamiento de los teclados de matriz, es hacer el siguiente ciclo de forma repetida:

1-Rastreo de la columna A:
1.1 - Sacar desde el microcontrolador hacia A un ‘1’ (5V) y hacia B y C un ‘0’ (0V), así únicamente recibirán tensión las teclas ‘1’ ‘4’ ‘7’ y ‘*’. Estas son las teclas conectadas a la columna A, las teclas de las columnas restantes, por más que las presionemos permanecerán inactivas ya que no tienen alimentación, están a 0V.
1.2- Simultaneamente leer lo que llega por los bits de entrada del microcontrolador provinentes desde D, E, F y G (salidas del teclado). En caso de que el usuario este presionando el botón ‘1’ (fila D a 5V) al leer se recibirá ‘1000’, en el caso del ‘4’ (fila E a 5V9 leeremos la combinación ‘0100’, para el ‘7’ leeremos ‘0010’ y para ‘*’ (fila G a 5V) leeríamos ‘0001’. Si en este momento el usuario presiona un pulsador de las otras columnas no pasa nada porque estas no tienen alimentación y no pueden influir sobre lo que esta llegando desde D, E, F y G.

2-Rastreo de la columna B:
2.1-Ahora se envía un ‘1’ (5V) por la columna B, y por las columnas A y C un ‘0’ (0V). Así se activan todos los pulsadores de la columna B y los de las columnas A y C permanecen inactivos.
2.2-Se hace el paso idéntico al 2 pero teniendo en cuenta que ahora las teclas que son activas son: ‘2’ ‘5’ ‘8’ y ‘0’, por tanto si por D, E, F G llega ‘1000’ significa que el usuario esta apretando la tecla ‘2’, si llega ‘0100’ el usuario está apretando la tecla ‘5’, en caso de recibir ‘0010’ significa que el usuario esta apretando la tecla ‘8’, y para ‘0001’ sabremos que el usuario esta apretando la tecla ‘0’.

3-Rastreo de la columna C:
3.1-Ahora se envía el ‘1’ por la columna C, y el resto de columnas permanecen a ‘0’, de forma que solo están activas las teclas de la columna C.
3.3-Se hace el paso idéntico al 1.2 y al 2.2 pero teniendo en cuenta que ahora las teclas activas son: ‘3’ ‘6’ ‘9’ y ‘#’, por tanto si por D, E, F, G nos llega ‘1000’ significa que el usuario esta apretando la tecla ‘3’, si llega un ‘0100’ significa que está apretando la tecla ‘6’, en el caso de recibir ‘0001’ el usuario está apretando la tecla ‘#’.

4-Volver al paso 1:

Por tanto se puede ver que la idea es ir rastreando de forma periódica cada una de las columnas del teclado de matriz, enviando un ‘1’ por cada columna y leiendo lo que nos llega a través de las filas en aquel “instante”. Como se trata de un proceso periódico hay que utilizar alguno de los temporizadores del microcontrolador para marcar el ritmo en que se realiza el ciclo aquí descrito.



Fig 2. Teclado de matriz comercial montado sobre una placa de topos.



Regresar al índice de documentos