He estado trabajando en un proyecto y quisiera saber si es posible mover un Servomotor a 2 posiciones distintas usando un Arduino UNO y un boton final de carrera, hasta el momento puedo hacer que haga un giro de 180º pero no puedo hacer que regrese.
Deberías darle el tiempo para que llegue a una posición y luego darle la orden para que haga la contraria.
Si usas servo.read() puedes leer si llego a la posición deseada y entonces darle la nueva orden o medir cuanto demora y entonces hacerlo.
Dices que ese código no funciona?
El microswitch final de carrera al ponerse en high debe enviar el servo a 180 grados y eso debería ser suficiente y cuando se liberá debería regresarlo y dices que no lo hace?
Tu error pero no olvides editar el código como te pedí por privado
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) { // debe decir buttonState y no buttonPin
myservo.write(180);
}
else {
myservo.write(0);
}
surbyte:
...
Si usas servo.read() puedes leer si llego a la posición deseada y entonces ...
No es correcto, servo.read solo devuelve el valor del último servo.write no hay feedback de la posición real del motor, lo que tarde en llegar o que este clavado en otra posición o sin alimentación al motor queda fuera del control de servo.read