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