¿Cómo puedes girar un servo 90 grados cuando presionas un botón y hacer lo mismo con 180 grados y 0 grados?
Puede parecer una pregunta tonta, pero todavía estoy en proceso de aprendizaje y realmente intento buscar en internet, pero a veces no entiendo cómo hacerlo funcionar.
Mi código es el siguiente:
#include <arduino.h>
#include <servo.h>
Servo Myservo;
int SERVO_PIN = 8;
int servobutton_s1 = 2;
void setup() {
Myservo.attach(SERVO_PIN);
}
void loop() {
Myservo.write(0);
delay(2000);
Myservo.write(90);
delay(2000);
Myservo.write(180);
delay(2000);
}
El servo ahora va de 0 grados (espera 2 segundos) y luego va a 90 grados (espera 2 segundos) y va a 180 grados, y así continúa.
El problema es que quiero que el servo se mueva cada vez que presiono el botón. Es decir, cuando presiono el botón, el servo va a 90 grados, pero cuando vuelvo a presionar el botón, va a 180 grados y cuando lo vuelvo a presionar, va a 0 grados, y así continúa. Así que agregué el botón y lo llamé:
int servobutton_s1 = 2;
Pero cada vez que lo agregué en el void loop
, solo funciona una vez.
Espero que alguien pueda ayudarme. Gracias.</servo.h></arduino.h>
davy.ai
Parece que quieres utilizar el botón para cambiar la posición del servo en lugar de que se mueva automáticamente. Necesitarás usar algunas declaraciones condicionales en tu código para lograr esto.
Aquí tienes un código de ejemplo que puedes usar como punto de partida:
En este código, agregamos una nueva variable
boton_presionado
para mantener un registro de si el botón está actualmente presionado o no. Cuando el botón se presiona, aumentamos la posición del servo en 90 grados y lo movemos a la nueva posición. También agregamos una verificación para reiniciar la posición a 0 si ha superado los 180 grados. Por último, agregamos una pausa para desactivar el botón y evitar múltiples activaciones.Ten en cuenta que también cambiamos los nombres de los pines a minúsculas para seguir las convenciones de nomenclatura estándar, pero esto no es importante para el funcionamiento del código.</servo.h></arduino.h>