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 matriciales est谩n conformados por filas y columnas, un teclado matricial de 4×4 tiene 4 filas y 4 columnas interconectadas entre si y si cada intersecci贸n representar铆a un pulsador tendr铆amos 16 pulsadores interconectados entre s铆.

Para acceder a alguna de estas intersecciones tendremos que identificarlos de alguna manera, por ejemplo si quisi茅ramos identificar el pulsador conectado en la primera fila y en la segunda columna 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 el buen manejo de las mismas en nuestro proyecto.

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 鈥渒eypad.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