Arduino teclado 4x4

Video del circuito

¿Que es un teclado 4x4?

Este es un teclado básico de 16 botones que ha sido diseñado para una entrada y funcionalidad fáciles para el usuario. Los botones se configuran en un formato de matriz que permite a un microcontrolador "escanear" los 8 pines de salida para ver cuál de los 16 botones se está presionando.[1]
Cada uno de los 16 botones del teclado ha sido etiquetado como 1, 2, 3, A, 4, 5, 6, B, 7, 8, 9, C, 0, *, # y D y ha sido formateado en el mismo diseño como un teclado de teléfono con cada resistencia de pulsación entre 10 y 625 ohmios.

Matriz de teclas

Para saber que tecla se pulsa, basta con poner tensión en las filas de forma secuencial y luego leer las columnas para ver cuál de ellas tiene un estado HIGH[3]. Los teclados matriciales usan una combinación de filas y columnas para conocer el estado de los botones. Cada tecla es un pulsador conectado a una fila y a una columna. Cuando se pulsa una de las teclas, se cierra una conexión única entre una fila y una columna.

Materiales

Los materiales que se necesitan para este proyectos se encuentran el la siguiente tabla, también podrán encontrar un link donde los enviara a la definición detallada del elemento.
Material Cantidad Descripción
Arduino 1 Controlador para el teclado
Teclado 4x4 1 Teclado 4x4
Cables de conexión 8 Cables macho a macho
Protoboard 1 Tablero de conexión

Conexión

La conexión del teclado es muy sencilla, solo necesitamos seguir los pasos como se mencionan en la siguiente tabla:
Pines arduino Pines teclado
9 1
8 2
7 3
6 4
5 5
4 6
3 7
2 8
A continuación dejo unas imagenes de guia:

Librería

El teclado es una biblioteca para usar teclados de estilo de matriz con el Arduino[2]. A partir de la versión 3.0 ahora soporta múltiples pulsaciones de teclas.
La librería fue creado para promover la abstracción de hardware. Mejora la legibilidad del código al ocultar las llamadas pinMode y digitalRead para el usuario.

Código

El código que estamos usando, es el ejemplo CustomKeypad de la librería del teclado. Dejare el código del repositorio en de keypad.
// Paso 1
#include <Keypad.h>

// Paso 2
const byte numRows= 4;
const byte numCols= 4;

// Paso 3
char keymap[numRows][numCols]=
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};

// Paso 4
byte rowPins[numRows] = {'5','4','3','2'};
byte colPins[numCols]=  {'9','8','7','6'};

// Paso 5
Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);

void setup(){
    Serial.begin(9600);
}

void loop(){
    // Paso 6
    char keypressed = myKeypad.getKey();
    if (keypressed != NO_KEY){
    Serial.println(keypressed);
    }
}
Veamos una breve explicación del código anterior.
  1. Se importa la librería Keypad, donde se encuentra las funciones que usaremos con el teclado.
  2. Creamos las constantes numRows y numCols para determinar el tamaño del teclado.
  3. Se crea la matriz tipo char de nombre keymap donde las teclas que mapearemos en el teclado.
  4. Mapeamos los pines que usamos del arduino para el teclado, se crean las filas y las columnas.
  5. Inicializamos el objeto myKeypad el cual en su constructor recibe las variables y constantes creadas anteriormente. Este objeto contiene las instrucciones para leer el valor del teclado.
  6. Con la función getKey obtenemos el valor de la tecla presionada, luego validamos si se presiono una tecla con NO_KEY, si es correcto mostramos el carácter de la tecla presionada.

Ver también

Referencias

[1] Keypad 14-button, Definicion de sparkfun Consultado enero 2019

[2] Playground arduino http://playground.arduino.cc/Code/Keypad, Consultado enero 2019

[3] Prometec, https://www.prometec.net/teclados-matriciales/ Consultado enero 2019

Comentarios

Para dejar el comentario solo necesitamos tu correo que registraste en la pagina, pero si aun no te haz registrado se creara el usuario automaticamente.

Detalle contenido

base arduino teclado 4x4
Generic placeholder image
Oscar Fernandez Alzate

14, Enero 2019

287
Categorías
ARDUINO