SOMMAIRE ►
Le jeu de plateau de réaction est un projet Arduino simple où vous n’avez besoin que de LED, de résistances de bouton et d’une planche à pain. Dans cet article, nous avons placé un schéma de l’assemblage du jeu et un programme fonctionnel avec des commentaires détaillés. Dans les paramètres, vous pouvez modifier le mode de fonctionnement – modifier les intervalles de temps, le nombre de tentatives et le nombre de boutons-poussoir.
Ce dont vous aurez besoin
- Arduino Uno / Arduino Nano
- LEDs et resistances
- boutons-poussoirs
- breadboard
- fils de connexion
Matériel supplémentaire sur ce sujet:
Simple jeu de réaction avec Arduino
Le principe du jeu est assez simple : après avoir allumé les LED (elles sont allumées de manière aléatoire), il faut appuyer le plus rapidement possible sur le bouton correspondant. L’intervalle de temps d’allumage de la LED et d’autres paramètres peuvent être modifiés dans l’esquisse. Après toutes les tentatives, le nombre de tentatives correctes, le temps de réponse moyen et le meilleur temps de réponse sont affichés sur port série Arduino IDE.
Assemblage d’un jeu de réflexe (réaction)

Le schéma montre la connexion de trois paires de LED et de boutons, mais vous pouvez connecter jusqu’à cinq paires en modifiant les paramètres correspondants dans le code. Important: connectez les LED en série à partir de la broche 4 et les boutons de la broche A0 à A5. Le jeu commence lorsque toutes les LED sont allumées. Si vous le souhaitez, vous pouvez connecter un buzzer Arduino, pour un signal audible pour démarrer le jeu.
Programme pour jeu de réaction Arduino
/* les paramètres qui peuvent être modifiés */ int d1 = 1000; // d1 et d2 sont la plage en mlsec de l'allumage de LED int d2 = 2000; int d3 = 3000; // après combien de mlsec l'erreur sera effacée byte tarrgr = 5; // nombre de tentatives byte knp = 3; // nombre de paires LED / bouton /* les paramètres qui peuvent être modifiés */ byte pinD = 4 + knp; byte pinA = 14 + knp; byte ext = 9; byte hit; byte err; byte tarrgn; boolean finich = true; unsigned long timing; unsigned long setreakt; unsigned long bestreakt = 99999; unsigned long medreakt; void setup() { Serial.begin(9600); for (byte i = 4; i < pinD; i++) { pinMode(i, OUTPUT); digitalWrite(i, HIGH); } delay(500); for (byte i = 4; i < pinD; i++) { digitalWrite(i, LOW); } for (byte i = 14; i < pinA; i++) { pinMode(i, INPUT); } for (byte i = 14; i < pinA; i++) { analogWrite(i, LOW); } } void loop() { while (tarrgn < tarrgr) { int LED = random(4, 4 + knp); int BTN = LED + 10; int DEL = random(d1, d2); delay(DEL); digitalWrite(LED, HIGH); timing = millis(); ext = 9; while (ext < 10 && tarrgn < tarrgr) { if (digitalRead(BTN) == HIGH) { digitalWrite(LED, LOW); setreakt = millis() - timing; delay(300); hit++; tarrgn++; ext = 11; } if (millis() - timing > d3) { digitalWrite(LED, LOW); delay(300); setreakt = 0; err++; tarrgn++; ext = 11; } } if (setreakt < bestreakt && setreakt > 100) { bestreakt = setreakt; } medreakt = medreakt + setreakt; } if (tarrgn == tarrgr && finich == true) { medreakt = medreakt / hit; if (medreakt > 99998) { medreakt = 0; } if (bestreakt > 99998) { bestreakt = 0; } Serial.println(); Serial.println("--- End of Raund ---"); Serial.println(); Serial.println("Coups - " + String(hit)); Serial.println("Erreurs - " + String(err)); Serial.println("La meilleure reaction - " + String(bestreakt)); Serial.println("Le moyenne reaction - " + String(medreakt)); Serial.println(); Serial.println("Please reboot for restart"); finich = false; } }
Explication du code pour jeu de réflexe Arduino:
- tous les paramètres peuvent être modifiés au début du programme;
- le mauvais ordre de connexion des LEDs et des boutons affectera le fonctionnement du programme. Il n’est pas possible de connecter plus de cinq paires de LED et de boutons.
Conclusion. Il est possible de connecter l’Arduino LCD 1602 à la carte et d’afficher les résultats déjà sur l’écran. En outre, il est possible de créer différentes variantes de LED de commutation, par exemple pour allumer deux LED en même temps. Si vous avez des questions, vous pouvez les laisser dans les commentaires de ce post – nous essayons toujours de résoudre les problèmes et de répondre à tous les commentaires des utilisateurs.








Quel est le paramètre a changer pour avoir 3 led/boutons qui fonctionne. S’il vous plait, je n’ai que 2 led qui fonctionnent pour le jeu. Elle s’allume toutes les 3 au départ.
Merci d’avoir remarqué l’erreur. Correction du schéma de connexion des boutons dans le projet et suppression de certaines conditions dans le code. Malheureusement, il n’est pas possible de compter les mauvaises pressions sur les boutons – nous corrigerons peut-être ce point à l’avenir.
Très sympa ce petit jeu de réflexes !
Par contre, je crois qu’il y a une erreur sur la vue du montage.
En effet, la ligne supérieure du breadboard est reliée au +5v, mais rien n’est relié à cette ligne. Je suppose que les 3 fils rouges sont entre le +5v et les interrupteurs et non entre le GND et les interrupteurs (comme sur le schéma).
J’ai testé ainsi et ça marche.
Merci!
bonjour, je commence en code arduino et je bute sur un problème… j’ai réussi à ajouter un ecran lcd etc…
Cependant j’aimerai avant le lancement du jeu, qu’un menu option apparaisse et me demande de sélectionner la difficulté, si possible en utilisant les boutons déjà existant. ainsi créé un if qui modifiera les paramètres en fonction de la difficulté choisi:
Quelqu’un pourrait il m’aiguiller svp ?