Teclado matricial 4x4 con Arduino Creatividad Codificada

Teclado matricial 4×4 con Arduino

Arduino

Un teclado matricial 4×4 con Arduino puede controlar actuadores mediante alguna combinación de teclas, como por ejemplo abrir una cerradura mediante una contraseña, cambiar la velocidad de un motor mediante un menú, el típico proyecto de una calculadora con Arduino, etc.

En el mundo de la electrónica existe una gran infinidad de teclados matriciales, pero existen básicamente de cualquier configuración, incluso armar estos tipos de teclados es sencillo ya que solo están formados por una serie de pulsadores y resistencias interconectados entre sí de manera matricial.

Normalmente estos teclados matriciales 4×4 trabajan con 8 hilos de conexión pero podremos manejar 16 pulsadores con la ayuda de Arduino, si es de 3×4 necesitaremos 7 hilos y podremos manejar hasta 12 pulsadores.

También podemos controlarlo con un solo hilo de conexión, esto se logra haciendo un divisor de voltaje y asignándole un voltaje pequeño para cada pulsador del teclado matricial 4×4, este método es muy sencillo y se presentara un ejemplo práctico en próximos artículos de Arduino.

¿Cómo trabaja un teclado matricial 4×4 con Arduino?

Estos teclados tienen filas y columnas conectados entre si formando una matriz de pulsadores.

Para acceder a alguna de estas intersecciones tendremos que identificarlos de alguna manera, por ejemplo si quisiéramos identificar el pulsador conectado en la fila uno y columna dos, esto lo podemos lograr poniendo la primera fila a 1 lógico y la segunda fila a un 0 lógico al presionar el pulsador enviara 1 lógico de la fila hacia la columna esto nos daría la certeza para saber que pulsador fue presionado, y gracias a esto nos permite detectar cualquier tecla que se haya pulsado.

Teclado matricial 4x4 hecho con proteus

Configuración del teclado matricial 4×4

Entender la configuración y disposición de sus filas y columnas de estos teclados matriciales 4×4 es vital para su buen manejo.

teclado matricial 4x4

Librería para manejar teclados matriciales en Arduino               

Controlar teclados matriciales si se tiene conocimiento amplio sobre programación se la puede manejar sin la necesidad de ninguna librería realizando nuestras propias funciones, si no tienes estos conocimientos sobre programación ya existe múltiples librerías de la comunidad de Arduino que nos ayudara a utilizar estos teclados matriciales con Arduino.

La librería “keypad.h” la podemos instalar directamente desde el IDE de Arduino, accediendo desde el menú a Herramientas >> Administrar Bibliotecas >> [Buscar keypad]

instalación de la librería keypad

Uso de la librería <keypad.h>

Esta librería ya tiene varias funciones programadas, pero antes de usarla debemos incluirla a nuestro código escribiendo la siguiente instrucción #include <keypad.h>  en la cabecera, además se debe incluir de una serie de instrucciones:

#include <keypad.h>

Configuramos la filas y columnas del keypad

Debemos definir el numero de filas y columnas que tiene el teclado que vayamos a usar, en este caso es un teclado matricial de 4×4, ademas se debe asignar un valor para cada tecla del teclado en una matriz NxM.

Configuramos los pines de las filas y columnas

Debemos designar los pines que vamos a usar para conectar las filas y columnas.

byte pinesFilas[filas] = { 13, 12, 11, 10 }; 
byte pinesColumnas[columnas] = { 9, 8, 7, 6 }; 

Constructor

Una vez realizada todos los pasos anteriores recién podremos asignar los parámetros necesarios del constructor que son:

  • Teclas del teclado matricial,
  • Filas,
  • Columnas,
  • numero de filas y columnas.

Funciones de la librería <Keypad.h> para manejar teclados matriciales en Arduino

Saber usar estas funciones es muy importante para sacar el máximo potencial a esta librería, a continuación se hace una descripción de estas funciones.

begin (makeKeymap (userKeymap))

Útil cuando necesitamos asignar varios valores a una misma tecla

waitForKey ()

Con esta función podemos bloquear todo hasta que se presione una tecla, sin que las interrupciones quedes anuladas en caso que lo estemos usando.

getKey()

Esta función es la más usada, nos devuelve el valor guardado dentro una matriz NxM.  

getState()

Nos permite saber el estado de las teclas, tienen cuatros estados IDLE (inactivo), PRESSED (presionado), RELEASED (liberado) y HOLD (retenido).

keyStateChanged()

Útil cuando deseamos determinar algún cambio de estado de una tecla.

setHoldTime(tiempo)

Esta función tiene un parámetro tiempo que se debe establecer en milisegundos con un número entero y sin signo, esta función puede determinar el tiempo que debe estar presionado una tecla para que pase al estado HOLD.

setDebounceTime (tiempo)

Con esta función podemos controlar el tiempo de espera para poder realizar una nueva pulsación de otra tecla de nuestro teclado matricial en Arduino.

Para declarar el tiempo debemos hacerlo en milisegundos.

addEventListener (keypadEvent)

Útil para trabajar con eventos, esta función se la debe declarar dentro la función setup()

¿Qué te pareció el artículo?

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

  * He leído y acepto la política de privacidad

¿Qué hacemos con tus datos?

Creatividad Codificada como responsable tratará tus datos con la finalidad de gestionar tu participación en nuestro blog informativo. Puedes acceder, rectificar y suprimir tus datos, así como ejercer otros derechos consultando la información adicional y detallada sobre protección de datos en nuestra Política de Privacidad