ascensor

buenas noches, lo que pasa es que tengo un inconveniente en la programacion y es que en la programacion ingresa a los dos primeros if pero el el if que le pido que sense la posicion del ascensor no lo detecta, me pueden ayudar

#define E1 10     // activa el Pin para motor 
#define I1 8     // Control pin 1 para motor 
#define I2 9     // Control pin 2 para motor 

#define P1 2     // Control pin pulsador primera planta 
#define P2 3     // Control pin pulsador segunda planta
#define P3 4     // Control pin pulsador tercera planta 

#define S1 5     // Control pin sensor primera planta 
#define S2 6     // Control pin sensor segunda planta
#define S3 7     // Control pin sensor tercera planta 


const int ledPin = 11; //control pin para controlar los leds

int PULSADOR_1 = 0; //variables para controlar el estado de los pulsadores de cada planta
int PULSADOR_2 = 0;
int PULSADOR_3 = 0;

int SENSOR_1 = 0; //variables para controlar el estado de los sensores de cada planta
int SENSOR_2 = 0;
int SENSOR_3 = 0;


void setup(){

      
       pinMode(I1, OUTPUT);//MOTOR
       pinMode(I2, OUTPUT);//MOTOR
       pinMode(E1, OUTPUT);//MOTOR
       
       pinMode(P1, INPUT);//PULSADOR
       pinMode(P2, INPUT);//PULSADOR
       pinMode(P3, INPUT);//PULSADOR

       pinMode(S1, INPUT);//SENSOR
       pinMode(S2, INPUT);//SENSOR
       pinMode(S3, INPUT);//SENSOR

        

       pinMode(ledPin, OUTPUT);//LED CABINA
  }

void loop()
  {    

        digitalWrite(ledPin, HIGH);
     
       delay(10);

       PULSADOR_1=digitalRead(2); //lee el estado del pin 2 asignado para la planta primera
       PULSADOR_2=digitalRead(3); //lee el estado del pin 3 asignado para la planta segunda
       PULSADOR_3=digitalRead(4); //lee el estado del pin 4 asignado para la planta tercera

       SENSOR_1=digitalRead(5); //lee el estado del pin 5 asignado para la planta primera
       SENSOR_2=digitalRead(6); //lee el estado del pin 6 asignado para la planta segunda
       SENSOR_3=digitalRead(7); //lee el estado del pin 7 asignado para la planta tercera

       if(PULSADOR_1==HIGH) //si se pulsa el boton de la primera planta
       {
         if(SENSOR_2==HIGH) // y la planta actual es la segunda, el ascensor baja
         {
            digitalWrite(E1, HIGH);     // Activamos Motor
       
           digitalWrite(I1, LOW);     // Arrancamos para BAJAR
           digitalWrite(I2, HIGH);
           
            if(SENSOR_1==HIGH){
           digitalWrite(E1, LOW);      // Paramos Motor 
            }
           
           
         }
         if(SENSOR_3==HIGH) //si esta la cabina en la planta tercera el ascensor baja mas timempo
         {
           
           digitalWrite(E1, HIGH);     // Activamos Motor
       
           digitalWrite(I1, LOW);     // Arrancamos para BAJAR
           digitalWrite(I2, HIGH);
           
           if(SENSOR_1==HIGH){
           digitalWrite(E1, LOW);      // Paramos Motor
           }
      
         }
       }
       else if(PULSADOR_2==HIGH) //si pulsamos el boton de la planta segunda
       {
         
         if(SENSOR_1==HIGH) //y la planta actual es la primera
         {
           digitalWrite(E1, HIGH);     // Activamos Motor
       
           digitalWrite(I1, HIGH);     // Arrancamos para SUBIR
           digitalWrite(I2, LOW);
           
           if(SENSOR_2==HIGH){

           digitalWrite(E1, LOW);      // Paramos Motor

           }
      
           
         }
         if(SENSOR_3==HIGH) //y la planta actual es la tercera
         {
          
           digitalWrite(E1, HIGH);     // Activamos Motor
       
           digitalWrite(I1, LOW);     // Arrancamos para BAJAR
           digitalWrite(I2, HIGH);
           
           if(SENSOR_2==HIGH){
     
           digitalWrite(E1, LOW);      // Paramos Motor

           }
       
         }

       }
       else if(PULSADOR_3==HIGH) //si pulsamos el boton de la tercera planta
       {
         
         if(SENSOR_2==HIGH)// y la planta actual es la segunda
         {
           digitalWrite(E1, HIGH);     // Activamos Motor
       
           digitalWrite(I1, HIGH);     // Arrancamos para SUBIR
           digitalWrite(I2, LOW);
           
           if(SENSOR_3==HIGH){
           digitalWrite(E1, LOW);      // Paramos Motor 
           }
          
           
         }
         if(SENSOR_1==HIGH) //y la planta actual es la primera
         {
           
           digitalWrite(E1, HIGH);     // Activamos Motor
       
           digitalWrite(I1, HIGH);     // Arrancamos para SUBIR
           digitalWrite(I2, LOW);
           if(SENSOR_3==HIGH){
           digitalWrite(E1, LOW);      // Paramos Motor
           }
         }
       }
  }

Wrong forum - English is used here. (EDIT post was moved)

Please use code tags to post code

Normas del foro en Español

--> 7. Uso de etiqueta "code"

Hola,
Tienes un montón de if, ¿ puedes especificar mejor cual es el que no evalúa?.