Descripción del proyeco: Puente levadizo controlado por Arduino

Programa

#define EA 9
#define I1 8
#define I2 10
#define pinPulsador 0  // Pin digital de entrada para el pulsador
int pinLDR_S = 0;      //A0, Pin analógico para LDR superior
int pinLDR_I = 1;     //A1,  Pin analógico para LDR inferior
int valorLDR_S = 0;
int valorLDR_I = 0;
int velocidad=200;
int estadoPulsador=HIGH;

 void subir()
{
 analogWrite(EA, velocidad);
 digitalWrite(I1, HIGH);
 digitalWrite(I2, LOW);
}

 void bajar()
 {
 analogWrite(EA, velocidad);
 digitalWrite(I1, LOW);
 digitalWrite(I2, HIGH);
}
 void parar()
{
 digitalWrite(I1, LOW);
 digitalWrite(I2, LOW);
 }
 void setup()
 {
  pinMode(EA, OUTPUT);
  pinMode(I1, OUTPUT);
  pinMode(I2, OUTPUT);
  pinMode (pinPulsador, INPUT);

}


void loop()
{
estadoPulsador = digitalRead(pinPulsador); //Leer estado del pulsador

valorLDR_S= analogRead(pinLDR_S);
valorLDR_I= analogRead(pinLDR_I);

if ( estadoPulsador == LOW && valorLDR_I>300)

{
while(valorLDR_S >300)
{
  subir();
  valorLDR_S= analogRead(pinLDR_S);
  delay(300);
}
parar();
}
if(estadoPulsador==LOW && valorLDR_S>300)
  {
  while(valorLDR_I >300)
  {
   bajar();
   valorLDR_I= analogRead(pinLDR_I);
   delay(300);
  }
   //parar motor
   parar();
  }
 }