Modification codage projet existant

Bonjour, je suis nouveau dans le domaine du codage arduino je suis tombé par hasard sur cette petite carte qui a tant de possibilité.
Je suis un joueur de paintball et pour agrémenter nos parties j ai trouvé ceci :

Le projet est vraiment déjà aboutis j'aimerais juste si c est possible ajouter un truc ou deux.
En gros il y a un timer réglable, j'aimerais pouvoir ajouter un message audio au démarrage du timer et proche de la fin.
Le premier servirait a expliquer la marche a suivre pour le désamorçage et l'autre pour dire par exemple "Attention il reste 5 minutes" et le dernier ajout serait de faire fonctionner une led qui flashe en même temps que cette alerte pour la durée qui reste au compteur.
Voila j ai tenté d'expliquer comme j'ai pu j'espère avoir réussi a m'expliquer.
Merci d'avance la team

En utilisant un DFPlayerMini (I/O Mode) et une carte SD avec vos pistes audio, vous comparerez vos temps (début, avertissement, etc.) à un « minuteur » (millis()) et si votre temps correspond à votre « minuteur », l'Arduino « court-circuitera » une broche sur le DFPlayerMini pour « lire la piste suivante ».

Et ben ca a l'air si simple quand vous me l'expliquez comme ca.
Je comprend la globalité du message mais j'ai du mal a le mettre en application dans le code déjà écris.
Le minuteur est réglable de ce fait peut-on faire démarrer un mp3 au début en sachant que ce minuteur peut varier si on décide de faire une partie d'une heure ou deux?
Pour celui a 5 minutes de la fin on lui entre cette valeur et a chaque fois qu'un minuteur arrive a 5 min ca se déclenche?

Voici le code:

//Gestion des entrées//////////////////
const int btrouge = A3;    //Broche du bouton rouge
const int btvert = A2;     //Broche du bouton vert
const int cptmercure = A1; //Broche capteur mercure
int Fildesamorcage = A0;   //Broche fils desamorcages
///////////////////////////////////////

//Gestion des sorties//////////////////
const int bipper = 12;     //Broche du bipper
const int ledrouge = 11;   //Broche Led rouge
const int relayalarme = 10;//Broche Relay alarme
///////////////////////////////////////

//Gestion Keypad///////////////////////
#include <Keypad.h>
const int ROW_NUM = 4; //four rows
const int COLUMN_NUM = 4; //four columns
char keys[ROW_NUM][COLUMN_NUM] = {
  {'1','2','3', 'H'},
  {'4','5','6', 'B'},
  {'7','8','9', 'G'},
  {'*','0','#', 'D'}
};
byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM );
///////////////////////////////////////

//Gestion LCD /////////////////////////
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display
byte tiretdroite[8] = {B00001,B00001,B00001,B00001,B00001,B00001,B00001,B00001};
byte tiretgauche[8] = {B10000,B10000,B10000,B10000,B10000,B10000,B10000,B10000};
byte barrepleinechargement[8] = {B11111,B00000,B11111,B11111,B11111,B11111,B00000,B11111};
byte barrevidechargement[8] = {B11111,B00000,B00000,B00000,B00000,B00000,B00000,B11111};
byte fleche[] = {B00000,B00100,B00010,B11111,B00010,B00100,B00000,B00000};
///////////////////////////////////////

//Variables programmes ////////////////

//Variable gestion entrées
boolean EtatboutonVert;
boolean EtatboutonRouge;
boolean EtatcptMercure;
int ValeurRfilsdesamorcage[4] = {512, 343, 259, 208}; //Valeur de résistance par fils retirer
int EtatFilcouper;

//
int NavModejeu = 1;  //Navigation mode jeu
int Nbmodejeu = 3;   //Nombre de jeux programmer
int Modedejeu = 0;   //Stock le N° du jeu selectionner
int Animation[4] = {4,0,14,0};
unsigned long TimerBip[5] = {0, 0, 0, 0, 0};

//Variable gestion du clavier
char key;

//Variable gestion du temps
unsigned long currentTime;

//Variable Bt reset
unsigned long Timereset = 0;
int ImpulsBtReset = 0; //Stock le nombre impulsion sur bouton reset 

//Variable Mode Explosif
int NavModeExplosif = 0;  //Navigation dans mode Explosif
int TpsjeuExplosif [7] = {0, 0, 0, 0, 0, 0, 0}; //Stock la valeur des temps(H,H,M,M,S,S,M)
int CodeExplosif [8] = {0, 0, 0, 0, 99, 99, 99, 99}; //Stock le code de l'explosif
int PourcentPenalite [8] = {0, 0, 0, 0, 0, 0, 0, 0}; 
int NavCodeBombe = 0; 
int TpsDecrementationBombe;
int PourcentcumulPenalites = 0;
int Randomnum;
int RandomNumSav[2] = {0, 0};
int RandomNumSavNum = 0;

//Variable Mode Domination
int NavModeDomination = 0;  //Navigation dans mode Domination
int TpsjeuDomination[7] = {0, 0, 0, 0, 0, 0, 0}; //Stock la valeur des temps(H,H,M,M,S,S,M)
unsigned long Timersecpartie = 0;
boolean Btactif[2] = {0, 0};

//
int GestionTemps[6] = {0, 0, 0, 0, 0, 0};
boolean Actifcptmouv = 0;
unsigned long TimerActifcptmouv;
unsigned long Tpsscrutation;
unsigned long Clignotementsaisie;
///////////////////////////////////////

void setup(){
  Serial.begin(9600);
  lcd.init();
  lcd.backlight();
  lcd.createChar(2, tiretdroite);
  lcd.createChar(3, tiretgauche);
  lcd.createChar(4, barrepleinechargement);
  lcd.createChar(5, barrevidechargement);
  lcd.createChar(6, fleche);
  
  pinMode(btrouge,INPUT_PULLUP);
  pinMode(btvert,INPUT_PULLUP);
  pinMode(cptmercure,INPUT);
  pinMode(bipper,OUTPUT);
  pinMode(ledrouge,OUTPUT);
  pinMode(relayalarme,OUTPUT);
  intro(); 
  chargement();
  lcd.clear();

}
  
void loop(){
  currentTime = millis();
  int TpsScrutation = currentTime - Tpsscrutation;
  Serial.print("Tps scrutation ");
  Serial.print(TpsScrutation);
  Serial.println(" ms");
  Tpsscrutation =  millis();
  key = "99";
  key = keypad.getKey();
  btreset(); 
  if(Modedejeu == 0){
    selectmodejeu();  
  }
  else if(Modedejeu == 1){
    Domination();
  }
  else if(Modedejeu == 2){
    Explosif();
  }
  else{
    Modedejeu = 0;
    NavModejeu = 1;
  }
}

void selectmodejeu(){
//SELECTION DU MODE DE JEU ////////////
  if (key == 'B' && Modedejeu == 0){
    if(NavModejeu == Nbmodejeu){
      NavModejeu = 1;
    }
    else{
      NavModejeu++;   
    }    
  }
  else if (key == 'H' && Modedejeu == 0){
    if(NavModejeu == 1){
      NavModejeu = Nbmodejeu;
    }
    else{
      NavModejeu--;   
    }
  }
  else if (key == '#' && Modedejeu == 0){
    Modedejeu = NavModejeu;
    NavModejeu = 0;
    key == ' ';  
  }
  
  switch (NavModejeu) {
    case 0:
      break;
    case 1:
      lcd.setCursor(0, 0);
      lcd.print("SELECTION DU JEUX : ");
      lcd.setCursor(2, 1);
      lcd.print("Domination ");
      lcd.setCursor(2, 2);
      lcd.print("Explosif");
      lcd.setCursor(2, 3);
      lcd.print("--------");
      lcd.setCursor(0, 1);
      lcd.write(byte(6));
      lcd.setCursor(0, 2);
      lcd.print(" ");
      lcd.setCursor(0, 3);
      lcd.print(" ");
      break;
    case 2:
      lcd.setCursor(0, 1);
      lcd.print(" ");
      lcd.setCursor(0, 2);
      lcd.write(byte(6));
      lcd.setCursor(0, 3);
      lcd.print(" ");
      break;
    case 3:
      lcd.setCursor(0, 1);
      lcd.print(" ");
      lcd.setCursor(0, 2);
      lcd.print(" ");
      lcd.setCursor(0, 3);
      lcd.write(byte(6));
      break;
    default:
      break;
  }
///////////////////////////////////////
}

