ENIB 2022 C : tape taupe lumineux
Sommaire
photo de l'équipe
présentation synthétique du tape taupe lumineux
Le principe du jeu tape taupe lumineux est le suivant: une des 6 leds s'allument aléatoirement, le participant doit appuyer le plus rapidement possible sur le bouton correspondant à cette led.
Le but étant d'appuyer sur le plus de boutons possible en 15 secondes.
Le jeu commence lorsque le joueur appuie sur le bouton du milieu.
Membres du groupe
Fily Gabin
Lapous Rémi
Pistoresi Dorian
Liste des composants
- Uno mini
- Un cable USB
- 6 leds
- 7 boutons poussoirs
- Support en bois
Code
// Fily Gabin, Pistoresi Dorian, Lapous Rémi // Ce programme sert à faire le tape taupe lumineux
const int Led[6] = {2,3,4,5,6,7}; //Led sur les sorties digitales 2,3,4,5,6,7
const int B[6]={8,9,10,11,12,13}; //Boutons sur les sorties digitales 8,9,10,11,12,13
const int Bstart = A0; //Bouton de départ sur la sortie A0
int BSval; //Valeur bouton de départ
int start = 0; //Variable du début du jeu
int i; //Utile pour l'initialisation
int score = 0; //Score du joueur
int randnumber; //Nombre aléatoire
void setup() { //fonction d'initialisation de la carte
//contenu de l'initialisation Serial.begin(9600); //Indique que Arduino se situe sur le port usb 9600 pinMode(Bstart,INPUT_PULLUP); //Indique que le bouton poussoir est une entrée for(i=0;i<6;i++){ //Boucle parcourant toutes les variables de 0 à 5 pinMode(B[i], INPUT); //Indique que le bouton poussoir est une entrée pinMode(Led[i],OUTPUT); //Indique que les leds sont des sorties digitalWrite(Led[i],LOW); //On met les leds au niveau bas (elles sont eteintes au depart) digitalWrite(B[i],HIGH); //On met les boutons au niveau haut }
}
void loop(){
if (start==0){ //Si le jeu n'a pas commencé BSval = analogRead(Bstart); //Lis la valeur analogique du bouton de départ if(BSval<200){ //Si le bouton est actionné start = 1; //Le jeu peut commencer } }
if ((start == 1)&&(score<30)){
randnumber = random(0,5); //Choisis un nombre aléatoire entre 0 et 6 while (digitalRead(B[randnumber])==1){ //Si le bouton correspondant au numéro choisit aléatoirement est au repos digitalWrite(Led[randnumber],HIGH); //On allume la LED correspondant au bouton } digitalWrite(Led[randnumber],LOW); //Quand on sort de la boucle, on éteint la LED correspondante delay(100); //Délai de 0.1 seconde pour reprendre son souffle score = score + 1; //On incrémente le score de 1 Serial.println(score); } if (score==30){ //Si la partie est finie start = 0; score = 0; //On reset le score }
}