ArduinoMotor

Hola! Necesito un poco de ayuda
Son 3 botones, 3 leds, 1 motor.

Con el "boton 1" enciendo el motor y hago que gire hacia la derecha y asu vez que prenda un led verde (indicando que esta hacia la derecha)

Paro el programa.

AHORA Con el "boton 2" enciende el motor y hago que gire hacia la izquierda y asu vez que prenda un led amarillo. (indicando que esta hacia la izquierda)

DUDAS:
1.-Como hacer que el ultimo "boton 3" que sea el de "PARO" tanto como de motor, de leds y de todo.
2.-Como poner una condición que cuando este activo el "boton 1" no puedan activar el "boton 2" hasta que HAGAN EL PARO gracias!

MI CODIGO DE ARDUINO

int botonDerecha = 2;
int botonIzquierda = 3;
int Paro = 4;
int contador;
boolean giroIzquierda = 0;
boolean giroDerecha = 0;

void setup() {

pinMode(botonIzquierda, INPUT);
pinMode(botonDerecha, INPUT);
pinMode(Paro, INPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);

}

void loop() {
if (digitalRead(botonDerecha) == HIGH && (digitalRead(12) == LOW) && (digitalRead(5) == LOW))

{
digitalWrite(12, HIGH);
delay(500);
digitalWrite(5, HIGH);
delay(500);

}
if (digitalRead(botonIzquierda) == HIGH && (digitalRead(13) == LOW) && (digitalRead(6) == LOW))

{
digitalWrite(13, HIGH);
delay(500);
digitalWrite(6, HIGH);
delay(500);

}
if (digitalRead(Paro) == HIGH && (digitalRead(13) == LOW) && (digitalRead(7) == LOW)&&(digitalRead(botonIzquierda) == HIGH)
&&(digitalRead(botonDerecha) == HIGH)&&(digitalRead(12) == HIGH) && (digitalRead(5) == HIGH)&&(digitalRead(13) == HIGH) && (digitalRead(6) == HIGH))
{ // <------- BOTON DE PARO (aun no me sale)
else{
digitalWrite(13, LOW);
delay(500);
digitalWrite(6, LOW);
delay(500);
digitalWrite(12, LOW);
delay(500);
digitalWrite(5, LOW);
delay(500);
digitalWrite(botonDerecha, LOW);
delay(100);
digitalWrite(botonIzquierda, LOW);
delay(100);
digitalWrite(13, LOW);
delay(100);
digitalWrite(7, HIGH);
delay(500);

}
}