⭐⭐ Débutant avancé ⏱️ 25 minutes

Jeu de réflexes

À quelle vitesse réagis-tu ? Attends que la LED s'allume. Puis appuie le plus vite possible sur le bouton. L'écran montre ton temps en millisecondes. Défie tes amis !

Tu te connectes d’abord. Ensuite, ton projet est tout de suite prêt.

🗺️ Schéma de branchement

Suis les fils de l’Arduino vers chaque pièce. Tu peux choisir toi-même les couleurs des fils.

De Vers
Arduino UNO · D2 Bouton-poussoir · 1
Bouton-poussoir · 2 Arduino UNO · GND
Arduino UNO · D13 Résistance 220 Ω · 1
Résistance 220 Ω · 2 LED (petite lampe) · ANODE
LED (petite lampe) · CATHODE Arduino UNO · GND
Arduino UNO · A4 Petit écran OLED 0,91" · SDA
Arduino UNO · A5 Petit écran OLED 0,91" · SCL
Arduino UNO · 5V Petit écran OLED 0,91" · VCC
Arduino UNO · GND Petit écran OLED 0,91" · GND

🛠️ Voici comment le construire

  1. Place le bouton-poussoir au-dessus de la fente du breadboard : une patte vers pin 2, une patte de l'autre côté vers GND.
  2. Place la LED avec une résistance de 220 Ω sur pin 13, la patte courte vers GND.
  3. Branche l'écran OLED : SDA vers A4, SCL vers A5, VCC vers 5V et GND vers GND.

💻 Le code

// Jeu de réflexes
// Attends que la LED s'allume, puis appuie le plus vite possible sur le bouton.
// L'écran montre à quelle vitesse tu as réagi !

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

const int BOUTON_PIN = 2;   // Bouton sur pin 2 (autre côté vers GND)
const int LED_PIN = 13;   // LED sur pin 13 (avec la résistance)

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

unsigned long meilleurTemps = 0;   // Ton meilleur temps jusqu'ici

// Affiche un texte en grand sur l'écran
void affiche(const __FlashStringHelper* texteHaut, unsigned long nombre) {
  ecran.clearDisplay();
  ecran.setTextSize(1);
  ecran.setCursor(0, 0);
  ecran.print(texteHaut);
  if (nombre > 0) {
    ecran.setTextSize(2);
    ecran.setCursor(0, 14);
    ecran.print(nombre);
    ecran.print(F(" ms"));
  }
  ecran.display();
}

void setup() {
  pinMode(BOUTON_PIN, INPUT_PULLUP);
  pinMode(LED_PIN, OUTPUT);
  randomSeed(analogRead(A0));    // Donne des temps d'attente vraiment au hasard
  ecran.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  ecran.setTextColor(SSD1306_WHITE);
}

void loop() {
  affiche(F("Presse bouton..."), 0);
  while (digitalRead(BOUTON_PIN) == HIGH);   // Attendre que tu appuies sur le bouton
  while (digitalRead(BOUTON_PIN) == LOW);    // ...puis que tu le relâches
  affiche(F("Pret? LED!"), 0);

  delay(random(2000, 5000));               // Un temps secret entre 2 et 5 secondes

  if (digitalRead(BOUTON_PIN) == LOW) {      // Appuyé trop tôt ? Tricheur !
    affiche(F("Trop tot! Encore."), 0);
    delay(2000);
    return;
  }

  digitalWrite(LED_PIN, HIGH);             // MAINTENANT !
  unsigned long start = millis();
  while (digitalRead(BOUTON_PIN) == HIGH);   // Attendre ton appui
  unsigned long temps = millis() - start;
  digitalWrite(LED_PIN, LOW);

  if (meilleurTemps == 0 || temps < meilleurTemps) {
    meilleurTemps = temps;
    affiche(F("NOUV. RECORD!"), temps);
  } else {
    affiche(F("Ton temps:"), temps);
  }
  delay(3000);
}

🧠 Que fait le code ?

  • Après un appui sur le bouton, on attend un temps secret entre 2 et 5 secondes (random()).
  • Puis la LED s'allume et on lance un chronomètre avec millis().
  • Quand tu appuies, on calcule combien de millisecondes se sont écoulées. On garde ton meilleur temps.

🎯 Essaie un peu…

  • Fais-en un jeu pour deux joueurs, avec un bouton pour chacun
  • Fais biper un buzzer quand il y a un nouveau record
  • Joue 5 manches, puis affiche ton temps moyen

🚀 Construis ce projet avec Codey : ouvre codey.online/fr/starter-kits/uno/projects/reaction-game et clique sur FAIS ÇA. Alors le code et le schéma de branchement sont tout de suite prêts.

Tu te connectes d’abord. Ensuite, ton projet est tout de suite prêt.
⬇️ Télécharger cette page en PDF 📚 Télécharger le tutoriel complet (PDF)

Codey Online est un produit de OTRONIC

Construisez votre projet Arduino ou ESP32 avec l'IA

Décrivez ce que vous voulez créer. Codey Online écrit le code, dessine le schéma de câblage, le compile et flashe votre carte directement depuis le navigateur.

Commencez gratuitement