Sensor infrarrojo Rastreador de línea

Hola!!!

Estoy tratando de hacer un Rastreador de línea.
Pero no logro que el robotito se mueva siguiendo la línea, solo hace un moviento corto y se mueve sobre el blanco en círculos.

Código:


*/
//Variables de Salida

const int irIzquierda = 7;
const int irDerecha = 6;
const int ledTest = 13;

/*
  Variables Motor
*/
const int AIA = 9; 
const int AIB = 10;
const int BIA = 4; 
const int BIB = 11;

/*
  Variables Entradas
*/
const int trIzquierda = A0;
const int trDerecha = A1;


/*
  Datos reflectividad guardada
*/
int refDer = 0;
int refIzq = 0;

/*FIN VARIABLES*/

void setup() {
  //INICIO SETUP ENTRADAS / SALIDAS

  pinMode(irIzquierda, OUTPUT);
  pinMode(irDerecha, OUTPUT);
  pinMode(ledTest, OUTPUT);

  digitalWrite(irIzquierda, LOW);
  digitalWrite(irDerecha, LOW);
  digitalWrite(ledTest, LOW);


  /*
     Inicializacion salidas del Motor
  */
  pinMode(AIA, OUTPUT);
  pinMode(AIB, OUTPUT);
  pinMode(BIA, OUTPUT);
  pinMode(BIB, OUTPUT);


  analogWrite(AIA, 0);
  analogWrite(AIB, 0);
  analogWrite(BIA, 0);
  analogWrite(BIB, 0);

  Serial.begin(9600);
  
}

void loop() {
  
  digitalWrite(ledTest, HIGH);
  digitalWrite(irIzquierda, HIGH);
  refIzq =  analogRead(trIzquierda);
  digitalWrite(irDerecha, HIGH);
  refDer =  analogRead(trDerecha);
  digitalWrite(ledTest, LOW);
  
  Serial.print(refIzq);
  Serial.print(",");
  Serial.println(refDer);

  movimiento();

  delay(50);
}
void movimiento(){
  if (refDer < 1000 && refIzq < 1000) { 
    atras();
  }
  else if (refDer > 1000 && refIzq > 1000) { 
    adelante();
  }
 
  else if (refDer < 1000 && refIzq > 1000) { 
    derecha();
  }
  
  else if (refDer > 1000 && refIzq < 1000) { //
    
    izquierda();
  }
}

void adelante()
{
  analogWrite(AIA, 255);
  analogWrite(AIB, 0);
  analogWrite(BIA, 255);
  analogWrite(BIB, 0);
}


void atras()
{
  analogWrite(AIA, 0);
  analogWrite(AIB, 255);
  analogWrite(BIA, 0);
  analogWrite(BIB, 255);
}

void derecha()
{
  analogWrite(AIA, 255);
  analogWrite(AIB, 0);
  analogWrite(BIA, 0);
  analogWrite(BIB, 255);
}

void izquierda()
{
  analogWrite(AIA, 0);
  analogWrite(AIB, 255);
  analogWrite(BIA, 255);
  analogWrite(BIB, 0);
}

Desde ya, muchas gracias!

Moderador:
Edita el título y el código segun las normas.
El título no puede contener la palabra "Ayuda" y el código debe estar entre etiquetas </>