As the speed increases a sensor ? (Como aumenta a velocidade de um sensor ?)

Bom dia pessoal. Esta é a minha primeira postagem no fórum, se eu cometer algum erro em relação as regras do fórum peço que me reportem.

Estou com um projeto de um robô seguido de linha que ira seguir uma linha onde terá as seguintes situações: Gaps(falhas que acontecerão em retas), Curvas de 90º , curvas normais e uma subida.
Estou com o problema relacionado ao gap, onde quando o robô sai de uma reta e vai para uma curva de 90 graus, algumas vezes ele acaba passando direito como se não tivesse feito a leitura da linha na situação de 90º. Estou usando um sensor de refletância (QRE1113 ), teria alguma técnica de eletronica para aumentar a velocidade da leitura ou técnica de programação para melhorar o desempenho do sensor para soluciona esse problema ?

(Good morning people. This is my first post on the forum if I make a mistake regarding the forum rules ask me to report.

I have a project followed a line robot that will follow a line where you will have the following situations: Gaps (failures that happen in straight), 90 curves, normal curves and uphill.
I’m related to the gap problem where when the robot out of a line and go to a 90-degree turn, sometimes it ends up going right as if he had not made the line reading on 90 situation. I am using a reflectance sensor (QRE1113), would have some electronic technique to increase the speed of reading or programming technique to improve the sensor performance to solve this problem?)

// VARIAVEIS DOS MOTORES 
int ef = 5;
int et = 3;
int df = 9;
int dt = 6;
// VARIAVEIS DOS SENSORES
const int se = A0;
const int sce = A1;
const int scd  = A2;
const int sd = A3;
// VARIAVEIS DE VOLTAGEM
const int volt = 120;
const int volt2 = 120;
const int volt3 = 110;
const int volt4 = 50;
//VARIAVEIS DE GAPS E CURVAS
boolean gap = false;


int vse, vsce , vscd, vsd, valorCorte;
void setup() {

  //SERIAL MONITOR ATIVADO
  Serial.begin(9600);
  //DEFINIÇÃO DO TIPO DE PORTA
  pinMode(ef, OUTPUT);
  pinMode(et, OUTPUT);
  pinMode(df, OUTPUT);
  pinMode(dt, OUTPUT);
  calibragem();
}
// If vSensor < valorCorte = branco(white)
// if vSensor > valorCorte = preto(black)
void loop() {
  lerSensores();
  Serial.println(valorCorte);

  while (vse < valorCorte && vsce > valorCorte && vscd > valorCorte && vsd < valorCorte) {

    frente();
  }
  while (vse < valorCorte && vsce < valorCorte && vscd > valorCorte && vsd < valorCorte) {
    esquerdaSuave();
  }
  while (vse < valorCorte && vsce > valorCorte && vscd < valorCorte && vsd < valorCorte) {
    direitaSuave();
  }
  while (vse > valorCorte && vsce > valorCorte && vscd > valorCorte && vsd < valorCorte) {
    esquerda90();
  
  }
  while (vse > valorCorte && vsce > valorCorte && vscd < valorCorte &&  vse < valorCorte) {
 esquerda90();   
  }
 while (vse < valorCorte && vsce < valorCorte && vscd > valorCorte && vsd > valorCorte ) {
    direita90(); 
    }
  while (vse < valorCorte && vsce >  valorCorte && vscd > valorCorte && vsd > valorCorte ) {
    direita90();

  }
  while (vse > valorCorte && vsce < valorCorte && vscd < valorCorte && vsd < valorCorte) {
    esquerda();
   
  }
  while(vse < valorCorte && vsce < valorCorte && vscd < valorCorte && vsd > valorCorte ) {
    direita();
    
  }
  while (vse < valorCorte && vsce < valorCorte && vscd < valorCorte && vsd < valorCorte ) {
    lerSensores();
    if (gap == false) {
      tras();
      lerSensores();
    }
    if (gap == true) {

      frente();
      lerSensores();
}


  }
}
//FUNÇÕES DE DIREÇÃO

void frente () {
  analogWrite(ef, 95);
  analogWrite(et, 0);
  analogWrite(df, 100);
  analogWrite(dt, 0);
  gap = true;
  
  lerSensores();
}
void tras () {

  analogWrite(ef, 0);
  analogWrite(et, volt);
  analogWrite(df, 0);
  analogWrite(dt, volt);
  lerSensores();
  gap = false;
  


}
void esquerda() {
  analogWrite(ef, 0);
  analogWrite(et, 0);
  analogWrite(df, volt);
  analogWrite(dt, 0);
  gap = false;
  
  lerSensores();
}
void direita() {
  analogWrite(ef, volt);
  analogWrite(et, 0);
  analogWrite(df, 0);
  analogWrite(dt, 0);
  lerSensores();
  gap = false;
  
}

void esquerdaSuave() {

  analogWrite(ef, volt3);
  analogWrite(et, 0);
  analogWrite(df, volt);
  analogWrite(dt, 0);
  gap = true;
  
  lerSensores();
}
void direitaSuave() {
  analogWrite(ef, volt);
  analogWrite(et, 0);
  analogWrite(df, volt3);
  analogWrite(dt, 0);
  gap = true;

  lerSensores();
}
void esquerda90 () {
  analogWrite(ef, 0);
  analogWrite(et, 60);
  analogWrite(df, 150);
  analogWrite(dt, 0);
 
  gap = false;
  lerSensores();
}
void direita90 () {
  analogWrite(ef, 150);
  analogWrite(et, 0);
  analogWrite(df, 0);
  analogWrite(dt, 60);

  gap = false;
  lerSensores();
}
void calibragem () {
  lerSensores();
  valorCorte = ((vse * 1) + (vsce * 2) + (vscd * 3) + (vsd * 4)) / 10;

}
void lerSensores() {
  vse = analogRead(se);
  vsce = analogRead(sce);
  vscd = analogRead(scd);
  vsd = analogRead(sd);

}

Vídeo (Movie): Redirecting...

You are reading the sensors all over the place. Stop that. The ONLY place where lerSensores() should be called is from loop() (from several places in loop(), but only from loop()).

Printing the values read from the 4 sensors, in lerSensores() would tell you if the sensors are being read quickly enough.

Perhaps you need to slow down when you find a gap.

Obrigado pela ajuda. :)