El código al ejecutarlo no sigue las condicionales

hola estoy haciendo un robot apagador de velas que se guía por sensor ultrasónico , línea y flama
escribir cada código por separado y lo probé y si sirven pero al poner todas las condicionales if al ejecutarlo e el robot solo detecta la ultima la del sensor ultrasónico, ya probe con else White , y nose como hacer , se podrá dejar una condicional principal , y por que no ejecuta todo el código

////////////////////////////

const int sensorFlama = 2; 
const int sensorFlama1 = 3;
const int sensorFlama2 = 4;
const int sensorFlama3 = 7;
const int sensorFlama4 = 8;
const int sensorFlama5 = 11;
const int sensorFlama6 = 12;
////*//////////////////////*/

int izqA = 5; //adelante 
int izqB = 6; //atrás 
int derA = 9; //ad
int derB = 10; //// at
int vel = 175; ///(0-255)
////////////////////////////

int sensorline = 52; // sensorline // Recordar que 5,6,9,10 ocupadas por motores
int sensorline1 = 53;
int sensorline2 = 50;
int sensorline3 = 51;
/*////*//////////////////////////*/
int LineaV= 0; 
int LineaV1=0;
int LineaV2=0;
int LineaV3=0; 
  // para Calcular distacia
/////////////////////
int pecho = 44;            // define el pin 2 como (pecho) para el Ultrasonido
int ptrig = 45;            // define el pin 3 como (ptrig) para el Ultrasonido
int duracion, distancia;    

void setup() {
  Serial.begin(9600); 
pinMode(derA, OUTPUT);
  pinMode(derB, OUTPUT);
  pinMode(izqA, OUTPUT);
  pinMode(izqB, OUTPUT);

 pinMode(sensorFlama, INPUT);
  pinMode(sensorFlama1, INPUT);
  pinMode(sensorFlama2, INPUT);
  pinMode(sensorFlama3, INPUT);
  pinMode(sensorFlama4, INPUT);
  pinMode(sensorFlama5, INPUT);
  pinMode(sensorFlama6, INPUT);

  pinMode(sensorline,INPUT);
  pinMode(sensorline1,INPUT);
  pinMode(sensorline2,INPUT);
  pinMode(sensorline3,INPUT);

  pinMode(pecho, INPUT);   // define el pin 2 como entrada (pecho) 
  pinMode(ptrig,OUTPUT);   // define el pin 3 como salida  (ptrig) 


 
  
}

