ayuda programa

hola buenas tardes estoy tratando de hacer una maqueta para un puente levadiso por mas que le doy vueltas no logro hacer que se mantenga los servos en la posicion deseada alguien podria ayudarme.?

todavia soy principiante en esto y no entiendo como usar todos los comandos de la tabla arduino estoy usando el uno

#include <Servo.h>
Servo servo1;
Servo servo2;
int pos = 0;
int estado1 = 0;
int estado2 = 0;
int boton= 12;
int ledR = 8;
int ledA = 7;
int ledV = 4;
int Mot = 2;
void setup (){
pinMode(12,INPUT);
pinMode(ledR, OUTPUT);
pinMode(ledA, OUTPUT);
pinMode(ledV, OUTPUT);
pinMode(Mot, OUTPUT);
servo1.attach(3);
servo2.attach(5);
}
void loop()

{
estado1= digitalRead(12);
estado2= digitalRead(13);
//arriva

if(estado1 == HIGH){
digitalWrite(Mot,HIGH);
digitalWrite(ledR, HIGH);
servo1.write(90);
for(pos = 0; pos < 85; pos += 1)
{
servo2.write(pos);
delay(50);
}
delay(30000);
}
else{
digitalWrite(ledR, LOW);
servo1.write(0);
servo2.write(0);
//abajo
if (estado2 == HIGH){
digitalWrite(ledR, LOW);
digitalWrite(Mot,LOW);
digitalWrite(ledV, HIGH);
for(pos = 85; pos>=1; pos-=1)
{
servo2.write(pos);
delay(30); }
servo1.write(0);
delay(5000);
digitalWrite(ledR, LOW);
digitalWrite(ledV, HIGH);
delay(30000);
digitalWrite(ledV, LOW);

}}}

como pueden ver el programa segun mi logica es s preciono el boton 12 se sube el puente y la pluma impide que los autos entren al puente tambien cuenta con un semaforo en rojo verde y amarillo, pero al precionar el 13 deberia de bajar el puente y ponerse verde y subir la pluma pero lo que sucede es que no me respeta el monitoreo de las entradas y los servos se resetean bueno solo el servo 2 gracias de antemano