ascenseur arduino [résolu]

bonjour suite a ce post
ou je rappel je fais un ascenseur pour du théatre ( seulement les bouton poussoir et les voyants indiquant l’étage, pas la mécanique).
j’avais prévu mon ascenseur a s’arreter au RDC et au 2ème étage juste en passant par le 1er étage.
depuis je me sui rendu compte que quand l’ascenseur est deja au RDC et que j’y suis aussi. que je veux seulement l’ouverture des porte , celui ci me refait alors la s’équence en passant par le 1er car c’est comme ça que je l’ai programmé … erreur …
et seconde chose maintenant on vient de me dire que finalement l’ascenseur devra aussi s’arreter par le 1er étage .
voici mon code tel que je l’avais fait , il est fonctionnel. ( passe du rdc au 2eme en passant par le 1er,et inversement en faisant ding à l’arrivé au RDC)

// les librairies necessaires
#include <SPI.h>
#include <SdFat.h>
#include <SdFatUtil.h>
#include <SFEMP3Shield.h>

int numeroFichier = 0;
const int led00 = 22;
const int led01 = 23;
const int led02 = 24;
const int led03 = 25;
const int bp001 = 28;
const int bp02 = 27;
const int bp03 = 26;
const int APPUI=LOW; // constante pour tester état BP
const int bp1ding= 30;
const int bp2ding= 29;
SdFat sd;
SFEMP3Shield MP3player;

void setup ()
{
  //Initialisation de la carte SD
  if(!sd.begin(SD_SEL, SPI_HALF_SPEED)) sd.initErrorHalt();
  if(!sd.chdir("/")) sd.errorHalt("sd.chdir");
 
  //Initialisation du VS1053
  MP3player.begin();
  pinMode(bp1ding, INPUT);//le bouton est une entrée
  digitalWrite(bp1ding, HIGH);
  pinMode(bp2ding, INPUT);//le bouton est une entrée
  digitalWrite(bp2ding, HIGH);
  
  pinMode(led00, OUTPUT);
  pinMode(led01, OUTPUT);
  pinMode(led02, OUTPUT);
  pinMode(led03, OUTPUT);
  pinMode(bp001, INPUT);//le bouton est une entrée
  pinMode(bp02, INPUT);//le bouton est une entrée
  pinMode(bp03, INPUT);//le bouton est une entrée
  digitalWrite(led00, HIGH);
  digitalWrite(led01, HIGH);
  digitalWrite(led02, HIGH);
  digitalWrite(led03, LOW);
  digitalWrite(bp001, HIGH);
  digitalWrite(bp02, HIGH);
  digitalWrite(bp03, HIGH);
  digitalWrite (led00,HIGH); // éteint la LED
}
void loop()
{
  if (digitalRead(bp001)==APPUI) { // si le BP est appuyé

   digitalWrite(led00,LOW); //allume la LED00
   delay(1000); //délai 1sec apres appui
   digitalWrite (led03,HIGH); //éteint led03
   delay(1000);
   digitalWrite (led02,LOW); //allume led02
   delay(3000);
   digitalWrite (led02,HIGH); //éteint led02
   delay(1000);
   digitalWrite (led01,LOW); //allume led01 
   digitalWrite (led00,HIGH); // éteint la LED00 
   MP3player.stopTrack();
   MP3player.playTrack(1);//+ METTRE LE DING ICI !!!
  }
   if (digitalRead(bp03)==APPUI) { // si le BP est appuyé
   delay(1000);
   digitalWrite(led00,LOW); //allume la LED00
   delay(1000); //délai 1sec apres appui
   digitalWrite (led01,HIGH); //éteint led01
   delay(1000);
   digitalWrite (led02,LOW); //allume led02
   delay(3000);
   digitalWrite (led02,HIGH); //éteint led02
   delay(1000);
   digitalWrite (led03,LOW); //allume led03 
   digitalWrite (led00,HIGH); // éteint la LED00  
   }
   
   if (digitalRead(bp1ding)==APPUI) { // si le BP est appuyé
    MP3player.stopTrack();
    MP3player.playTrack(1);
   }
   
   if (digitalRead(bp2ding)) {  // augmentation de volume
 
    union twobyte mp3_vol;
    mp3_vol.word = MP3player.getVolume(); 
 
      if(mp3_vol.byte[1] <= 2) { 
        mp3_vol.byte[1] = 2;
      } 
      else {
        mp3_vol.byte[1] -= 2;
      }    
    
    MP3player.setVolume(mp3_vol.byte[1], mp3_vol.byte[1]); 
 
  }

  
}

