Código de búsqueda

Código y vídeo de Arduino para un teclado de cuatro teclas

Código y vídeo de Arduino para un teclado de cuatro teclas

En este tutorial, aprenderemos cómo utilizar un teclado de cuatro teclas con un Arduino. Este proyecto es especialmente útil para aplicaciones en las que necesitas varios botones pero quieres minimizar el número de cables utilizados. Conectando el teclado de una manera específica, podemos lograr una configuración funcional con solo cinco cables en lugar de ocho.

4 key flixable keypad

El teclado de cuatro teclas simplifica el proceso de cableado, ya que cuenta con una conexión común que reduce el número total de cables necesarios. Cada tecla está conectada al Arduino mediante pines designados, lo que permite una interacción y control sencillos. Esta guía cubrirá el cableado, el código y el comportamiento esperado del teclado, para que puedas replicar el proyecto con éxito (en el video a 02:30).

Hardware explicado

Los componentes principales de este proyecto incluyen un teclado de cuatro teclas y una placa Arduino. El teclado contiene cuatro botones, y cada botón se conecta al Arduino mediante dos cables: un cable común y un cable dedicado para cada botón. Esta configuración permite conexiones sencillas a la vez que minimiza el desorden.

El Arduino interpreta las pulsaciones de los botones mediante entradas digitales, confiando en resistencias pull-up internas para garantizar lecturas estables. Cuando se pulsa un botón, este conecta el pin correspondiente a tierra, lo que permite al Arduino detectar el cambio de estado.

Detalles de la ficha técnica

FabricanteGenérico
Número de parteTeclado de 4 teclas
Tensión lógica/E/S5 V
Tensión de alimentación5 V
Número de teclas4
Tipo de pin comúnactivo a nivel bajo
Resistencia del botón1 kΩ (típ.)
PaquetePCB flexible
Notas / variantesDisponible en múltiples diseños

  • Cada botón requiere dos conexiones: una para el propio botón y otra para la masa común.
  • El uso de resistencias pull-up internas simplifica el cableado y reduce la cantidad de componentes.
  • Asegúrese de que el pin común esté conectado a tierra para un funcionamiento correcto.
  • Filtra el rebote de las pulsaciones de los botones en el software para evitar lecturas falsas.
  • Prueba la funcionalidad del botón con una salida serial simple para retroalimentación.

Instrucciones de cableado

Arduino wiring for 4 key keypad
Arduino wiring for 4 key keypad

Para cablear el teclado de cuatro teclas al Arduino, siga estos pasos:

  • Conecte el primer cable de la llave al pin2en el Arduino.
  • Conecte el segundo cable de la llave al pin3.
  • Conecte el tercer cable de la llave al pin4.
  • Conecte el cuarto cable de la llave al pin5.
  • Conecta el cable común del teclado al pin de tierra del Arduino.

Asegúrese de conectar cada cable de forma segura para evitar cualquier conexión suelta. Si experimenta problemas, verifique nuevamente cada conexión comparándola con las asignaciones de pines que se muestran en el video (en el video a 04:15).

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

El siguiente fragmento de código inicializa los pines del teclado y los configura como entradas:

#define key1 2 //connect wire 1 to pin 2
#define key2 3 //connect wire 2 to pin 3
#define key3 4 //connect wire 3 to pin 4
#define key4 5 //connect wire 4 to pin 5

void setup() {
 Serial.begin(9600);
 pinMode(key1, INPUT_PULLUP); // set pin as input
 pinMode(key2, INPUT_PULLUP); // set pin as input
 pinMode(key3, INPUT_PULLUP); // set pin as input
 pinMode(key4, INPUT_PULLUP); // set pin as input   
}

En el código anterior, cada tecla está definida con su número de pin correspondiente. ElINPUT_PULLUPEl modo garantiza que los pines indiquen nivel alto cuando no están presionados, lo que simplifica la detección de la pulsación del botón.

La función loop lee el estado de cada tecla e imprime el mensaje correspondiente cuando se presiona:

void loop() {
  int key1S = digitalRead(key1); // read if key1 is pressed
  int key2S = digitalRead(key2); // read if key2 is pressed
  int key3S = digitalRead(key3); // read if key3 is pressed
  int key4S = digitalRead(key4); // read if key4 is pressed 

  if(!key1S) {
    Serial.println("key 1 is pressed");
  }
  if(!key2S) {
    Serial.println("key 2 is pressed");
  }
  // Additional code for key3 and key4...
  delay(100);
}

Este segmento de código comprueba el estado de cada tecla e imprime un mensaje en el monitor serial cuando se pulsa una tecla. Eldelay(100)permite un efecto antirrebote, asegurando que múltiples pulsaciones no se registren en rápida sucesión.

Demostración / Qué esperar

Una vez que hayas cableado correctamente y subido el código a tu Arduino, deberías ver que el monitor serial muestra mensajes que indican qué tecla se ha pulsado. Al pulsar la tecla 1, se mostrará el mensaje tecla 1 está pulsada; lo mismo ocurrirá con las demás teclas. Si los mensajes no aparecen, comprueba el cableado y asegúrate de que el cable común está conectado a tierra.

Tenga cuidado con las conexiones invertidas, ya que esto puede provocar un comportamiento inesperado. Asegúrese de que los pines que utiliza coincidan con los definidos en su código (en el vídeo a las 06:45).

Marcas de tiempo del vídeo

  • 00:00- Introducción
  • 02:30- Explicación del cableado
  • 04:15- Asignación de pines
  • 06:45- Probando el teclado

Imágenes

4 key flixable keypad
4 key flixable keypad
Arduino wiring for 4 key keypad
Arduino wiring for 4 key keypad
50-Arduino Code for 4 key keypad
Idioma: C++
++
/*
 * This is the Arduino code for a 4-key keypad.
 * Watch the video for details and demo: https://youtu.be/BiOh_Z2N7kk
 * 
 * Written by Ahmad Shamshiri for the Robojax Video channel,
get code, wiring diagram and resources at  www.Robojax.com/RJT37
 * Date: December 28, 2017, 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
// Recorded December 28, 2017 for Robojax.com

#define key1 2 //connect wire 1 to pin 2
#define key2 3 //connect wire 2 to pin 3
#define key3 4 //connect wire 3 to pin 4
#define key4 5 //connect wire 4 to pin 5

void setup() {
 Serial.begin(9600);
 pinMode(key1, INPUT_PULLUP);// set pin as input
 pinMode(key2, INPUT_PULLUP);// set pin as input
 pinMode(key3, INPUT_PULLUP);// set pin as input
 pinMode(key4, INPUT_PULLUP);// set pin as input   
}

void loop() {
  int key1S = digitalRead(key1);// read if key1 is pressed
  int key2S = digitalRead(key2);// read if key2 is pressed
  int key3S = digitalRead(key3);// read if key3 is pressed
  int key4S = digitalRead(key4);// read if key4 is pressed 
 // Code written for Robojax.com video tutorial
     if(!key1S){
      Serial.println("key 1 is pressed");
     }
     if(!key2S){
      Serial.println("key 2 is pressed");
     }
     if(!key3S){
      Serial.println("key 3 is pressed");
     }
     if(!key4S){
      Serial.println("key 4 is pressed");
     }          
     delay(100);
}

Cosas que podrías necesitar

Recursos y referencias

Aún no hay recursos.

Archivos📁

Bibliotecas de Arduino (zip)