• Testers League
  • Comparativas
  • Casos de éxito
  • Arduino
  • Guía de compras
    • Impresoras 3D
  • Tienda
  • Testers League
  • Comparativas
  • Casos de éxito
  • Arduino
  • Guía de compras
    • Impresoras 3D
  • Tienda

Proyecto Arduino: Juego Memotécnico con Keypad

TP3D
enero 2, 2025
0

Este proyecto propone crear un juego interactivo que desafía y entrena la memoria del jugador. Utilizando un keypad, el jugador tiene que recordar y reproducir secuencias de números o patrones generados de manera aleatoria. Cada ronda aumenta la dificultad, sumando complejidad a las secuencias para mantener la atención y estimular la capacidad de retención. 

Además de ser entretenido, este juego es ideal para mejorar habilidades cognitivas, como la memoria a corto plazo y la concentración. Se puede adaptar a distintos niveles de dificultad, convirtiéndolo en una experiencia versátil y atractiva para todas las edades.

Materiales Necesarios

  • Arduino UNO (u otro compatible)
  • Keypad 4×4
  • LEDs (para retroalimentación visual)
  • Buzzer (para retroalimentación sonora)
  • Resistencias
  • Cables de conexión y protoboard
¡Conseguí los materiales!

1. Conexiones de Hardware

Keypad 4×4

Conectá las filas y columnas del keypad a los pines digitales del Arduino. Ejemplo de conexión:

  • Keypad:
  • Fila 1 -> Pin 9
  • Fila 2 -> Pin 8
  • Fila 3 -> Pin 7
  • Fila 4 -> Pin 6
  • Columna 1 -> Pin 5
  • Columna 2 -> Pin 4
  • Columna 3 -> Pin 3
  • Columna 4 -> Pin 2

LEDs y Buzzer:

  • LEDs: Conectar al pin digital 10.
  • Buzzer: Conectar al pin digital 11.

2. Código Arduino

Código

#include <Keypad.h>

// Configuración del Keypad 4×4

const byte FILAS = 4;

const byte COLUMNAS = 4;

char keys[FILAS][COLUMNAS] = {

  {‘1′,’2′,’3′,’A’},

  {‘4′,’5′,’6′,’B’},

  {‘7′,’8′,’9′,’C’},

  {‘*’,’0′,’#’,’D’}

};

byte pinesFilas[FILAS] = {9, 8, 7, 6}; // Pines de las filas

byte pinesColumnas[COLUMNAS] = {5, 4, 3, 2}; // Pines de las columnas

Keypad keypad = Keypad(makeKeymap(keys), pinesFilas, pinesColumnas, FILAS, COLUMNAS);

int ledPin = 10;  // Pin del LED

int buzzerPin = 11;  // Pin del Buzzer

int sequence[10];   // Secuencia generada por el juego

int playerInput[10]; // Secuencia ingresada por el jugador

int sequenceLength = 1;  // Longitud de la secuencia (comienza en 1)

int step = 0;  // Paso actual del juego

void setup() {

  pinMode(ledPin, OUTPUT);

  pinMode(buzzerPin, OUTPUT);

  Serial.begin(9600);  // Para depuración

  generateSequence();  // Genera la secuencia inicial

}

void loop() {

  playSequence();  // Muestra la secuencia al jugador

  getPlayerInput();  // Captura la secuencia ingresada por el jugador

  checkSequence();  // Verifica si el jugador ha ingresado la secuencia correcta

}

void generateSequence() {

  // Genera una secuencia aleatoria de números

  for (int i = 0; i < 10; i++) {

    sequence[i] = random(0, 10); // Genera números del 0 al 9

  }

}

void playSequence() {

  Serial.println(“Secuencia:”);

  for (int i = 0; i < sequenceLength; i++) {

    digitalWrite(ledPin, HIGH);

    tone(buzzerPin, 1000, 200); // Buzzer emite sonido para cada número

    delay(500);

    digitalWrite(ledPin, LOW);

    Serial.print(sequence[i]); // Muestra la secuencia en el monitor serial

    delay(500);

  }

  Serial.println();

}

void getPlayerInput() {

  Serial.println(“Ingresa la secuencia:”);

  for (int i = 0; i < sequenceLength; i++) {

    char key = keypad.getKey();

    while (!key) {  // Espera hasta que se presione una tecla

      key = keypad.getKey();

    }

    playerInput[i] = key – ‘0‘;  // Convierte el carácter a número

    Serial.print(playerInput[i]); // Muestra el número ingresado en el monitor serial

  }

  Serial.println();

}

void checkSequence() {

  for (int i = 0; i < sequenceLength; i++) {

    if (playerInput[i] != sequence[i]) {

      Serial.println(“Juego Terminado“);

      sequenceLength = 1;  // Reinicia el juego

      return;

    }

  }

  sequenceLength++;  // Incrementa la secuencia si es correcta

  delay(1000);  // Espera antes de mostrar la siguiente secuencia

}

3. Explicación del Código

  1. Configuración del Keypad: Definí una matriz 4×4 de caracteres y configurá los pines del Arduino a los que está conectado el keypad.

  2. Generación de Secuencia: Generá una secuencia de números aleatorios que el jugador tiene que seguir.

  3. Reproducción de la Secuencia: El sistema muestra la secuencia haciendo parpadear un LED y emitiendo sonido con el buzzer.

  4. Entrada del Jugador: El jugador introduce la secuencia correcta presionando las teclas del keypad.

  5. Verificación: Compará la secuencia ingresada con la generada; si es correcta, el juego continúa con una secuencia más larga.

4. Subir el Código al Arduino

Conectá tu Arduino a la computadora, seleccioná el puerto adecuado en el IDE de Arduino y cargá el código.

5. Pruebas y Ajustes

  • Verificá que el keypad responda correctamente.
  • Asegurate de que la secuencia se muestre bien con el LED y el buzzer.
  • Ajustá el tiempo de espera entre secuencias según tu preferencia.

Encontrá en nuestra web todo lo que buscás para tus proyectos, desde componentes hasta kits completos. ¡Conseguí lo necesario para transformar tus ideas en realidad!

TP3D

No te pierdas nuestras próximas notas, donde vamos a presentar otros proyectos Arduino innovadores. ¡Seguí nuestras publicaciones y descubrí nuevas ideas cada semana!

Hasta la próxima.

blogger Image

TP3D

Publicaciones relacionadas

Proyecto arduino: Válvula Eléctrica para Cultivo

Leer más

Proyecto Arduino: Reloj y Termómetro Digital

Leer más

Proyecto Arduino: Tarjeta Navideña

Leer más

Agrega tu comentario

Cancel Reply

Categorías

  • Casos de éxito
  • Nuevos productos
  • Odontología
  • Moda
  • Joyería

IMPRESORAS

  • Hellbot
  • Creality

Suscribite

Dejanos tu e-mail y recibí nuestras novedades

Twitter Facebook Dribbble Youtube Pinterest Medium
Facebook Twitter Youtube Instagram

© 2023 TP3D

Social Chat is free, download and try it now here!