et voici la modification que j’ai tenté de faire pour éviter qu’il me repasse la séquence en entiere ( 2eme 1er , rdc) quand je suis deja au rdc

// les librairies necessaires
#include <SPI.h>
#include <SdFat.h>
#include <SdFatUtil.h>
#include <SFEMP3Shield.h>

int numeroFichier = 0;
const int led00 = 22;
const int led01 = 23;
const int led02 = 24;
const int led03 = 25;
const int bp001 = 28;
const int bp02 = 27;
const int bp03 = 26;
const int APPUI=LOW; // constante pour tester état BP
const int bp1ding= 30;
const int bp2ding= 29;
SdFat sd;
SFEMP3Shield MP3player;

void setup ()
{
  //Initialisation de la carte SD
  if(!sd.begin(SD_SEL, SPI_HALF_SPEED)) sd.initErrorHalt();
  if(!sd.chdir("/")) sd.errorHalt("sd.chdir");
 
  //Initialisation du VS1053
  MP3player.begin();
  pinMode(bp1ding, INPUT);//le bouton est une entrée
  digitalWrite(bp1ding, HIGH);
  pinMode(bp2ding, INPUT);//le bouton est une entrée
  digitalWrite(bp2ding, HIGH);
  
  pinMode(led00, OUTPUT);
  pinMode(led01, OUTPUT);
  pinMode(led02, OUTPUT);
  pinMode(led03, OUTPUT);
  pinMode(bp001, INPUT);//le bouton est une entrée
  pinMode(bp02, INPUT);//le bouton est une entrée
  pinMode(bp03, INPUT);//le bouton est une entrée
  digitalWrite(led00, HIGH);
  digitalWrite(led01, HIGH);
  digitalWrite(led02, HIGH);
  digitalWrite(led03, LOW);
  digitalWrite(bp001, HIGH);
  digitalWrite(bp02, HIGH);
  digitalWrite(bp03, HIGH);
  digitalWrite (led00,HIGH); // éteint la LED
}
void loop()
{
  if (digitalRead(bp001)==APPUI) { // si le BP est appuyé

   digitalWrite(led00,LOW); //allume la LED00
   delay(1000); //délai 1sec apres appui
   digitalWrite (led03,HIGH); //éteint led03
   delay(1000);
   digitalWrite (led02,LOW); //allume led02
   delay(3000);
   digitalWrite (led02,HIGH); //éteint led02
   delay(1000);
   digitalWrite (led01,LOW); //allume led01 
   digitalWrite (led00,HIGH); // éteint la LED00 
   MP3player.stopTrack();
   MP3player.playTrack(1);//+ METTRE LE DING ICI !!!
  }
    
    else if (digitalRead(led01) == APPUI  && digitalRead(bp001) == APPUI)// si le BP est appuyé et led01 rdc allumé
{
   digitalWrite(led00,LOW); //allume la LED00
   delay(2000); //délai 1sec apres appui
   digitalWrite (led01,LOW); //allume led01 
   digitalWrite (led00,HIGH); // éteint la LED00 
   MP3player.stopTrack();
   MP3player.playTrack(1);//+ METTRE LE DING ICI !!!
  }
  
   if (digitalRead(bp03)==APPUI) { // si le BP est appuyé
   delay(1000);
   digitalWrite(led00,LOW); //allume la LED00
   delay(1000); //délai 1sec apres appui
   digitalWrite (led01,HIGH); //éteint led01
   delay(1000);
   digitalWrite (led02,LOW); //allume led02
   delay(3000);
   digitalWrite (led02,HIGH); //éteint led02
   delay(1000);
   digitalWrite (led03,LOW); //allume led03 
   digitalWrite (led00,HIGH); // éteint la LED00  
   }
   
   if (digitalRead(bp1ding)==APPUI) { // si le BP est appuyé
    MP3player.stopTrack();
    MP3player.playTrack(1);
   }
   
   if (digitalRead(bp2ding)) {  // augmentation de volume
 
    union twobyte mp3_vol;
    mp3_vol.word = MP3player.getVolume(); 
 
      if(mp3_vol.byte[1] <= 2) { 
        mp3_vol.byte[1] = 2;
      } 
      else {
        mp3_vol.byte[1] -= 2;
      }    
    
    MP3player.setVolume(mp3_vol.byte[1], mp3_vol.byte[1]); 
 
  }

  
}

si quelqu’un pouvait me donner un petit coup de pouce , ou une direction a prendre car j’avoue que la je capte plus tres bien . merci

encore une fois c t un truc tout con …fallait que j’utilise le NON égal !=
en parlant du voyant qui allait s’allumer et ne pas mettre comme j’ai fait == pour celui qui l’est deja