Cómo hacer una línea después del bot de manera que funcione en ambos escenarios, fondo blanco y ruta negra y viceversa

#define M1pin1 9
#define M1pin2 8
#define M2pin1 10
#define M2pin2 11
#definir Sensor1 A0
#define Sensor2 A1

int sensor_value1, sensor_value2, diff;
configuración nula ()
{
Serial.begin (9600);
pinMode (M1pin1, SALIDA);
pinMode (M1pin2, SALIDA);
pinMode (M2pin1, SALIDA);
pinMode (M2pin2, SALIDA);
retraso (5000);
sensor_value1 = analogRead (Sensor1);
sensor_value2 = analogRead (Sensor2);
diff = sensor_value2-sensor_value1;
// ON (M1pin1, M1pin2);
// ON (M2pin1, M2pin2);

}
bucle vacío ()
{
sensor_value1 = analogRead (Sensor1) + diff;
sensor_value2 = analogRead (Sensor2);
if (sensor_value2-sensor_value1> 1 || sensor_value2-sensor_value1 <-1)
APAGADO (M2pin1, M2pin2);
más si (sensor_value1-sensor_value2> 1 || sensor_value1-sensor_value2 <-1)
APAGADO (M1pin1, M1pin2);
más
{
ENCENDIDO (M2pin1, M2pin2);
ENCENDIDO (M1pin1, M1pin2);
}

}
vacío ON (int Mpin1, int Mpin2) // ejecuta el motor
{
digitalWrite (Mpin1, HIGH);
digitalWrite (Mpin2, LOW);

}
void OFF (int Mpin1, int Mpin2) // Detiene el motor
{
digitalWrite (Mpin1, LOW);
digitalWrite (Mpin2, LOW);
}
Prueba esta pieza de código. Funciona en la diferencia entre los dos valores del sensor (siempre que tenga uno a cada lado de la línea).
Por lo tanto, funcionará tanto para líneas blancas como negras.
* Utilicé LDR para mi seguidor de línea