int saisieclavier(int Saisie){
//GESTION SAISIE CLAVIER //////////////
  if (key == '1'){
    Saisie = 1;      
  }
  else if(key == '2'){
    Saisie = 2;      
  } 
  else if(key == '3'){
    Saisie = 3;      
  } 
  else if(key == '4'){
    Saisie = 4;      
  } 
  else if(key == '5'){
    Saisie = 5;      
  } 
  else if(key == '6'){
    Saisie = 6;      
  } 
  else if(key == '7'){
    Saisie = 7;      
  } 
  else if(key == '8'){
    Saisie = 8;      
  } 
  else if(key == '9'){
    Saisie = 9;      
  } 
  else if(key == '0'){
    Saisie = 0;      
  } 
  return(Saisie);   
///////////////////////////////////////
}

int flechehaut(){
//GESTION BOUTON FLECHE HAUT ///////
  int Saisie = 0;
  if (key == 'H'){
    Saisie = 1;      
  }
  else{
    Saisie = 0;   
  }
  return Saisie;  
///////////////////////////////////////    
}

int flechebas(){
//GESTION BOUTON FLECHE BAS ///////
  int Saisie = 0;
  if (key == 'B'){
    Saisie = -1;      
  }
  else{
    Saisie = 0;   
  }
  return Saisie;  
///////////////////////////////////////    
}

int btgauche(){
//GESTION BOUTON FLECHE GAUCHE ///////
  int Saisie = 0;
  if (key == 'G'){
    Saisie = -1;      
  }
  else{
    Saisie = 0;   
  }
  return Saisie;  
///////////////////////////////////////    
}

int btdroite(){
//GESTION BOUTON FLECHE DROITE ///////
  int Saisie = 0;
  if (key == 'D'){
    Saisie = 1;      
  }
  else{
    Saisie = 0;   
  }
  return Saisie;  
///////////////////////////////////////    
}

int btvalider(){
//GESTION BOUTON VALIDER /////////////
  int Saisie = 0;
  if (key == '#'){
    Saisie = 1;      
  }
  else{
    Saisie = 0;   
  }
  return Saisie;  
///////////////////////////////////////    
}

void btreset(){
//GESTION BOUTON RESET ////////////////
  if (key == '*' && Timereset == 0){   
    Timereset = millis();
    ImpulsBtReset++;
  }
  else if (key == '*' && ImpulsBtReset == 3 ){
    reset();  
  }
  else if (key == '*' && Timereset > 0 && currentTime < (Timereset+2000)){
    ImpulsBtReset++;
  }
  else if (Timereset > 0 && currentTime > (Timereset+2000)){
    ImpulsBtReset = 0;
    Timereset = 0;
  } 
///////////////////////////////////////    
}

void reset(){
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("  - Bombe Reset. -   ");
  delay(2000);
  digitalWrite(bipper , HIGH);
  delay(50);
  digitalWrite(bipper , LOW);
  delay(50);
  digitalWrite(bipper , HIGH);
  delay(50);
  digitalWrite(bipper , LOW);
  digitalWrite(ledrouge , LOW);
  digitalWrite(relayalarme  , LOW);
  ImpulsBtReset = 0;
  Timereset = 0;
  Timersecpartie = 0;
  //Variables à remettre à 0 pour le reset
  NavModejeu = 1;
  Modedejeu = 0;
  //Variable Mode Domination à remettre à 0 pour le reset
  NavModeDomination = 0;
  for (int i = 0; i <= 5; i++) {
    GestionTemps[i] = 0;
  }
  for (int i = 0; i <= 4; i++) {
    TimerBip[i] = 0;
  }
  Animation[0] = 4;
  Animation[1] = 0;
  Animation[2] = 14;
  Animation[3] = 0;
  Btactif[0] = 0;
  Btactif[1] = 0;  
  Clignotementsaisie = 0;
  //Variable Mode Explosif à remettre à 0 pour le reset
  NavModeExplosif = 0;
  NavCodeBombe = 0; 
  PourcentcumulPenalites = 0;
  RandomNumSav[0] = 0;
  RandomNumSav[1] = 0;
  RandomNumSavNum = 0;
}

void intro(){
//INTRO BOMB SIMULATOR ////////////////
  lcd.setCursor(0, 0);
  lcd.print("-- Bomb simulator --");
  lcd.setCursor(0, 2);
  lcd.print("--     AIRSOFT    --");
  lcd.setCursor(0, 3);
  lcd.print("     -- V1.2 --     ");
  delay(500);   
///////////////////////////////////////
}

void chargement(){
//BARRE CHARGEMENT ////////////////////
  lcd.setCursor(1, 1);
  lcd.write(byte(2));
  for (int i = 2; i <= 17; i++) {
      lcd.setCursor(i, 1);
      lcd.write(byte(5));
  }
  lcd.setCursor(18, 1);
  lcd.write(byte(3));
  for (int i = 2; i <= 17; i++) {
      lcd.setCursor(i, 1);
      lcd.write(byte(4));
      delay(100);
  } 
/////////////////////////////////////// 
}

