=== '''Le montage''' ===
Il suffit de faire le montage sur la plaque Labdec comme ci-dessous (cliquer sur la photo pour avoir le schéma en entier)
+, Si tout se passe bien, toutes les diodes sont alors allumées. Chaque joueur se voit attribuer 3 boutons qui éteindront respectivement une, deux ou trois LED. Les LED sont des représentations symboliques des bâtonnets. Le joueur qui éteindra la dernière source de lumière visible sur la plaque Labdec perdra immédiatement la manche. Il suffit d'appuyer sur le bouton reset de l'Arduino pour relancer une manche.
+,
* Démarrer le logiciel Arduino
* Copier dans le logiciel le programme ci-dessous, puis aller dans « édition » et cliquer sur « téléversement »
Voici le code :
// --- Programme Arduino ---
//Projet Baton
//par : Floran Masson, Kristen Joie, Kévin Jan, Alexandre Devalavieille, Josselin Kerdraon
int i; //Utile pour les boucles
//Les diodes sont stockées en mémoire dans un tableau
int TABLEAUDIODE[12]={2,3,4,5,6,7,8,9,10,11,12,13};
//On associe les boutons en entrée
int BOUTON14 = 14; //
int BOUTON15 = 15; //
int BOUTON16 = 16; //
int BOUTON17 = 17; //
int BOUTON18 = 18; //
int BOUTON19 = 19; //
//Ces variables servent à rendre les vérifications plus claires
int APPUI = 1;
int PAS_APPUI = 0;
//Etat des boutons
int ETAT_BOUTON14;
int ETAT_BOUTON15;
int ETAT_BOUTON16;
int ETAT_BOUTON17;
int ETAT_BOUTON18;
int ETAT_BOUTON19;
//Variables variables
int nbr=13; //Nombre de bâtons restants
int ordre=1; //À qui c'est de jouer ? 1 : Joueur 1, 2 : Joueur 2
void setup() { // dÉbut de la fonction setup()
// --- ici instructions à exécuter au démarrage ---
// ------- Broches en sortie -------
for(i=2 ; i++ ; i<=13)
{
pinMode(TABLEAUDIODE[i], OUTPUT);
}
pinMode(BOUTON14, INPUT); //met le bouton en entree
pinMode(BOUTON15, INPUT); //met le bouton en entree
pinMode(BOUTON16, INPUT); //met le bouton en entree
pinMode(BOUTON17, INPUT); //met le bouton en entree
pinMode(BOUTON18, INPUT); //met le bouton en entree
pinMode(BOUTON19, INPUT); //met le bouton en entree
//------- initialisation des LEDs au début = feu 1 au rouge et feu 2 au vert
//Au début du jeu, toutes les diodes sont allumÉes
digitalWrite(TABLEAUDIODE[0],HIGH);
digitalWrite(TABLEAUDIODE[1],HIGH);
digitalWrite(TABLEAUDIODE[2],HIGH);
digitalWrite(TABLEAUDIODE[3],HIGH);
digitalWrite(TABLEAUDIODE[4],HIGH);
digitalWrite(TABLEAUDIODE[5],HIGH);
digitalWrite(TABLEAUDIODE[6],HIGH);
digitalWrite(TABLEAUDIODE[7],HIGH);
digitalWrite(TABLEAUDIODE[8],HIGH);
digitalWrite(TABLEAUDIODE[9],HIGH);
digitalWrite(TABLEAUDIODE[10],HIGH);
digitalWrite(TABLEAUDIODE[11],HIGH);
delay(5000);
} // fin de la fonction setup()
void loop() {
//permet la lecture des boutons
ETAT_BOUTON14=digitalRead(BOUTON14); //Joueur A : retirer 1
ETAT_BOUTON15=digitalRead(BOUTON15); //Joueur A : retirer 2
ETAT_BOUTON16=digitalRead(BOUTON16); //Joueur A : retirer 3
ETAT_BOUTON17=digitalRead(BOUTON17); //Joueur B : retirer 1
ETAT_BOUTON18=digitalRead(BOUTON18); //Joueur B : retirer 2
ETAT_BOUTON19=digitalRead(BOUTON19); //Joueur B : retirer 3
//Joueur A
if (ETAT_BOUTON14 == APPUI)&&(ordre == 1))
{
//Retirer 1 bâton
nbr-=1; //Le nombre de bâtons est diminué de 1
ordre=2; //C'est au joueur 2 de jouer
}
if ((ETAT_BOUTON15 == APPUI)&&(ordre == 1))
{
//Retirer 2 bâtons
nbr-=2; //Le nombre de bâtons est diminué de 1
ordre=2; //C'est au joueur 2 de jouer
}
if ((ETAT_BOUTON16 == APPUI)&&(ordre == 1))
{
//Retirer 3 bâtons
nbr-=3; //Le nombre de bâtons est diminué de 3
ordre=2; //C'est au joueur 2 de jouer
}
//Joueur B
if ((ETAT_BOUTON17 == APPUI)&&(ordre == 2))
{
//Retirer 1 bâton
nbr-=1; //Le nombre de bâtons est diminue de 1
ordre=1; //C'est au joueur 1 de jouer
}
if ((ETAT_BOUTON18 == APPUI)&&(ordre == 2))
{
//Retirer 2 bâtons
nbr-=2; //Le nombre de bâtons est diminué de 2
ordre=1; //C'est au joueur 1 de jouer
}
if ((ETAT_BOUTON19 == APPUI)&&(ordre == 2))
{
//Retirer 3 bâtons
nbr-=3; //Le nombre de bâtons est diminué de 3
ordre=1; //C'est au joueur 1 de jouer
}
//Affichage
for (i=2; i++; i<nbr)
{
digitalWrite(TABLEAUDIODE[i],HIGH); //Les bâtons restants sont allumés
}
for (i=nbr; i++; i<=13)
{
digitalWrite(TABLEAUDIODE[i],LOW); //Les bâtons retirés ne sont pas allumés
}
}