Академический Документы
Профессиональный Документы
Культура Документы
Vamos a explicar como conectar un teclado matricial tipo membrana a un microcontrolador PIC
mediante un sencillo ejemplo. El método que proponemos permite conectar a nuestro microcontrolador
16 teclas usando solamente 8 pines. El código debería ser válido para cualquier microcontrolador,
incluso de otras marcas, aunque siempre habrá que revisarlo y posiblemente realizar algunas
adaptaciones si se migra a otra plataforma, sin embargo, el algoritmo permanece igual con cualquier
microcontrolador.
En nuestra portada mostramos el equipo que hemos utilizado para probar el teclado matricial,
incluido el PIC16F88 en una tarjeta entrenadora y el PICKit 3 como programador/depurador.
La siguiente imágen muestra las conexiones del teclado al puerto B del microcontrolador. La imagen
muestra el teclado en reposo (sin teclas oprimidas).
¿Que pasa cuando se oprime una tecla en un teclado matricial?… la corriente puede fluir a través del
switch y el voltaje de los pines conectados a las filas del teclado (5 V o nivel alto) aparece ahora también
en alguno de los pines RB0 a RB3 según la columna en la que se encuentra la tecla oprimida. La
siguiente imagen ilustra lo que sucede al oprimir una tecla: al oprimir el botón 6 provocamos un cambio
en el PIN RB2 que ahora recibe un 1 o estado alto. Sabemos entonces que se ha pulsado un botón en la
segunda columna y se muestra como un nivel lógico alto aparece en los bits menos significativos del
puerto B, especificamente en RB2.
De esta manera el microcontrolador sabe que se ha oprimido una tecla al detectar un cambio de
nivel en los bits menos significativos. Hasta el momento, se sabe que se ha oprimido una tecla en
alguna columna (dependiendo del bit activo RB3 a RB0), sin embargo, no sabemos en cual fila. Para
resolver en que fila se oprimió una tecla, hay que realizar un proceso de escaneo del teclado. En este
proceso, colocaremos en secuencia un 1 lógico (estado alto) en los 4 bits más significativos del puerto y
leeremos el estado de los 4 bits menos significativos. Sigamos con el ejemplo en el que se ha oprimido la
tecla 6 pero ahora viéndolo gráficamente en una animación:
El microcontrolador escanea en forma sucesiva los pines de salida, mientras lee las entradas en la parte
baja del puerto, de manera que puede detectar que teclas están oprimidas en cada fila. Ahora solo falta
escribir nuestro codigo en C que implemente los procedimientos mencionados anteriormente y nos
devuelva un valor de la tecla oprimida, por ejemplo, mediante un número binario.