void Domination(){
//GESTION JEU DOMINATION //////////////
  switch (NavModeDomination) {
    case 0:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("  -- DOMINATION --  ");
      NavModeDomination++;
      break;
    case 1:
      chargement();
      NavModeDomination++;
      break;
    case 2:
      lcd.setCursor(0, 1);
      lcd.print("   Temps de jeu :   ");
      lcd.setCursor(6, 2);
      lcd.print(TpsjeuDomination[0]);
      lcd.setCursor(7, 2);
      lcd.print(TpsjeuDomination[1]);
      lcd.setCursor(8, 2);
      lcd.print(":");
      lcd.setCursor(9, 2);
      lcd.print(TpsjeuDomination[2]);
      lcd.setCursor(10, 2);
      lcd.print(TpsjeuDomination[3]);
      lcd.setCursor(11, 2);
      lcd.print(":");
      lcd.setCursor(12, 2);
      lcd.print(TpsjeuDomination[4]);
      lcd.setCursor(13, 2);
      lcd.print(TpsjeuDomination[5]);
      NavModeDomination++;
      break;
    case 3:
      //Saisie H 
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btvalider() == 0){
        lcd.setCursor(6, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btvalider() == 1){
        lcd.setCursor(6, 2);
        lcd.print(TpsjeuDomination[0]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      Serial.println(key);
      if(TpsjeuDomination[1] <= 3 && (key == '0' || key == '1' || key == '2')){
        TpsjeuDomination[0] = saisieclavier(TpsjeuDomination[0]);
        lcd.setCursor(6, 2);
        lcd.print(TpsjeuDomination[0]);
        NavModeDomination++;    
      }
      else if(TpsjeuDomination[1] > 3 && (key == '0' || key == '1')){
        TpsjeuDomination[0] = saisieclavier(TpsjeuDomination[0]);
        lcd.setCursor(6, 2);
        lcd.print(TpsjeuDomination[0]);
        NavModeDomination++;   
      }
      NavModeDomination = NavModeDomination + btdroite() + btvalider();
      break;
    case 4:
      //Saisie HH
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(7, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(7, 2);
        lcd.print(TpsjeuDomination[1]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      }
      if(TpsjeuDomination[0] < 2 && (key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9')){
        TpsjeuDomination[1] = saisieclavier(TpsjeuDomination[1]);
        lcd.setCursor(7, 2);
        lcd.print(TpsjeuDomination[1]);
        NavModeDomination++;    
      }
      else if(TpsjeuDomination[0] >= 2 && (key == '0' || key == '1' || key == '2' || key == '3')){
        TpsjeuDomination[1] = saisieclavier(TpsjeuDomination[1]);
        lcd.setCursor(7, 2);
        lcd.print(TpsjeuDomination[1]);
        NavModeDomination++;    
      }
      NavModeDomination = NavModeDomination + btgauche() + btdroite() + btvalider();
      break;
    case 5:
      //Saisie M
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(9, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(9, 2);
        lcd.print(TpsjeuDomination[2]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5'){
        TpsjeuDomination[2] = saisieclavier(TpsjeuDomination[2]);
        lcd.setCursor(9, 2);
        lcd.print(TpsjeuDomination[2]);
        NavModeDomination++;    
      }
      NavModeDomination = NavModeDomination + btgauche() + btdroite() + btvalider();
      break;
    case 6:
      //Saisie MM
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(10, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1  || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(10, 2);
        lcd.print(TpsjeuDomination[3]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        TpsjeuDomination[3] = saisieclavier(TpsjeuDomination[3]);
        lcd.setCursor(10, 2);
        lcd.print(TpsjeuDomination[3]);
        NavModeDomination++;    
      }
      NavModeDomination = NavModeDomination + btgauche() + btdroite() + btvalider();
      break;
    case 7:
      //Saisie S
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(12, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(12, 2);
        lcd.print(TpsjeuDomination[4]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5'){
        TpsjeuDomination[4] = saisieclavier(TpsjeuDomination[4]);
        lcd.setCursor(12, 2);
        lcd.print(TpsjeuDomination[4]);
        NavModeDomination++;    
      }
      NavModeDomination = NavModeDomination + btgauche() + btdroite() + btvalider();
      break;
    case 8:
      //Saisie SS
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(13, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1  || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(13, 2);
        lcd.print(TpsjeuDomination[5]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        TpsjeuDomination[5] = saisieclavier(TpsjeuDomination[5]);
        lcd.setCursor(13, 2);
        lcd.print(TpsjeuDomination[5]);
        NavModeDomination++;    
      }
      NavModeDomination = NavModeDomination + btgauche() + btdroite() + btvalider();
      break;
    case 9:
      lcd.setCursor(0, 3);
      lcd.print("Press # pour valider");
      if(btgauche() == -1){
        lcd.setCursor(0, 3);
        lcd.print("                    ");  
      }
      NavModeDomination = NavModeDomination + btgauche() + btvalider();
      break;
    case 10:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("  -- DOMINATION --  ");
      lcd.setCursor(0, 1);
      lcd.print("   Debut du jeu :   ");
      NavModeDomination++;
      break;
    case 11:
    //Saisie M
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(5, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(5, 2);
        lcd.print(TpsjeuDomination[6]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      }
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5'){
        TpsjeuDomination[6] = saisieclavier(TpsjeuDomination[6]);
        lcd.setCursor(5, 2);
        lcd.print(TpsjeuDomination[6]);
        NavModeDomination++;    
      }
      if(TpsjeuDomination[6] <=1){
        lcd.setCursor(6, 2);
        lcd.print(" minute ");
      }
      else{
        lcd.setCursor(6, 2);
        lcd.print(" minutes");
      }
      NavModeDomination = NavModeDomination + btdroite() + btvalider();
      break;
    case 12:
      lcd.setCursor(0, 3);
      lcd.print("Press # pour valider");
      if(btgauche() == -1){
        lcd.setCursor(0, 3);
        lcd.print("                    ");  
      }
      NavModeDomination = NavModeDomination + btgauche() + btvalider();
      break;
    case 13:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("  -- DOMINATION --  ");
      lcd.setCursor(1, 1);
      lcd.print("Capteur mouvement  ");
      lcd.setCursor(0, 3);
      lcd.print("Press # pour valider");
      NavModeDomination++;
      break;
    case 14:
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0){
        lcd.setCursor(4, 2);
        lcd.print("-         -"); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1){
        if(Actifcptmouv == 0){
          lcd.setCursor(4, 2);
          lcd.print("-  Actif  -");  
        }
        else{
          lcd.setCursor(4, 2);
          lcd.print("- Inactif -");  
        }
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      }
      if (flechehaut() == 1 || flechebas() == -1){
        Actifcptmouv = !Actifcptmouv;  
      }
      NavModeDomination = NavModeDomination + btvalider();
      break;
    case 15:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("  -- DOMINATION --  ");
      NavModeDomination++;
      break;
    case 16:
      lcd.setCursor(0, 1);
      lcd.print("Tps jeu : ");
      lcd.setCursor(12, 1);
      lcd.print(TpsjeuDomination[0]);
      lcd.setCursor(13, 1);
      lcd.print(TpsjeuDomination[1]);
      lcd.setCursor(14, 1);
      lcd.print(":");
      lcd.setCursor(15, 1);
      lcd.print(TpsjeuDomination[2]);
      lcd.setCursor(16, 1);
      lcd.print(TpsjeuDomination[3]);
      lcd.setCursor(17, 1);
      lcd.print(":");
      lcd.setCursor(18, 1);
      lcd.print(TpsjeuDomination[4]);
      lcd.setCursor(19, 1);
      lcd.print(TpsjeuDomination[5]);
      lcd.setCursor(0, 2);
      lcd.print("Debut jeu : ");
      lcd.setCursor(14, 2);
      lcd.print(TpsjeuDomination[6]);
      lcd.setCursor(15, 2);
      lcd.print(" min");
      lcd.setCursor(0, 3);
      lcd.print("Press # pour lancer");
      NavModeDomination = NavModeDomination + btvalider();
      break;
    case 17:
      lcd.clear();
      GestionTemps[0] = TpsjeuDomination[6];
      lcd.setCursor(0, 0);
      lcd.print("  -- DOMINATION --  ");
      lcd.setCursor(0, 1);
      lcd.print("   Debut du jeu :   ");
      lcd.setCursor(6, 2);
      lcd.print("00");  
      lcd.setCursor(8, 2);
      lcd.print(":0");
      lcd.setCursor(10, 2);
      lcd.print(GestionTemps[0]);
      lcd.setCursor(11, 2);
      lcd.print(":");
      lcd.setCursor(12, 2);
      lcd.print("00");
      NavModeDomination++;
      break;
    case 18:
      if(Timersecpartie == 0){
        Timersecpartie = currentTime; 
      }
      else if (currentTime > (Timersecpartie + 1000)){
        if(GestionTemps[1] > 0){
          GestionTemps[1]--;
          if(GestionTemps[1] >= 10){
            lcd.setCursor(12, 2);
            lcd.print(GestionTemps[1]);  
          }
          else{
            lcd.setCursor(12, 2);
            lcd.print("0");
            lcd.setCursor(13, 2);
            lcd.print(GestionTemps[1]);
          }
        }
      else if(GestionTemps[1] == 0 && GestionTemps[0] > 0){
        GestionTemps[1] = 59;
        GestionTemps[0]--;
          lcd.setCursor(10, 2);
          lcd.print(GestionTemps[0]);
          lcd.setCursor(12, 2);
          lcd.print(GestionTemps[1]);
      }
      else{
        NavModeDomination++;  
      }
        Timersecpartie = currentTime;     
      } 
      bipper1();
      break; 
    case 19:
      for (int i = 0; i <= 5; i++) {
        GestionTemps[i] = 0;
      }
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("  -- DOMINATION --  ");
      lcd.setCursor(0, 1);
      lcd.print("Equipe R    Equipe V");
      lcd.setCursor(0, 2);
      lcd.print("00:00:00");
      lcd.setCursor(12, 2);
      lcd.print("00:00:00");
      lcd.setCursor(0, 3);
      lcd.print("Objectif :");
      lcd.setCursor(12, 3);
      lcd.print(TpsjeuDomination[0]);
      lcd.setCursor(13, 3);
      lcd.print(TpsjeuDomination[1]);
      lcd.setCursor(14, 3);
      lcd.print(":");
      lcd.setCursor(15, 3);
      lcd.print(TpsjeuDomination[2]);
      lcd.setCursor(16, 3);
      lcd.print(TpsjeuDomination[3]);
      lcd.setCursor(17, 3);
      lcd.print(":");
      lcd.setCursor(18, 3);
      lcd.print(TpsjeuDomination[4]);
      lcd.setCursor(19, 3);
      lcd.print(TpsjeuDomination[5]);
      digitalWrite(ledrouge , HIGH);
      NavModeDomination++;
      break; 
    case 20:
      bipper3();
      EtatboutonVert = digitalRead(btvert);
      EtatboutonRouge = digitalRead(btrouge);
      EtatcptMercure = digitalRead(cptmercure);
      if(EtatcptMercure == 0 && Actifcptmouv == 0){
        bipper4();
         Serial.println(EtatcptMercure);
      }
      else{
        if(Btactif[0] == 1){
          bipper1();  
        }
        else if (Btactif[1] == 1){
          bipper2();  
        }  
      }
      if(EtatboutonVert == 0){
        Btactif[0] = 0;
        Btactif[1] = 1;     
      }
      else if (EtatboutonRouge == 0){
        Btactif[0] = 1;
        Btactif[1] = 0;     
      }
      if(Timersecpartie == 0){
        currentTime = millis();
        Timersecpartie = currentTime; 
      }
      else if (currentTime > (Timersecpartie + 1000)){ 
        if(Btactif[0] == 1){
          GestionTemps[2]++;  
          if(GestionTemps[2] >= 10){
            lcd.setCursor(6, 2);
            lcd.print(GestionTemps[2]);  
          }
          else{
            lcd.setCursor(6, 2);
            lcd.print("0");
            lcd.setCursor(7, 2);
            lcd.print(GestionTemps[2]);
          }
        }
        else if(Btactif[1] == 1){
          GestionTemps[5]++;
          if(GestionTemps[5] >= 10){
            lcd.setCursor(18, 2);
            lcd.print(GestionTemps[5]);  
          }
          else{
            lcd.setCursor(18, 2);
            lcd.print("0");
            lcd.setCursor(19, 2);
            lcd.print(GestionTemps[5]);
          }
        }
        Timersecpartie = currentTime;  
      }
      if(GestionTemps[5] > 59){
        GestionTemps[4]++;  
        GestionTemps[5] = 0;
        if(GestionTemps[4] >= 10){
          lcd.setCursor(15, 2);
          lcd.print(GestionTemps[4]);  
        }
        else{
          lcd.setCursor(15, 2);
          lcd.print("0");
          lcd.setCursor(16, 2);
          lcd.print(GestionTemps[4]);
        }
        lcd.setCursor(18, 2);
        lcd.print("0");
        lcd.setCursor(19, 2);
        lcd.print(GestionTemps[5]);
      }
      if(GestionTemps[4] > 59){
        GestionTemps[3]++;  
        GestionTemps[4] = 0;
        if(GestionTemps[0] >= 10){
          lcd.setCursor(12, 2);
          lcd.print(GestionTemps[3]);  
        }
        else{
          lcd.setCursor(12, 2);
          lcd.print("0");
          lcd.setCursor(13, 2);
          lcd.print(GestionTemps[3]);
        }
        lcd.setCursor(15, 2);
        lcd.print("0");
        lcd.setCursor(16, 2);
        lcd.print(GestionTemps[4]);
      }
      if(GestionTemps[2] > 59){
        GestionTemps[1]++;  
        GestionTemps[2] = 0;
        if(GestionTemps[1] >= 10){
          lcd.setCursor(3, 2);
          lcd.print(GestionTemps[1]);  
        }
        else{
          lcd.setCursor(3, 2);
          lcd.print("0");
          lcd.setCursor(4, 2);
          lcd.print(GestionTemps[1]);
        }
        lcd.setCursor(6, 2);
        lcd.print("0");
        lcd.setCursor(7, 2);
        lcd.print(GestionTemps[2]);
      }
      if(GestionTemps[1] > 59){
        GestionTemps[0]++;  
        GestionTemps[1] = 0;
        if(GestionTemps[0] >= 10){
          lcd.setCursor(0, 2);
          lcd.print(GestionTemps[0]);  
        }
        else{
          lcd.setCursor(0, 2);
          lcd.print("0");
          lcd.setCursor(1, 2);
          lcd.print(GestionTemps[0]);
        }
        lcd.setCursor(3, 2);
        lcd.print("0");
        lcd.setCursor(4, 2);
        lcd.print(GestionTemps[1]);
      }
      if( (GestionTemps[0] >= ((TpsjeuDomination[0]*10) + TpsjeuDomination[1])) && (GestionTemps[1] >= (TpsjeuDomination[2]*10) + TpsjeuDomination[3]) && (GestionTemps[2] >= (TpsjeuDomination[4]*10) + TpsjeuDomination[5])){
        NavModeDomination++; 
        TimerBip[2] = currentTime;  
        lcd.clear();  
      }
      if( (GestionTemps[3] >= ((TpsjeuDomination[0]*10) + TpsjeuDomination[1])) && (GestionTemps[4] >= (TpsjeuDomination[2]*10) + TpsjeuDomination[3]) && (GestionTemps[5] >= (TpsjeuDomination[4]*10) + TpsjeuDomination[5])){
        NavModeDomination = 22;  
        TimerBip[2] = currentTime; 
        lcd.clear();  
      }
      break;
    case 21:
      digitalWrite(ledrouge , LOW);
      lcd.setCursor(0, 0);
      lcd.print("  -- DOMINATION --  ");
      lcd.setCursor(0, 2);
      lcd.print("     Rouge WIN     ");
      animation1();
      bipper3();
      break; 
    case 22:
      digitalWrite(ledrouge , LOW);
      lcd.setCursor(0, 0);
      lcd.print("  -- DOMINATION --  ");
      lcd.setCursor(0, 2);
      lcd.print("     Vert  WIN     ");
      animation1();
      bipper3();
      break;    
    default:
      break;
  }
}

void animation1(){
  if(Timersecpartie == 0){
    Timersecpartie = currentTime; 
  }
  else if (currentTime > (Timersecpartie + 100)){
    Timersecpartie = currentTime; 
    if(Animation[1] == 0 && Animation[0] < 13){
      Animation[0]++; 
      Animation[2]--;
      lcd.setCursor(Animation[0], 3);
      lcd.print("-"); 
      lcd.setCursor(Animation[2], 1);
      lcd.print("-"); 
    }
    else if (Animation[1] == 0 && Animation[0] == 13){
      Animation[1] = 1;
    }
    else if (Animation[1] == 1 && Animation[0] > 4){
      lcd.setCursor(Animation[0], 3);
      lcd.print(" "); 
      lcd.setCursor(Animation[2], 1);
      lcd.print(" ");   
      Animation[0]--; 
      Animation[2]++;
    }
    else if(Animation[1] == 1 && Animation[0] == 4){
      lcd.setCursor(Animation[0], 3);
      lcd.print(" "); 
      lcd.setCursor(Animation[2], 1);
      lcd.print(" "); 
      Animation[1] = 0;  
    }  
  }  
}

void bipper1(){
  if(TimerBip[0] == 0){
    TimerBip[0] = currentTime; 
  }
  else if (currentTime > (TimerBip[0] + 950) && currentTime < (TimerBip[0] + 1000)){
    digitalWrite(bipper , HIGH); 
  }
  else if (currentTime > (TimerBip[0] + 1000)){
    TimerBip[0] = currentTime; 
    digitalWrite(bipper, LOW);
  }  
}

void bipper2(){
  if(TimerBip[1] == 0){
    TimerBip[1] = currentTime; 
  }
  else if (currentTime > (TimerBip[1] + 750) && currentTime < (TimerBip[1] + 800)){
    digitalWrite(bipper , HIGH); 
  }
  else if (currentTime > (TimerBip[1] + 850) && currentTime < (TimerBip[1] + 900)){
    digitalWrite(bipper, LOW);
  }
  else if (currentTime > (TimerBip[1] + 950) && currentTime < (TimerBip[1] + 1000)){
    digitalWrite(bipper , HIGH); 
  }
  else if (currentTime > (TimerBip[1] + 1000)){
    TimerBip[1] = currentTime; 
  digitalWrite(bipper, LOW);
  } 
}

void bipper3(){
  if(TimerBip[2] == 0){
    TimerBip[2] = currentTime; 
  }
  else if (currentTime > TimerBip[2] && currentTime < (TimerBip[2] + 2500)){
    digitalWrite(bipper , HIGH); 
    digitalWrite(relayalarme , HIGH); 
  }
  else if (currentTime > (TimerBip[2] + 2500)){
    digitalWrite(bipper, LOW);
    digitalWrite(relayalarme, LOW);
  }
}

void bipper4(){
  
  if(TimerBip[3] == 0){
    TimerBip[3] = currentTime; 
  }
  else if (currentTime > (TimerBip[3]) && currentTime < (TimerBip[3] + 100)){
    digitalWrite(bipper , HIGH); 
  }
  else if (currentTime > (TimerBip[3] + 200) && currentTime < (TimerBip[3] + 300)){
    digitalWrite(bipper, LOW);
  }
  else if (currentTime > (TimerBip[3] + 300) && currentTime < (TimerBip[3] + 400)){
    digitalWrite(bipper , HIGH); 
  }
  else if (currentTime > (TimerBip[3] + 400) && currentTime < (TimerBip[3] + 500)){ 
    digitalWrite(bipper, LOW);
  } 
  else if (currentTime > (TimerBip[3] + 500)){
    TimerBip[3] = currentTime;
  }
}

void bipper5(){
  
  if(TimerBip[4] == 0){
    TimerBip[4] = currentTime; 
  }
  else if (currentTime > (TimerBip[4]) && currentTime < (TimerBip[4] + 100)){
    digitalWrite(bipper , HIGH); 
    digitalWrite(relayalarme , HIGH); 
  }
  else if (currentTime > (TimerBip[4] + 200) && currentTime < (TimerBip[4] + 800)){
    digitalWrite(bipper, LOW);
    digitalWrite(relayalarme , LOW); 
  }
  else if (currentTime > (TimerBip[4] + 800) && currentTime < (TimerBip[4] + 900)){
    digitalWrite(bipper , HIGH);
    digitalWrite(relayalarme , HIGH);  
  }
  else if (currentTime > (TimerBip[4] + 900) && currentTime < (TimerBip[4] + 1500)){ 
    digitalWrite(bipper, LOW);
    digitalWrite(relayalarme , LOW); 
  } 
  else if (currentTime > (TimerBip[4] + 1500) && currentTime < (TimerBip[4] + 3000)){
    digitalWrite(bipper , HIGH); 
    digitalWrite(relayalarme , HIGH); 
  }
  else if (currentTime > (TimerBip[4] + 3000) && currentTime < (TimerBip[4] + 5000)){ 
    digitalWrite(bipper, LOW);
    digitalWrite(relayalarme , LOW); 
  } 
}

void Explosif(){
//GESTION JEU EXPLOSIF //////////////
  switch (NavModeExplosif) {
    case 0:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("  --  EXPLOSIF  --  ");
      NavModeExplosif++;
      break;
    case 1:
      chargement();
      NavModeExplosif++;
      break;
    case 2:
      lcd.setCursor(0, 1);
      lcd.print("   Temps de jeu :   ");
      lcd.setCursor(6, 2);
      lcd.print(TpsjeuExplosif[0]);
      lcd.setCursor(7, 2);
      lcd.print(TpsjeuExplosif[1]);
      lcd.setCursor(8, 2);
      lcd.print(":");
      lcd.setCursor(9, 2);
      lcd.print(TpsjeuExplosif[2]);
      lcd.setCursor(10, 2);
      lcd.print(TpsjeuExplosif[3]);
      lcd.setCursor(11, 2);
      lcd.print(":");
      lcd.setCursor(12, 2);
      lcd.print(TpsjeuExplosif[4]);
      lcd.setCursor(13, 2);
      lcd.print(TpsjeuExplosif[5]);
      NavModeExplosif++;
      break;
   case 3:
      //Saisie H 
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btvalider() == 0){
        lcd.setCursor(6, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btvalider() == 1){
        lcd.setCursor(6, 2);
        lcd.print(TpsjeuExplosif[0]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(TpsjeuExplosif[1] <= 3 && (key == '0' || key == '1' || key == '2')){
        TpsjeuExplosif[0] = saisieclavier(TpsjeuExplosif[0]);
        lcd.setCursor(6, 2);
        lcd.print(TpsjeuExplosif[0]);
        NavModeExplosif++;    
      }
      else if(TpsjeuExplosif[1] > 3 && (key == '0' || key == '1')){
        TpsjeuExplosif[0] = saisieclavier(TpsjeuExplosif[0]);
        lcd.setCursor(6, 2);
        lcd.print(TpsjeuExplosif[0]);
        NavModeExplosif++;   
      }
      NavModeExplosif = NavModeExplosif + btdroite() + btvalider();
      break;
    case 4:
      //Saisie HH
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(7, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(7, 2);
        lcd.print(TpsjeuExplosif[1]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      }
      if(TpsjeuExplosif[0] < 2 && (key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9')){
        TpsjeuExplosif[1] = saisieclavier(TpsjeuExplosif[1]);
        lcd.setCursor(7, 2);
        lcd.print(TpsjeuExplosif[1]);
        NavModeExplosif++;    
      }
      else if(TpsjeuExplosif[0] >= 2 && (key == '0' || key == '1' || key == '2' || key == '3')){
        TpsjeuExplosif[1] = saisieclavier(TpsjeuExplosif[1]);
        lcd.setCursor(7, 2);
        lcd.print(TpsjeuExplosif[1]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btgauche() + btdroite() + btvalider();
      break;
    case 5:
      //Saisie M
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(9, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(9, 2);
        lcd.print(TpsjeuExplosif[2]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5'){
        TpsjeuExplosif[2] = saisieclavier(TpsjeuExplosif[2]);
        lcd.setCursor(9, 2);
        lcd.print(TpsjeuExplosif[2]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btgauche() + btdroite() + btvalider();
      break;
    case 6:
      //Saisie MM
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(10, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1  || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(10, 2);
        lcd.print(TpsjeuExplosif[3]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        TpsjeuExplosif[3] = saisieclavier(TpsjeuExplosif[3]);
        lcd.setCursor(10, 2);
        lcd.print(TpsjeuExplosif[3]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btgauche() + btdroite() + btvalider();
      break;
    case 7:
      //Saisie S
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(12, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(12, 2);
        lcd.print(TpsjeuExplosif[4]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5'){
        TpsjeuExplosif[4] = saisieclavier(TpsjeuExplosif[4]);
        lcd.setCursor(12, 2);
        lcd.print(TpsjeuExplosif[4]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btgauche() + btdroite() + btvalider();
      break;
    case 8:
      //Saisie SS
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(13, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1  || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(13, 2);
        lcd.print(TpsjeuExplosif[5]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        TpsjeuExplosif[5] = saisieclavier(TpsjeuExplosif[5]);
        lcd.setCursor(13, 2);
        lcd.print(TpsjeuExplosif[5]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btgauche() + btdroite() + btvalider();
      break;
    case 9:
      lcd.setCursor(0, 3);
      lcd.print("Press # pour valider");
      if(btgauche() == -1){
        lcd.setCursor(0, 3);
        lcd.print("                    ");  
      }
      NavModeExplosif = NavModeExplosif + btgauche() + btvalider();
      break;
    case 10:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("  --  EXPLOSIF  --  ");
      lcd.setCursor(0, 1);
      lcd.print("   Debut du jeu :   ");
      NavModeExplosif++;
      break;
    case 11:
    //Saisie M
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(5, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(5, 2);
        lcd.print(TpsjeuExplosif[6]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      }
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5'){
        TpsjeuExplosif[6] = saisieclavier(TpsjeuExplosif[6]);
        lcd.setCursor(5, 2);
        lcd.print(TpsjeuExplosif[6]);
        NavModeExplosif++;    
      }
      if(TpsjeuDomination[6] <=1){
        lcd.setCursor(6, 2);
        lcd.print(" minute ");
      }
      else{
        lcd.setCursor(6, 2);
        lcd.print(" minutes");
      }
      NavModeExplosif = NavModeExplosif + btdroite() + btvalider();
      break;
    case 12:
      lcd.setCursor(0, 3);
      lcd.print("Press # pour valider");
      if(btgauche() == -1){
        lcd.setCursor(0, 3);
        lcd.print("                    ");  
      }
      NavModeExplosif = NavModeExplosif + btgauche() + btvalider();
      break;
    case 13:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("  --  EXPLOSIF --  ");
      lcd.setCursor(1, 1);
      lcd.print("Capteur mouvement  ");
      lcd.setCursor(0, 3);
      lcd.print("Press # pour valider");
      NavModeExplosif++;
      break;
    case 14:
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0){
        lcd.setCursor(4, 2);
        lcd.print("-         -"); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1){
        if(Actifcptmouv == 0){
          lcd.setCursor(4, 2);
          lcd.print("-  Actif  -");  
        }
        else{
          lcd.setCursor(4, 2);
          lcd.print("- Inactif -");  
        }
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      }
      if (flechehaut() == 1 || flechebas() == -1){
        Actifcptmouv = !Actifcptmouv;  
      }
      NavModeExplosif = NavModeExplosif + btvalider();
      break;
    case 15:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("  --  EXPLOSIF  --  ");
      lcd.setCursor(0, 1);
      lcd.print(" Code de la Bombe : ");
      lcd.setCursor(8, 2);
      lcd.print(CodeExplosif[0]);
      lcd.setCursor(9, 2);
      lcd.print(CodeExplosif[1]);
      lcd.setCursor(10, 2);
      lcd.print(CodeExplosif[2]);
      lcd.setCursor(11, 2);
      lcd.print(CodeExplosif[3]);
      NavModeExplosif++;
      break; 
    case 16:
      //Saisie 1 chiffre code 
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btvalider() == 0){
        lcd.setCursor(8, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btvalider() == 1){
        lcd.setCursor(8, 2);
        lcd.print(CodeExplosif[0]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        CodeExplosif[0] = saisieclavier(CodeExplosif[0]);
        lcd.setCursor(8, 2);
        lcd.print(CodeExplosif[0]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btdroite() + btvalider();
      break;
    case 17:
      //Saisie 2 chiffre code 
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0&& btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(9, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(9, 2);
        lcd.print(CodeExplosif[1]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        CodeExplosif[1] = saisieclavier(CodeExplosif[1]);
        lcd.setCursor(9, 2);
        lcd.print(CodeExplosif[1]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btdroite() + btgauche() + btvalider();
      break;
    case 18:
      //Saisie 3 chiffre code 
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0&& btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(10, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(10, 2);
        lcd.print(CodeExplosif[2]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        CodeExplosif[2] = saisieclavier(CodeExplosif[2]);
        lcd.setCursor(10, 2);
        lcd.print(CodeExplosif[2]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btdroite() + btgauche() + btvalider();
      break;
    case 19:
      //Saisie 4 chiffre code 
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(11, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(11, 2);
        lcd.print(CodeExplosif[3]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        CodeExplosif[3] = saisieclavier(CodeExplosif[3]);
        lcd.setCursor(11, 2);
        lcd.print(CodeExplosif[3]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btdroite() + btgauche() + btvalider();
      break;
    case 20:
      lcd.setCursor(0, 3);
      lcd.print("Press # pour valider");
      if(btgauche() == -1){
        lcd.setCursor(0, 3);
        lcd.print("                    ");  
      }
      NavModeExplosif = NavModeExplosif + btgauche() + btvalider();
        break;
    case 21:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("  --  EXPLOSIF  --  ");
      lcd.setCursor(0, 1);
      lcd.print(" % Temps penalite : ");
      lcd.setCursor(0, 2);
      lcd.print("Fil1: ");
      lcd.setCursor(6, 2);
      lcd.print(PourcentPenalite[0]);
      lcd.setCursor(7, 2);
      lcd.print(PourcentPenalite[1]);
      lcd.setCursor(8, 2);
      lcd.print("%");
      lcd.setCursor(11, 2);
      lcd.print("Fil2: ");
      lcd.setCursor(17, 2);
      lcd.print(PourcentPenalite[2]);
      lcd.setCursor(18, 2);
      lcd.print(PourcentPenalite[3]);
      lcd.setCursor(19, 2);
      lcd.print("%");
      NavModeExplosif++;
      break; 
    case 22:
      //Saisie 1 chiffre fil 1 Penalité 
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btvalider() == 0){
        lcd.setCursor(6, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btvalider() == 1){
        lcd.setCursor(6, 2);
        lcd.print(PourcentPenalite[0]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        PourcentPenalite[0] = saisieclavier(PourcentPenalite[0]);
        lcd.setCursor(6, 2);
        lcd.print(PourcentPenalite[0]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btdroite() + btvalider();
      break;  
    case 23:
      //Saisie 2 chiffre fil 1 Penalité  
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(7, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(7, 2);
        lcd.print(PourcentPenalite[1]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        PourcentPenalite[1] = saisieclavier(PourcentPenalite[1]);
        lcd.setCursor(7, 2);
        lcd.print(PourcentPenalite[1]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btdroite()+ btgauche() + btvalider();
      break;    
    case 24:
      //Saisie 1 chiffre fil 2 Penalité  
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(17, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(17, 2);
        lcd.print(PourcentPenalite[2]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        PourcentPenalite[2] = saisieclavier(PourcentPenalite[2]);
        lcd.setCursor(17, 2);
        lcd.print(PourcentPenalite[2]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btdroite()+ btgauche() + btvalider();
      break;   
    case 25:
      //Saisie 2 chiffre fil 2 Penalité  
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(18, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(18, 2);
        lcd.print(PourcentPenalite[3]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        PourcentPenalite[3] = saisieclavier(PourcentPenalite[3]);
        lcd.setCursor(18, 2);
        lcd.print(PourcentPenalite[3]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btdroite()+ btgauche() + btvalider();
      break;  
    case 26:
      lcd.setCursor(0, 3);
      lcd.print("Press # pour valider");
      if(btgauche() == -1){
        lcd.setCursor(0, 3);
        lcd.print("                    ");  
      }
      NavModeExplosif = NavModeExplosif + btgauche() + btvalider();
      break;  
    case 27:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("  --  EXPLOSIF  --  ");
      lcd.setCursor(0, 1);
      lcd.print(" % Temps penalite : ");
      lcd.setCursor(0, 2);
      lcd.print("Mov: ");
      lcd.setCursor(6, 2);
      lcd.print(PourcentPenalite[4]);
      lcd.setCursor(7, 2);
      lcd.print(PourcentPenalite[5]);
      lcd.setCursor(8, 2);
      lcd.print("%");
      lcd.setCursor(11, 2);
      lcd.print("Code: ");
      lcd.setCursor(17, 2);
      lcd.print(PourcentPenalite[6]);
      lcd.setCursor(18, 2);
      lcd.print(PourcentPenalite[7]);
      lcd.setCursor(19, 2);
      lcd.print("%");
      NavModeExplosif++;
      break; 
    case 28:
      //Saisie 1 chiffre fil 3 Penalité 
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btvalider() == 0){
        lcd.setCursor(6, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btvalider() == 1){
        lcd.setCursor(6, 2);
        lcd.print(PourcentPenalite[4]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      Serial.println(key);
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        PourcentPenalite[4] = saisieclavier(PourcentPenalite[4]);
        lcd.setCursor(6, 2);
        lcd.print(PourcentPenalite[4]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btdroite() + btvalider();
      break;  
    case 29:
      //Saisie 2 chiffre fil 3 Penalité  
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(7, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(7, 2);
        lcd.print(PourcentPenalite[5]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        PourcentPenalite[5] = saisieclavier(PourcentPenalite[5]);
        lcd.setCursor(7, 2);
        lcd.print(PourcentPenalite[5]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btdroite()+ btgauche() + btvalider();
      break;    
    case 30:
      //Saisie 1 chiffre code Penalité  
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(17, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(17, 2);
        lcd.print(PourcentPenalite[6]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        PourcentPenalite[6] = saisieclavier(PourcentPenalite[6]);
        lcd.setCursor(17, 2);
        lcd.print(PourcentPenalite[6]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btdroite()+ btgauche() + btvalider();
      break;   
    case 31:
      //Saisie 2 chiffre code Penalité  
      if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
        lcd.setCursor(18, 2);
        lcd.print(" "); 
      }
      else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
        lcd.setCursor(18, 2);
        lcd.print(PourcentPenalite[7]);
      }
      else if (currentTime >= (Clignotementsaisie+1600)){
        Clignotementsaisie = currentTime;      
      } 
      if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
        PourcentPenalite[7] = saisieclavier(PourcentPenalite[7]);
        lcd.setCursor(18, 2);
        lcd.print(PourcentPenalite[7]);
        NavModeExplosif++;    
      }
      NavModeExplosif = NavModeExplosif + btdroite()+ btgauche() + btvalider();
      break;  
    case 32:
      lcd.setCursor(0, 3);
      lcd.print("Press # pour valider");
      if(btgauche() == -1){
        lcd.setCursor(0, 3);
        lcd.print("                    ");  
      }
      NavModeExplosif = NavModeExplosif + btgauche() + btvalider();
      break;
    case 33:
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("  --  EXPLOSIF  --  ");
      NavModeExplosif++;
      break;
    case 34:
      lcd.setCursor(0, 1);
      lcd.print("Tps jeu : ");
      lcd.setCursor(12, 1);
      lcd.print(TpsjeuExplosif[0]);
      lcd.setCursor(13, 1);
      lcd.print(TpsjeuExplosif[1]);
      lcd.setCursor(14, 1);
      lcd.print(":");
      lcd.setCursor(15, 1);
      lcd.print(TpsjeuExplosif[2]);
      lcd.setCursor(16, 1);
      lcd.print(TpsjeuExplosif[3]);
      lcd.setCursor(17, 1);
      lcd.print(":");
      lcd.setCursor(18, 1);
      lcd.print(TpsjeuExplosif[4]);
      lcd.setCursor(19, 1);
      lcd.print(TpsjeuExplosif[5]);
      lcd.setCursor(0, 2);
      lcd.print("Debut jeu : ");
      lcd.setCursor(14, 2);
      lcd.print(TpsjeuExplosif[6]);
      lcd.setCursor(15, 2);
      lcd.print(" min");
      lcd.setCursor(0, 3);
      lcd.print("Press # pour lancer");
      NavModeExplosif = NavModeExplosif + btvalider();
      break;
    case 35:
      lcd.clear();
      GestionTemps[0] = TpsjeuExplosif[6];
      lcd.setCursor(0, 0);
      lcd.print("  --  EXPLOSIF  --  ");
      lcd.setCursor(0, 1);
      lcd.print("   Debut du jeu :   ");
      lcd.setCursor(6, 2);
      lcd.print("00");  
      lcd.setCursor(8, 2);
      lcd.print(":0");
      lcd.setCursor(10, 2);
      lcd.print(GestionTemps[0]);
      lcd.setCursor(11, 2);
      lcd.print(":");
      lcd.setCursor(12, 2);
      lcd.print("00");
      NavModeExplosif++;
      break;
    case 36:
      if(Timersecpartie == 0){
        Timersecpartie = currentTime; 
      }
      else if (currentTime > (Timersecpartie + 1000)){
        if(GestionTemps[1] > 0){
          GestionTemps[1]--;
          if(GestionTemps[1] >= 10){
            lcd.setCursor(12, 2);
            lcd.print(GestionTemps[1]);  
          }
          else{
            lcd.setCursor(12, 2);
            lcd.print("0");
            lcd.setCursor(13, 2);
            lcd.print(GestionTemps[1]);
          }
        }
      else if(GestionTemps[1] == 0 && GestionTemps[0] > 0){
        GestionTemps[1] = 59;
        GestionTemps[0]--;
          lcd.setCursor(10, 2);
          lcd.print(GestionTemps[0]);
          lcd.setCursor(12, 2);
          lcd.print(GestionTemps[1]);
      }
      else{
        NavModeExplosif++;  
      }
        Timersecpartie = currentTime;     
      } 
      bipper1();
      break; 
    case 37:
      for (int i = 0; i <= 5; i++) {
        GestionTemps[i] = 0;
      }
      GestionTemps[2] = (TpsjeuExplosif[4]*10) + TpsjeuExplosif[5];
      GestionTemps[1] = (TpsjeuExplosif[2]*10) + TpsjeuExplosif[3];
      GestionTemps[0] = (TpsjeuExplosif[0]*10) + TpsjeuExplosif[1];
      TpsDecrementationBombe = 1000;
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("  --  EXPLOSIF  --  ");
      lcd.setCursor(0, 1);
      lcd.print("    Bombe Active    "); 
      if(GestionTemps[0] >= 10){
        lcd.setCursor(6, 2);
        lcd.print(GestionTemps[0]);  
      }
      else{
        lcd.setCursor(6, 2);
        lcd.print("0");
        lcd.setCursor(7, 2);
        lcd.print(GestionTemps[0]);
      }
      lcd.setCursor(8, 2);
      lcd.print(":");
      if(GestionTemps[1] >= 10){
        lcd.setCursor(9, 2);
        lcd.print(GestionTemps[1]);  
      }
      else{
        lcd.setCursor(9, 2);
        lcd.print("0");
        lcd.setCursor(10, 2);
        lcd.print(GestionTemps[1]);
      }
      lcd.setCursor(11, 2);
      lcd.print(":");
      if(GestionTemps[2] >= 10){
        lcd.setCursor(12, 2);
        lcd.print(GestionTemps[2]);  
      }
      else{
        lcd.setCursor(12, 2);
        lcd.print("0");
        lcd.setCursor(13, 2);
        lcd.print(GestionTemps[2]);
      }
      lcd.setCursor(0, 3);
      lcd.print("Code : "); 
      lcd.setCursor(7, 3);
      lcd.print("____"); 
      lcd.setCursor(15, 3);
      lcd.print("P:00%");
      digitalWrite(ledrouge , HIGH);
      NavModeExplosif++;
      break; 
    case 38:
      bipper3();
      EtatcptMercure = digitalRead(cptmercure);
      Randomnum = random(1 , 5);  
      EtatFilcouper = analogRead(Fildesamorcage);   
      TpsDecrementationBombe = 1000 - ((10000*PourcentcumulPenalites)/1000);
      if(EtatcptMercure == 0 && Actifcptmouv == 0){
        bipper4();
          if(TimerActifcptmouv == 0){
            TimerActifcptmouv = currentTime; 
          }
          else if (currentTime > (TimerActifcptmouv + 1000)){
            PourcentcumulPenalites = PourcentcumulPenalites + (PourcentPenalite[4]*10) + PourcentPenalite[5];
            TimerActifcptmouv = currentTime;  ;
          }
      }
      else{
        TimerActifcptmouv = 0;
      }
      if(Timersecpartie == 0){
        Timersecpartie = currentTime; 
      }      
      else if (currentTime > (Timersecpartie + TpsDecrementationBombe)){ 
        if(GestionTemps[2] > 0){
          GestionTemps[2]--;  
          if(GestionTemps[2] >= 10){
            lcd.setCursor(12, 2);
            lcd.print(GestionTemps[2]);  
          }
          else{
            lcd.setCursor(12, 2);
            lcd.print("0");
            lcd.setCursor(13, 2);
            lcd.print(GestionTemps[2]);
          } 
        }
        else if(GestionTemps[2] == 0 && GestionTemps[1] > 0){
          GestionTemps[1]--;  
          GestionTemps[2] = 59;
          if(GestionTemps[1] >= 10){
            lcd.setCursor(9, 2);
            lcd.print(GestionTemps[1]);  
          }
          else{
            lcd.setCursor(9, 2);
            lcd.print("0");
            lcd.setCursor(10, 2);
            lcd.print(GestionTemps[1]);
          }
          lcd.setCursor(12, 2);
          lcd.print(GestionTemps[2]);    
        }
        else if(GestionTemps[0] > 0 && GestionTemps[2] == 0 && GestionTemps[1] == 0){
          GestionTemps[0]--;  
          GestionTemps[1] = 59;
          GestionTemps[2] = 59;
          if(GestionTemps[0] >= 10){
            lcd.setCursor(6, 2);
            lcd.print(GestionTemps[0]);  
          }
          else{
            lcd.setCursor(6, 2);
            lcd.print("0");
            lcd.setCursor(7, 2);
            lcd.print(GestionTemps[0]);
          }
          lcd.setCursor(9, 2);
          lcd.print(GestionTemps[1]);
          lcd.setCursor(12, 2);
          lcd.print(GestionTemps[2]);
        }
      Timersecpartie = currentTime;  
      }  
      if (GestionTemps[0] == 0 && GestionTemps[1] == 0 && GestionTemps[2] == 0){
        NavModeExplosif++;  
      } 
      switch (NavCodeBombe) {
        case 0:
          //Saisie 1 chiffre code désactivation
          if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btvalider() == 0){
            lcd.setCursor(7, 3);
            lcd.print(" "); 
          }
          else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btvalider() == 1){
            if(CodeExplosif[4] == 99){
              lcd.setCursor(7, 3);
              lcd.print("_");    
            }
            else{
              lcd.setCursor(7, 3);
              lcd.print(CodeExplosif[4]);  
            } 
          }
          else if (currentTime >= (Clignotementsaisie+1600)){
            Clignotementsaisie = currentTime;      
          } 
          if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
            CodeExplosif[4] = saisieclavier(CodeExplosif[4]);
            lcd.setCursor(7, 3);
            lcd.print(CodeExplosif[4]);
            NavCodeBombe++;    
          }
          NavCodeBombe = NavCodeBombe + btdroite() + btvalider();
          break;
        case 1:
          //Saisie 2 chiffre code désactivation
          if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0&& btgauche() == 0 && btvalider() == 0){
            lcd.setCursor(8, 3);
            lcd.print(" "); 
          }
          else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
            if(CodeExplosif[5] == 99){
              lcd.setCursor(8, 3);
              lcd.print("_");    
            }
            else{
              lcd.setCursor(8, 3);
              lcd.print(CodeExplosif[5]);  
            } 
          }
          else if (currentTime >= (Clignotementsaisie+1600)){
            Clignotementsaisie = currentTime;      
          } 
          if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
            CodeExplosif[5] = saisieclavier(CodeExplosif[5]);
            lcd.setCursor(8, 3);
            lcd.print(CodeExplosif[5]);
            NavCodeBombe++;    
          }
          NavCodeBombe = NavCodeBombe + btdroite() + btgauche() + btvalider();
          break;
        case 2:
          //Saisie 3 chiffre code désactivation
          if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0&& btgauche() == 0 && btvalider() == 0){
            lcd.setCursor(9, 3);
            lcd.print(" "); 
          }
          else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
            if(CodeExplosif[6] == 99){
              lcd.setCursor(9, 3);
              lcd.print("_");    
            }
            else{
              lcd.setCursor(9, 3);
              lcd.print(CodeExplosif[6]);  
            } 
          }
          else if (currentTime >= (Clignotementsaisie+1600)){
            Clignotementsaisie = currentTime;      
          } 
          if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
            CodeExplosif[6] = saisieclavier(CodeExplosif[6]);
            lcd.setCursor(9, 3);
            lcd.print(CodeExplosif[6]);
            NavCodeBombe++;    
          }
          NavCodeBombe = NavCodeBombe + btdroite() + btgauche() + btvalider();
          break;
        case 3:
          //Saisie 4 chiffre code désactivation
          if ((currentTime < (Clignotementsaisie+500)) && btdroite() == 0 && btgauche() == 0 && btvalider() == 0){
            lcd.setCursor(10, 3);
            lcd.print(" "); 
          }
          else if ((currentTime >= (Clignotementsaisie+500) && currentTime < (Clignotementsaisie+1600)) || btdroite() == 1 || btgauche() == -1 || btvalider() == 1){
            if(CodeExplosif[7] == 99){
              lcd.setCursor(10, 3);
              lcd.print("_");    
            }
            else{
              lcd.setCursor(10, 3);
              lcd.print(CodeExplosif[7]);  
            } 
          }
          else if (currentTime >= (Clignotementsaisie+1600)){
            Clignotementsaisie = currentTime;      
          } 
          if(key == '0' || key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '7' || key == '8' || key == '9'){
            CodeExplosif[7] = saisieclavier(CodeExplosif[7]);
            lcd.setCursor(10, 3);
            lcd.print(CodeExplosif[7]);
            NavCodeBombe++;    
          }
          NavCodeBombe = NavCodeBombe + btdroite() + btgauche() + btvalider();
          break;
        case 4:
          if(CodeExplosif[0] == CodeExplosif[4] && CodeExplosif[1] == CodeExplosif[5] && CodeExplosif[2] == CodeExplosif[6] && CodeExplosif[3] == CodeExplosif[7]){
            NavModeExplosif = 40;  
          }
          else{
            PourcentcumulPenalites = PourcentcumulPenalites + (PourcentPenalite[6]*10) + PourcentPenalite[7];
            NavCodeBombe = 0;
            digitalWrite(bipper , HIGH);
            delay(50);
            digitalWrite(bipper , LOW);
            delay(50);
            digitalWrite(bipper , HIGH);
            delay(50);
            digitalWrite(bipper , LOW);
            CodeExplosif[4] = 99;
            CodeExplosif[5] = 99;
            CodeExplosif[6] = 99;
            CodeExplosif[7] = 99;
            lcd.setCursor(7, 3);
            lcd.print("____");   
          }
          break;
        default:
          break;
      }
      if(((EtatFilcouper >= ValeurRfilsdesamorcage[0]-10 && EtatFilcouper <= ValeurRfilsdesamorcage[0]+10) && RandomNumSavNum == 0) || 
         ((EtatFilcouper >= ValeurRfilsdesamorcage[1]-10 && EtatFilcouper <= ValeurRfilsdesamorcage[1]+10) && RandomNumSavNum == 1) || 
         ((EtatFilcouper >= ValeurRfilsdesamorcage[2]-10 && EtatFilcouper <= ValeurRfilsdesamorcage[2]+10))){
        if(RandomNumSav[0] != Randomnum && RandomNumSav[1] != Randomnum && RandomNumSav[2] != Randomnum && Randomnum < 3){
          RandomNumSav[RandomNumSavNum] = Randomnum;  
          RandomNumSavNum++;
          if(Randomnum == 1){
            PourcentcumulPenalites = PourcentcumulPenalites + (PourcentPenalite[0]*10) + PourcentPenalite[1];
          }
          else{
            PourcentcumulPenalites = PourcentcumulPenalites + (PourcentPenalite[2]*10) + PourcentPenalite[3];
          }  
        }
        else if(Randomnum == 3){
          NavModeExplosif++;  
        }
        else if(Randomnum == 4){
          NavModeExplosif = 40; 
        }
      }
      if (PourcentcumulPenalites > 99){
        NavModeExplosif++;  
      }
      else if(PourcentcumulPenalites >= 10){
        lcd.setCursor(17, 3);
        lcd.print(PourcentcumulPenalites);  
      }
      else{
        lcd.setCursor(17, 3);
        lcd.print("0");
        lcd.setCursor(18, 3);
        lcd.print(PourcentcumulPenalites);
      }
      break; 
    case 39:
      lcd.clear();
      TimerBip[2] = currentTime; 
      NavModeExplosif = 41;
      break; 
    case 40:
      lcd.clear();
      TimerBip[2] = currentTime; 
      NavModeExplosif = 42;
      break; 
    case 41:
      lcd.setCursor(0, 0);
      lcd.print("  --  EXPLOSIF  --  ");
      lcd.setCursor(0, 2);
      lcd.print("    BOOMMMMMMMMM    ");
      animation1();
      bipper3();
      digitalWrite(ledrouge , LOW);
      break; 
    case 42:
      lcd.setCursor(0, 0);
      lcd.print("  --  EXPLOSIF  --  ");
      lcd.setCursor(0, 2);
      lcd.print("  Bombe Desactiver  ");
      animation1();
      bipper5();
      digitalWrite(ledrouge , LOW);
      break; 
    default:
      break;
  }
///////////////////////////////////////
}

Pour cela, vous devez faire un petit programme. Dans ce programme, vous mettrez dans les « commentaires » vos plans sur la façon dont le programme fonctionnera, comme vous l'avez décrit. Vous créerez ensuite les étapes de programmation pour le chronométrage et, lorsque vos moments importants arriveront, vous ferez quelque chose comme imprimer un mot sur le moniteur série. Faites ce petit programme. Postez-le ici. Si vous avez besoin d'aide, demandez. Ensuite, vous chercherez le bon endroit pour intégrer votre programme de test dans votre projet principal. N'oubliez pas que tous les croquis Arduino doivent utiliser ces fonctions...

La programmation est un langage structuré, tout comme le français (avec des mots anglais). Vous faites une liste d'instructions, et le programme les exécute. Vous remarquerez que chaque programme Arduino comporte au moins trois sections. Avant d'apporter des modifications, vous devez établir un plan (vous avez fait une courte liste, donc c'est bien). En utilisant ces plans, vous 1. Déclaration des variables. 2. Configuration des variables. 3. Utilisation des variables. Parfois, #3 a plus de parties, plus petites, mais elles « utilisent toutes les variables ». Pour votre ajout, vous aurez besoin de 1. Déclarez quelques variables pour les temps à utiliser et les broches à utiliser, 2. Configurez les variables à utiliser et enfin, 3. Utilisez les variables pour créer les sons.

N'ayez crainte. Faites de petits pas. Vous le remplirez.

Je m'instruis, je lis, mais j'avoue être perdu dés le débuts déjà entre variable locale et globale.
Je ne sais pas dans quel cas employer l'un ou l'autre.

Je suppose que vous avez des connaissances en programmation. Pouvez-vous trouver une version française de ce « Blink without Delay »?

https://docs.arduino.cc/built-in-examples/digital/BlinkWithoutDelay/

Cela vous montrera comment démarrer une minuterie et l'utiliser pour faire bouger les choses. Si vous avez des questions pendant que vous travaillez sur cela, posez-les.

Malheureusement je démarre de zéro en termes de programmation j'aimerais vraiment comprendre comment y arriver mais je constate que tout ca me dépasse un peu :frowning_face:

Erreur. Tout cela est entièrement entre vos mains. Mettez-vous au travail. Revenez avec des questions.

Je n'attend pas de réponse toute faite je recherche des infos mais je ne comprend pas comment mettre en application ce que je souhaites faire.
Démarrage du minuteur = lecture piste 1
5 minutes restante au minuteur = lecture piste 2

Reportez-vous au lien « Blink without Delay » que j'ai envoyé. Il devrait y avoir une version française sur Internet. Fais-le. Changez-le pour l'adapter à votre grand projet. Posez des questions sur la façon de coder, pas sur la façon de vous convaincre de commencer à faire votre propre travail.

Oui, alors justement, concernant le code ce serait bien de lire "Les bonnes pratiques du forum francophone" et les appliquer.

En particulier, la mise en forme du code avec des balises en cliquant sur l'icône <code/>

Ma présentation a déjà été faite, mon message est modifié.

Merci cela rend le code plus lisible avec l'indentation.