Fablab ado > defi vitesse - arduino
C’est la reprise ;-)
commençons par un petit jeu !
Objectif :
Qui sera le plus rapide ? voici un petit jeu qui se joue à 2.
Lorsque la LED rouge du milieu s’allume : les joueurs doivent appuyer le plus vite possible sur leur bouton. La LED bleue du joueur qui a été le plus rapide à appuyer s’allume alors.
Un joueur gagne s’il a atteint le nombre de 5 victoires (LED bleue allumée 5 fois).
Un message est envoyé via le moniteur série pour dire qui a gagné.
Matériel nécessaire :
1 LED rouge
2 LED Bleues
5 résistances de 220ohm
2 boutons poussoir
des câbles
1 arduino
Voici le montage :
- montage_defi_vitesse_2
- montage_defi_vitesse_1
et voici le code :
// defi vitesse PLMCB
int ledm=10; //Led du Milieu
int ledd=8; // Led de Droide
int ledg=12; // Led de Gauche
int victd=0; // compteur victoire joueur de droite
int victg=0; // compteur victoire joueur de gauche
void setup()
{
Serial.begin(9600);
pinMode(ledm, OUTPUT);
pinMode(ledd, OUTPUT);
pinMode(ledg, OUTPUT);
pinMode(2, INPUT);
pinMode(3, INPUT);
}
void loop()
{
Serial.println("**** ETES VOUS PRETS ? *****");
digitalWrite(ledm, LOW); // set the LED off
digitalWrite(ledd, LOW); // set the LED off
digitalWrite(ledg, LOW); // set the LED off
int t = random(1,9); // mode aleatoire
delay(t*500); // delai d'attente entre 1 x 500ms et 9 x 500ms
digitalWrite(ledm, HIGH); // allumer la led du milieu
int s1 = 0; //signal droite
int s2 = 0; //signal gauche
while (!s1 && !s2)
{
s1=digitalRead(2);
s2=digitalRead(3);
}
if(s1 && !s2) // s1 avant (droit)
{
digitalWrite(ledd, HIGH); // set the LED on
digitalWrite(ledg, LOW); // set the LED off
victd++; // le joueur de droite a appuyer avant le joueur de gauche, on incremente le nbre de victoire
}
else if(!s1 && s2) //s2 avant (gauche)
{
digitalWrite(ledd, LOW); // set the LED off
digitalWrite(ledg, HIGH); // set the LED on
victg++;
}
else
{
// s1=s2
digitalWrite(ledd, HIGH); // set the LED on
digitalWrite(ledg, HIGH); // set the LED on
}
delay(200); // wait
if (victd==5)
{
Serial.println("joueur de droite gagne");
Serial.print("Joueur Droite");
Serial.println(victd);
Serial.print("Joueur Gauche");
Serial.println(victg);
victd=0;
victg=0;
}
if (victg==5)
{
Serial.println("joueur de gauche gagne");
Serial.print("Joueur Droite");
Serial.println(victd);
Serial.print("Joueur Gauche");
Serial.println(victg);
victd=0;
victg=0;
}
}
Pour ouvrir le moniteur série : outils / ouvrir le moniteur série dans le logiciel arduino :
- programme_defi_vitesse
A vous de jouer !
Source : les wikidébrouillards, rubrique jeu de réflexes.
Partager cette page