⭐⭐ Fortgeschrittener Anfänger ⏱️ 25 Minuten

Reaktionsspiel

Wie schnell bist du? Warte, bis die LED angeht. Drücke dann so schnell wie möglich auf den Knopf. Das Display zeigt deine Zeit in Millisekunden. Fordere deine Freunde heraus!

Du meldest dich kurz an. Danach ist dein Projekt sofort bereit.

🗺️ Schaltplan

Folge den Drähten vom Arduino zu jedem Teil. Die Farben der Drähte darfst du selbst wählen.

Von Nach
Arduino UNO · D2 Druckknopf · 1
Druckknopf · 2 Arduino UNO · GND
Arduino UNO · D13 Widerstand 220 Ω · 1
Widerstand 220 Ω · 2 LED (Lämpchen) · ANODE
LED (Lämpchen) · CATHODE Arduino UNO · GND
Arduino UNO · A4 OLED-Display 0,91" · SDA
Arduino UNO · A5 OLED-Display 0,91" · SCL
Arduino UNO · 5V OLED-Display 0,91" · VCC
Arduino UNO · GND OLED-Display 0,91" · GND

🛠️ So baust du es

  1. Setze den Druckknopf über die Lücke des Breadboards: ein Beinchen zu Pin 2, ein Beinchen auf der anderen Seite zu GND.
  2. Setze die LED mit einem Widerstand von 220 Ω an Pin 13, das kurze Beinchen zu GND.
  3. Schließe das OLED-Display an: SDA zu A4, SCL zu A5, VCC zu 5V und GND zu GND.

💻 Der Code

// Reaktionsspiel
// Warte, bis die LED angeht, und druecke dann so schnell wie moeglich auf den Taster.
// Das Display zeigt, wie schnell du warst!

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

const int TASTER_PIN = 2;   // Drucktaster an Pin 2 (andere Seite nach GND)
const int LED_PIN = 13;   // LED an Pin 13 (ueber den Widerstand)

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

unsigned long besteZeit = 0;   // Deine schnellste Zeit bis jetzt

// Zeigt einen Text gross auf dem Display
void zeige(const __FlashStringHelper* oben, unsigned long zahl) {
  anzeige.clearDisplay();
  anzeige.setTextSize(1);
  anzeige.setCursor(0, 0);
  anzeige.print(oben);
  if (zahl > 0) {
    anzeige.setTextSize(2);
    anzeige.setCursor(0, 14);
    anzeige.print(zahl);
    anzeige.print(F(" ms"));
  }
  anzeige.display();
}

void setup() {
  pinMode(TASTER_PIN, INPUT_PULLUP);
  pinMode(LED_PIN, OUTPUT);
  randomSeed(analogRead(A0));    // Sorgt fuer echt zufaellige Wartezeiten
  anzeige.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  anzeige.setTextColor(SSD1306_WHITE);
}

void loop() {
  zeige(F("Taste druecken..."), 0);
  while (digitalRead(TASTER_PIN) == HIGH);   // Warten, bis du den Taster drueckst
  while (digitalRead(TASTER_PIN) == LOW);    // ...und wieder loslaesst
  zeige(F("Bereit? LED!"), 0);

  delay(random(2000, 5000));               // Eine geheime Wartezeit zwischen 2 und 5 Sekunden

  if (digitalRead(TASTER_PIN) == LOW) {      // Zu frueh gedrueckt? Schummler!
    zeige(F("Zu frueh! Nochmal."), 0);
    delay(2000);
    return;
  }

  digitalWrite(LED_PIN, HIGH);             // JETZT!
  unsigned long start = millis();
  while (digitalRead(TASTER_PIN) == HIGH);   // Warten auf deinen Druck
  unsigned long zeit = millis() - start;
  digitalWrite(LED_PIN, LOW);

  if (besteZeit == 0 || zeit < besteZeit) {
    besteZeit = zeit;
    zeige(F("NEUER REKORD!"), zeit);
  } else {
    zeige(F("Zeit:"), zeit);
  }
  delay(3000);
}

🧠 Was macht der Code?

  • Nach einem Druck auf den Knopf warten wir eine geheime Zeit zwischen 2 und 5 Sekunden (random()).
  • Dann geht die LED an und wir starten eine Stoppuhr mit millis().
  • Wenn du drückst, rechnen wir aus, wie viele Millisekunden es gedauert hat. Deine beste Zeit merken wir uns.

🎯 Probier mal …

  • Mach daraus ein Spiel für zwei Spieler, jeder mit einem eigenen Knopf
  • Lass einen Summer piepen, wenn es einen neuen Rekord gibt
  • Spiele 5 Runden und zeige danach deine Durchschnittszeit

🚀 Baue dieses Projekt mit Codey: Öffne codey.online/de/starter-kits/uno/projects/reaction-game und klicke auf BAU DAS. Dann sind der Code und der Schaltplan sofort bereit.

Du meldest dich kurz an. Danach ist dein Projekt sofort bereit.
⬇️ Diese Seite als PDF herunterladen 📚 Das komplette Tutorial herunterladen (PDF)

Codey Online ist ein Produkt von OTRONIC

Bau dein Arduino- oder ESP32-Projekt mit AI

Beschreib einfach, was du bauen willst. Codey Online schreibt den Code, zeichnet den Schaltplan, kompiliert alles und flasht dein Board direkt aus dem Browser.

Kostenlos starten