void loop() {
  // put your main code here, to run repeatedly:
  
int humedad = digitalRead(sensorFlama);
   int humedad1 = digitalRead(sensorFlama1);
   int humedad2 = digitalRead(sensorFlama2);
    int humedad3 = digitalRead(sensorFlama3);
     int humedad4 = digitalRead(sensorFlama4);
      int humedad5 = digitalRead(sensorFlama5);
       int humedad6 = digitalRead(sensorFlama6);
       delay(50);
  {
          LineaV = digitalRead(sensorline);
          LineaV1 = digitalRead(sensorline1);
          LineaV2 = digitalRead(sensorline2);
          LineaV3 = digitalRead(sensorline3);
          
          delay(50);//Esperar 100 ms 
  }
        analogWrite(derB, vel);    
         analogWrite(izqB, vel); 
         analogWrite(derA, 0);  /*atras*/ 
         analogWrite(izqA, 0); /*atras*/

{
         digitalWrite(ptrig, HIGH);   // genera el pulso de trigger por 10us
     delay(0.01);
     digitalWrite(ptrig, LOW);
     
     duracion = pulseIn(pecho, HIGH);              // Lee el tiempo del Echo
     distancia = (duracion/2) / 29;            // calcula la distancia en centimetros
     delay(10); 
}


{
  if (humedad == HIGH)
     {
      Serial.println("sensorFlama on");
      analogWrite(derB, 0);                // Girar a la derecha durante 500 milisegundos   
        analogWrite(izqB, 0); 
        analogWrite(derA, 0);  
        analogWrite(izqA, vel);  
        delay(250);

        analogWrite(derB, 0);                  // Parar los motores por 1500 mili segundos
        analogWrite(izqB, 0); 
        analogWrite(derA, 0);    
        analogWrite(izqA, 0); 
        delay (1000);
     }
        
       else if ((LineaV and LineaV3 != 0)and(humedad1 == HIGH) )
     {
      Serial.println("atras");
        analogWrite(derB, 0);                  // Parar los motores por 1500 mili segundos
        analogWrite(izqB, 0); 
        analogWrite(derA, 0);    
        analogWrite(izqA, 0);
        delay(250);
     }
     else  if (humedad1 == HIGH)
       {
         Serial.println("sensorFlama1 on");
         analogWrite(derB, vel);                  
        analogWrite(izqB, vel); 
        analogWrite(derA, 0);    
        analogWrite(izqA, 0); 
        delay (1000);
       }
        
     else  if (humedad2 == HIGH)
       {
         Serial.println("sensorFlama2 on");
        analogWrite(derB, 0);                // Girar a la derecha durante 500 milisegundos   
        analogWrite(izqB, vel); 
        analogWrite(derA, 0);  
        analogWrite(izqA, 0);  
        delay(250);

        analogWrite(derB, 0);                  // Parar los motores por 1500 mili segundos
        analogWrite(izqB, 0); 
        analogWrite(derA, 0);    
        analogWrite(izqA, 0); 
        delay (1000);
       }
       else  if (humedad3 == HIGH)
         {
           Serial.println("sensorFlama3 on");
          analogWrite(derB, 0);                // Girar a la derecha durante 500 milisegundos   
        analogWrite(izqB, vel); 
        analogWrite(derA, 0);  
        analogWrite(izqA, 0);  
        delay(500);
 
        analogWrite(derB, 0);                  // Parar los motores por 1500 mili segundos
        analogWrite(izqB, 0); 
        analogWrite(derA, 0);    
        analogWrite(izqA, 0); 
        delay (1000);
         }
      else   if (humedad4 == HIGH)
         {
           Serial.println("sensorFlama4 on");
          analogWrite(derB, 0);                // Girar a la derecha durante 500 milisegundos   
        analogWrite(izqB, vel); 
        analogWrite(derA, 0);  
        analogWrite(izqA, 0);  
        delay(750);

        analogWrite(derB, 0);                  // Parar los motores por 1500 mili segundos
        analogWrite(izqB, 0); 
        analogWrite(derA, 0);    
        analogWrite(izqA, 0); 
        delay (1000);
         }
       else if (humedad5 == HIGH)
         {
           Serial.println("sensorFlama5 on");
          analogWrite(derB, 0);                // Girar a la derecha durante 500 milisegundos   
        analogWrite(izqB, vel); 
        analogWrite(derA, 0);  
        analogWrite(izqA, 0);  
        delay(750);

        analogWrite(derB, 0);                  // Parar los motores por 1500 mili segundos
        analogWrite(izqB, 0); 
        analogWrite(derA, 0);    
        analogWrite(izqA, 0); 
        delay (1000);
         }
  else    if (humedad6 == HIGH)

     {
       Serial.println("sensorFlama6 on");
      analogWrite(derB, 0);                // Girar a la derecha durante 500 milisegundos   
        analogWrite(izqB, 0); 
        analogWrite(derA, 0);  
        analogWrite(izqA, vel);  
        delay(750);

        analogWrite(derB, 0);                  // Parar los motores por 1500 mili segundos
        analogWrite(izqB, 0); 
        analogWrite(derA, 0);    
        analogWrite(izqA, 0); 
        delay (1000);
        
     }
        
   else if (LineaV1 and LineaV2 != 0 )
     {
      Serial.println("Blanco");
        analogWrite(derB, 0);                  // Parar los motores por 1500 mili segundos
        analogWrite(izqB, 0); 
        analogWrite(derA, 0);    
        analogWrite(izqA, 0); 
     
        analogWrite(derB, 0);                  // Parar los motores por 1500 mili segundos
        analogWrite(izqB, 0); 
        analogWrite(derA, vel);    
        analogWrite(izqA, vel);
        delay(500);

       
        analogWrite(derB, vel);                  // Parar los motores por 1500 mili segundos
        analogWrite(izqB, 0); 
        analogWrite(derA, 0);    
        analogWrite(izqA, vel);
        delay(250);

     }
       /* else if (distancia <= 15 && distancia >=2)
{
        analogWrite(derB, 0);                  
        analogWrite(izqB, 0); 
        analogWrite(derA, 0);    
        analogWrite(izqA, 0); 
        delay (500);

        analogWrite(derB, 0);                  
        analogWrite(izqB, 0); 
        analogWrite(derA, vel);    
        analogWrite(izqA, vel); 
        delay (500);

        analogWrite(derB, 0);                // Girar a la derecha durante 500 milisegundos   
        analogWrite(izqB, 0); 
        analogWrite(derA, 0);  
        analogWrite(izqA, vel);  
        delay(250);
}*/



}       
}

gracias

Hola,
yo no soy ningún experto, y no controló perfectamente este lenguaje de programación,
pero observando tu código veo llaves sueltas, abarcando cosas para mi sin sentido, de este estilo:

{
         LineaV = digitalRead(sensorline);
         LineaV1 = digitalRead(sensorline1);
         LineaV2 = digitalRead(sensorline2);
         LineaV3 = digitalRead(sensorline3);
         
         delay(50);//Esperar 100 ms 
 }
       analogWrite(derB, vel);    
        analogWrite(izqB, vel); 
        analogWrite(derA, 0);  /*atras*/ 
        analogWrite(izqA, 0); /*atras*/

{
        digitalWrite(ptrig, HIGH);   // genera el pulso de trigger por 10us
    delay(0.01);
    digitalWrite(ptrig, LOW);
    
    duracion = pulseIn(pecho, HIGH);              // Lee el tiempo del Echo
    distancia = (duracion/2) / 29;            // calcula la distancia en centimetros
    delay(10); 
}

Si esta bien escrito, me puedes explicar que significa esta sintaxis??

else if (LineaV1 and LineaV2 != 0 )

En esta otra por si acaso pondría:

else if (LineaV1 != 0 && LineaV2 != 0 )

Yo revisaría bien las llaves, parentesis y las condiciones por si acaso, ya que es casi imposible que falle la lógica de arduino.
Puede que la guia de estilo te interese también:

Saludos!

Hola,
Aparte de lo comentado por ceplus humedad, humeda1..... ¿pueden ser todas a nivel alto al mismo tiempo? o por ejemplo humedad puede ser nivel bajo Humedad1 nivel Alto y entoces actuar en cosecuencia, no se si me esplico bien, te lo comento porque con los else if si humedad es nivel alto ejecutara ese if e ignorara el resto ¿es lo que quieres que haga?

HOLA
muchas gracias por intentar ayudarme , las {} lo abro y lo cierro para intentar que se ejecute pero no sirve
lo que quiero hacer es que todos los if funcione no quiero que se excluyan
ademas

else if (LineaV1 != 0 && LineaV2 != 0 ) son las variables

Robotics GPS en PYGMALION 2017 - YouTube este es el robot