For the initial requirement, you can of course just use an if:
void loop()
{
sonarVal = analogRead (sonarPin);
Serial.println (sonarVal);
delay(500);
if (sonarVal < 11)
{
digitalWrite (motorLeft, HIGH);
digitalWrite (motorMiddle,HIGH);
digitalWrite (motorRight, HIGH);
}
else
{
digitalWrite (motorLeft, LOW);
digitalWrite (motorMiddle,LOW);
digitalWrite (motorRight,LOW);
}
}
If you want to do it as a FSM, it might look more like this:
void loop()
{
static int state = 1;
sonarVal = analogRead (sonarPin);
Serial.println (sonarVal);
delay(500);
switch (state)
{
case 1:
if (sonarVal < 11)
{
digitalWrite (motorLeft, HIGH);
digitalWrite (motorMiddle,HIGH);
digitalWrite (motorRight, HIGH);
}
else
{
state=2;
}
break;
case 2:
if (sonarVal > 11)
{
digitalWrite (motorLeft, LOW);
digitalWrite (motorMiddle,LOW);
digitalWrite (motorRight,LOW);
}
else
{
state = 1;
}
break;
default:
break;
}
}