Selector de dirección motor pap con pulsador y interruptor

buenas días a todos.

He realizado este programa que hasta que no se le de a un pulsador P1 no inicie el proceso y estando un interruptor seleccione a que lado girar hasta una posición y luedo después de x segundos vuelva a posición 0 .

el tema es que sin ponerle los botones funciona a izquierda y derecha con sus pausas pero cuando le he puesto los pulsadores ya no funciona da errores P1 seria inicio del trabajo y P2 seria el interruptor que hace que gire a derecha o izquierda.

Estoy atascado porque no se nada de programación de arduino, he visto muchos videos tutoriales y ya me he liado aun mas.

Alguien me puede orientar de que estoy haciendo mal?

este es el código y el esquema que he montado no se continuar mas para que funcione como quiero me podéis ayudar.

//programa izquierda derecha

#define STEP 4 // pin STEP de A4988 a pin 4
#define DIR 5 // pin DIR de A4988 a pin 5
#define inicio 8 // pin INICIO ciclo a pin 8
#define interruptor 9 //pin pulsador derecha izquierda pin 9

void setup() {

pinMode(STEP, OUTPUT); // pin 4 como salida
pinMode(DIR, OUTPUT); // pin 5 como salida
pinMode(inicio, INPUT); // pin 8 pulsador inicio
pinMode(interruptor, INPUT); //pin 9 interruptor

}

void loop()
{

int estadoP1 = digitalRead(inicio); //pulsaodr de inicio
int estadoP2 = digitalRead(interruptor); // pulsador de izquierda-derecha
delay(100); // anti rebote del pulsador
if(estadoP1 == 0)
if (estadoP2 == 0)
}
{

// giro a izquierdas
digitalWrite(DIR, LOW); // giro en un sentido
for(int i = 0; i < 80; i++){ // 200 pasos para motor
digitalWrite(STEP, HIGH); // nivel alto
delay(10); // por 10 mseg
digitalWrite(STEP, LOW); // nivel bajo
delay(10); // por 10 mseg
}
delay(2000); // demora de 2 segundos

digitalWrite(DIR, HIGH); // giro en sentido opuesto
for(int i = 0; i < 80; i++){
digitalWrite(STEP, HIGH);
delay(10);
digitalWrite(STEP, LOW);
delay(10);
}
delay(2000); // demora de 2 segundos
}

// giro a derechas

digitalWrite(DIR, HIGH); // giro en un sentido
for(int i = 0; i < 80; i++){ // 200 pasos para motor
digitalWrite(STEP, HIGH); // nivel alto
delay(10); // por 10 mseg
digitalWrite(STEP, LOW); // nivel bajo
delay(10); // por 10 mseg
}
delay(2000); // demora de 2 segundos

digitalWrite(DIR, LOW); // giro en sentido opuesto
for(int i = 0; i < 80; i++){
digitalWrite(STEP, HIGH);
delay(10);
digitalWrite(STEP, LOW);
delay(10);
}
delay(2000); // demora de 2 segundos

Tu problema son los delays. Con ellos puedes hacer secuencias muy simples, pero los programas que obtengas no serán escalables. Porque los delays detienen el programa, tienes que utilizar millis. Ve a los tutoriales e intenta repetir tu programa sin usar delays

no te comprendo lo que me quieres decir .
Lo que veo en el simulador es que los botones no me hacen nada. los ponga o los quite el motor se mueve solo según la programación.

¿estás seguro que has puesto el codigo que usas? Hay bastantes errores y no compila.
No soy capaz de ver el esquema que dices que has puesto. Creo que te has olvidado de ponerlo.

Veo que has quitado los ; que te comenté en otra publicación pero sigues teniendo errores de sintaxis.
A if() debe seguirle una sentencia o bien un juego de llaves { } que encierran las sentencias que se ejecutan si se cumple la condición.
Ej.

if (contador == 14) contador = 0;  // resetea el contador 

if (contador == 3) {
  digitalWrite(LED_BUILTIN, HIGH); // enciende el LED "L" de la placa
  digitalWrite( PIN_BOMBA, HIGH);  // enciende la bomba
  bombaOn = true;
}

if (contador == 10)
{
  digitalWrite(LED_BUILTIN, LOW);  // apaga el LED "L" de la placa
  digitalWrite( PIN_BOMBA, LOW);   // apaga la bomba
  bombaOn = false;
}

Como ves, la llave de apertura puede estar en la misma línea que la sentencia if() o en la siguiente.

Te recomiendo que leas sobre la sintaxis de arduino y/o lenguaje C en general.

gracias por los consejos , he hablado con un chaval que me ha ayudado y ya lo hemos terminado el programa.

mas que nada es que no sabia nada de arduino y el me ha dedicado un buen rato y me ha reconfigurado y corregido el programa que ya funciona.

gracias de todas formas por vuestro tiempo .

saludos