yo pondría unos delays despues de la pulsación, para que te lo lea bien, ya que sino, creerá que le has dado un monton de veces
#include <Servo.h>
Servo myservo;
const int ledizq=7;
const int ledder=6;
const int pulsadorizq=11;
const int pulsadorder=10;
void setup() {
// put your setup code here, to run once:
myservo.attach(9);
pinMode(ledizq,OUTPUT);
pinMode(ledder,OUTPUT);
pinMode(pulsadorizq,INPUT);
pinMode(pulsadorder,INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
myservo.write(90);
if (digitalRead(pulsadorizq)==HIGH){
delay(300);// para que te lea bien la pulsacion
digitalWrite(ledizq, HIGH);
digitalWrite(ledder, LOW);
myservo.write(0);
delay (5000); // que pasen 5 segundos para que vuelva a su estado original
digitalWrite(ledizq, LOW);
digitalWrite(ledder, LOW);
myservo.write(90);
}
if (digitalRead(pulsadorder)==HIGH){
delay(300);// para que lea bien la pulsacion del boton
digitalWrite(ledizq, LOW);
digitalWrite(ledder, HIGH);
myservo.write(180);
delay(5000);// que pasen 5 segundos antes de volver al estado original
digitalWrite(ledizq, LOW);
digitalWrite(ledder, LOW);
myservo.write(90);
}
}
de esta manera, el servo debería ir directo al led, aunque si quieres que vaya poco a poco, puedes hacerlo con un "for" que queda más chulo 8):
if (digitalRead(pulsadorder)==HIGH){
delay(300);// para que lea bien la pulsacion del boton
digitalWrite(ledizq, LOW);
digitalWrite(ledder, HIGH);
for (int i=90;i<180;i++){
delay (100);
myservo.write (i);
}
}