Alguém Poderia me explicar onde estou errando

Estou tentando fazer um robô seguidor de linha com 3 sensores, Porem estou com dificuldades na programação, Segue abaixo a programação

//Standard PWM DC control
int E1 = 5; //M1 Speed Control
int E2 = 6; //M2 Speed Control
int M1 = 4; //M1 Direction Control
int M2 = 7; //M1 Direction Control

//Sensores
int sensorCantoDir = A1;
int sensorMeio = A3;
int sensorCantoEsq = A4;

int ValorCorte = 75;

int ValorLinhaM,ValorLinhaD,ValorLinhaE = 0;

void setup(void){
int i;
for(i=4;i<=7;i++)
pinMode(i, OUTPUT);
Serial.begin(9600);
}

void loop(){

valorLinhaM = analogRead(sensorMeio);
valorCantoD = analogRead(sensorCantoDir);
valorCantoE = analogRead(sensorCantoEsq);

if(valorSensorM > ValorCorte){
digitalWrite(M1, LOW); //rotacao no sentido horario do canal 1
digitalWrite(M2, LOW); //rotacao no sentido horario do canal 2
analogWrite(E1, 100); //informa a velocidade do canal 1 - 0 É A VELOCIDADE MINIMA
analogWrite(E2, 100); //informa a velocidade do canal 2 - 255 É A VELOCIDADE MÁXIMA
}

delay(1000); //espera 1 segundo

analogWrite(E1, 0);
analogWrite(E2, 0);

delay(1000);

if(valorSensorD > ValorCorte){
digitalWrite(M1, LOW); //rotacao no sentido horario do canal 1
digitalWrite(M2, HIGH); //rotacao no sentido horario do canal 2
analogWrite(E1, 255);
analogWrite(E2, 255);
}

delay(500); //espera 1 segundo

analogWrite(E1, 0);
analogWrite(E2, 0);

delay(1000);

if(valorSensorE > ValorCorte){
digitalWrite(M1, HIGH); //rotacao no sentido horario do canal 1
digitalWrite(M2, LOW); //rotacao no sentido horario do canal 2
analogWrite(E1, 255);
analogWrite(E2, 255);

delay(500); //espera 1 segundo

analogWrite(E1, 0);
analogWrite(E2, 0);

delay(1000);

Boas para começar vejo aqui um erro no procedimento setup
Tenta assim
void setup(void){
for(int i=4;i<=7;i++){
pinMode(i, OUTPUT);
}
Serial.begin(9600);
}