Código de búsqueda

Uso de un teclado 4x3 con Arduino

Uso de un teclado 4x3 con Arduino

En este tutorial exploraremos cómo usar un teclado matricial 4x3 con un Arduino para leer las pulsaciones de teclas. Este teclado puede utilizarse en diversos proyectos, como crear una interfaz de entrada sencilla para un sistema de seguridad o cualquier aplicación que requiera entrada del usuario. Al final de esta guía, podrás leer las pulsaciones de teclas y responder a teclas específicas.

Asegúrate de revisar el video adjunto para una demostración visual del cableado y la implementación del código (en el video a las 00:00).

Hardware explicado

Los componentes principales de este proyecto incluyen el teclado 4x3 y la placa Arduino. El teclado consiste en una matriz de botones dispuestos en 4 filas y 3 columnas. Cuando se pulsa un botón, conecta una fila específica con una columna específica, lo que permite al Arduino identificar qué botón se ha pulsado.

La placa Arduino actúa como el controlador central que lee las entradas del teclado. Utiliza la biblioteca Keypad, que simplifica el proceso de gestionar el teclado matricial y facilita la detección de pulsaciones de teclas.

Detalles de la hoja de datos

FabricanteVarios
Número de piezaTeclado 4x3
Voltaje lógico5 V
Corriente de funcionamiento≤ 20 mA
Vida útil de la clave≥ 1,000,000 pulsaciones
PaqueteTeclado matricial

  • Conecta los pines del teclado correctamente a los pines digitales del Arduino.
  • Use resistencias pull-up o pull-down si es necesario, según su configuración.
  • Asegúrese de que la biblioteca Keypad esté incluida en su IDE de Arduino.
  • Elimine el rebote de las pulsaciones de teclas por software para evitar lecturas múltiples.
  • Pruebe cada tecla para confirmar el cableado y su correcto funcionamiento.

Instrucciones de cableado

Arduino_wiring_4x3_keypad

Para cablear el teclado matricial 4x3 al Arduino, conectará los pines de filas y columnas del teclado a los pines digitales del Arduino. Conecte los pines de fila (típicamente 4 pines) a los pines2,3,4, y5En el Arduino. Los pines de columna (típicamente 3 pines) deben conectarse a pines6,7, y8.

Asegúrate de conectar el pin de tierra del teclado al GND del Arduino y el pin de alimentación a la salida de 5V. Esta configuración permitirá que el Arduino lea el estado de cada tecla al presionarla, utilizando la biblioteca Keypad para manejar el escaneo de la matriz.

Ejemplos de código y guía paso a paso

El siguiente código inicializa el teclado y imprime la tecla pulsada en el monitor serie. Los valores de las teclas se almacenan en un arreglo de caracteres.

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

ElkeysEl arreglo define la distribución del teclado, que corresponde al ordenamiento físico de las teclas. Cada carácter representa un botón del teclado.

A continuación, configuramos el teclado en elsetup()función:

void setup(){
  Serial.begin(9600);
  Serial.println("Robojax 4x3 keypad");
}

Este segmento inicializa la comunicación serial a 9600 baudios, permitiéndonos ver las pulsaciones de teclas en el monitor serial.

Finalmente, el bucle comprueba las pulsaciones de teclas y responde en consecuencia:

void loop(){
  char key = keypad.getKey();
  if (key){
    Serial.println(key);
  } 
  if (key =='4'){
    Serial.println("Key 4 is pressed");
  } 
}

Aquí, el programa comprueba si se ha pulsado alguna tecla usandokeypad.getKey(). Si se presiona una tecla, imprime el valor de la tecla. Además, si se presiona la tecla '4', se muestra un mensaje específico.

Demostración / Qué Esperar

Cuando la configuración esté completa, al pulsar cualquier tecla del teclado debería mostrarse el carácter correspondiente en el monitor serial. Si se pulsa la tecla '4', se imprimirá un mensaje especial indicando la activación de esa tecla. Esta funcionalidad le permite ampliar esta base para aplicaciones más complejas.

Tenga cuidado con las entradas flotantes que pueden provocar un comportamiento errático. Asegúrese de que todas las conexiones estén seguras y pruebe cada tecla para confirmar su correcto funcionamiento (en el vídeo a las 00:00).

Imágenes

4x3_kaypad-1
4x3_kaypad-1
4x3_kaypad-2
4x3_kaypad-2
4x3_kaypad-3
4x3_kaypad-3
4x3_kaypad-4
4x3_kaypad-4
4x3_kaypad-5
4x3_kaypad-5
Arduino_wiring_4x3_keypad
Arduino_wiring_4x3_keypad
128-Ardunino code for 4x3 keypad
Idioma: C++
/*
 * Library taken from: https://playground.arduino.cc/Code/Keypad
 * This is the Arduino code for a 4x3 keypad.
 * Watch the video for details and demo: http://youtu.be/qIDzzG2LUtg
resources page: www.Robojax.com/RJT104
 * 
 * Modified by Ahmad Shamshiri for the Robojax Video channel: www.Robojax.com/RJT104
 * Date: July 11, 2018 at 19:56 in Ajax, Ontario, Canada
 * Permission granted to share this code, given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 * This code has been downloaded from https://robojax.com
 * Watch video instructions for this code: 
 * 
 */
/* @file HelloKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates the simplest use of the matrix Keypad library.
|| #
*/
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,7,8}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
  // Robojax 4x3 keypad test
  Serial.begin(9600);
  Serial.println("Robojax 4x3 keypad");
}
  
void loop(){
  // Robojax 4x3 keypad test
  char key = keypad.getKey();
    // Just print the pressed key
   if (key){
    Serial.println(key);
  } 
   // This checks if 4 is pressed, then do something. Here we print the text, but you can control something.
  if (key =='4'){
    // If key matches what you are looking for
    Serial.println("Key 4 is pressed");
  } 

}

Cosas que podrías necesitar

Recursos y referencias

Aún no hay recursos.

Archivos📁

Archivo de Fritzing

Otros archivos