Suponiendo que todo el conexionado está bien, que los sensores funcionan correctamente y que está todo el hardware bien diseñado (cosa que no sabemos porque no has puesto ningún esquemático ni nada...pero nos fiamos), vamos a ver el software.
Suponiendo que los sensores Qrd1114 que utilizas devuelven una
señal digital adecuada, es decir, un pulso de duración x. Esto el Arduino lo leerá en digitalRead() como HIGH o LOW.
http://arduino.cc/en/Reference/ConstantsComo puedes ver en el link, LOW es cero y HIGH es un valor no cero (creo que realmente es 1). El problema es que en tu código utilizas comparativas de mayor y menor que cuando deberías utilizar ==LOW y ==HIGH
if(val == HIGH && val2 == LOW)
{
digitalWrite(motor1, LOW);
digitalWrite(motor2, LOW);
}
else if(val == LOW && val2 == HIGH)
{
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
}
...
PD: La próxima vez utiliza el botón # para poner código (en la barra de iconos encima de los smileys), harás más legible tu post.