⭐⭐ Principiante avanzado ⏱️ 25 minutos

Juego de reacción

¿Qué tan rápido eres? Espera hasta que el LED se encienda y pulsa el botón lo más rápido que puedas. La pantalla muestra tu tiempo en milisegundos. ¡Reta a tus amigos!

Primero inicias sesión un momento. Después tu proyecto está listo enseguida.

🗺️ Esquema de conexión

Sigue los cables desde el Arduino hasta cada pieza. Puedes elegir tú los colores de los cables.

Desde Hasta
Arduino UNO · D2 Pulsador · 1
Pulsador · 2 Arduino UNO · GND
Arduino UNO · D13 Resistencia 220 Ω · 1
Resistencia 220 Ω · 2 LED (lucecita) · ANODE
LED (lucecita) · CATHODE Arduino UNO · GND
Arduino UNO · A4 Pantallita OLED 0,91" · SDA
Arduino UNO · A5 Pantallita OLED 0,91" · SCL
Arduino UNO · 5V Pantallita OLED 0,91" · VCC
Arduino UNO · GND Pantallita OLED 0,91" · GND

🛠️ Así lo construyes

  1. Pon el pulsador sobre la ranura del breadboard: una patita al pin 2 y una patita del otro lado a GND.
  2. Pon el LED con una resistencia de 220 Ω en el pin 13, con la patita corta a GND.
  3. Conecta la pantalla OLED: SDA a A4, SCL a A5, VCC a 5V y GND a GND.

💻 El código

// Juego de reaccion
// Espera a que el LED se encienda y pulsa el boton lo mas rapido posible.
// La pantalla muestra que tan rapido fuiste!

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

const int BOTON_PIN = 2;   // Pulsador en pin 2 (otro lado a GND)
const int LED_PIN = 13;   // LED en pin 13 (por la resistencia)

Adafruit_SSD1306 pantalla(128, 32, &Wire, -1);  // OLED: SDA = A4, SCL = A5

unsigned long mejorTiempo = 0;   // Tu tiempo mas rapido hasta ahora

// Pone un texto grande en la pantalla
void mostrar(const __FlashStringHelper* texto, unsigned long numero) {
  pantalla.clearDisplay();
  pantalla.setTextSize(1);
  pantalla.setCursor(0, 0);
  pantalla.print(texto);
  if (numero > 0) {
    pantalla.setTextSize(2);
    pantalla.setCursor(0, 14);
    pantalla.print(numero);
    pantalla.print(F(" ms"));
  }
  pantalla.display();
}

void setup() {
  pinMode(BOTON_PIN, INPUT_PULLUP);
  pinMode(LED_PIN, OUTPUT);
  randomSeed(analogRead(A0));    // Da tiempos de espera realmente al azar
  pantalla.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  pantalla.setTextColor(SSD1306_WHITE);
}

void loop() {
  mostrar(F("Pulsa el boton..."), 0);
  while (digitalRead(BOTON_PIN) == HIGH);   // Espera hasta que pulses el boton
  while (digitalRead(BOTON_PIN) == LOW);    // ...y lo sueltes otra vez
  mostrar(F("Listo? Mira LED!"), 0);

  delay(random(2000, 5000));               // Un tiempo secreto entre 2 y 5 segundos

  if (digitalRead(BOTON_PIN) == LOW) {      // Pulsaste antes? Tramposo!
    mostrar(F("Muy pronto! Otra."), 0);
    delay(2000);
    return;
  }

  digitalWrite(LED_PIN, HIGH);             // AHORA!
  unsigned long start = millis();
  while (digitalRead(BOTON_PIN) == HIGH);   // Esperando tu pulsacion
  unsigned long tiempo = millis() - start;
  digitalWrite(LED_PIN, LOW);

  if (mejorTiempo == 0 || tiempo < mejorTiempo) {
    mejorTiempo = tiempo;
    mostrar(F("NUEVO RECORD!"), tiempo);
  } else {
    mostrar(F("Tu tiempo:"), tiempo);
  }
  delay(3000);
}

🧠 ¿Qué hace el código?

  • Después de pulsar el botón, esperamos un tiempo secreto entre 2 y 5 segundos (random()).
  • Luego el LED se enciende y ponemos en marcha un cronómetro con millis().
  • Cuando pulsas, calculamos cuántos milisegundos tardaste. Guardamos tu mejor tiempo.

🎯 Prueba esto…

  • Haz un juego para dos jugadores, cada uno con su propio botón
  • Haz que un zumbador pite cuando haya un nuevo récord
  • Juega 5 rondas y luego muestra tu tiempo medio

🚀 Construye este proyecto con Codey: abre codey.online/es/starter-kits/uno/projects/reaction-game y haz clic en HAZ ESTO. Entonces el código y el esquema de conexión estarán listos enseguida.

Primero inicias sesión un momento. Después tu proyecto está listo enseguida.
⬇️ Descarga esta página como PDF 📚 Descarga el tutorial completo (PDF)

Codey Online es un producto de OTRONIC

Crea tu proyecto de Arduino o ESP32 con IA

Describe lo que quieres construir. Codey Online escribe el codigo, dibuja el esquema de conexiones, lo compila y graba tu placa directamente desde el navegador.

Empieza gratis