Servomotores

Hola a todos, buenos días! necesito una ayudita con un proyectito que estoy llevando a cabo, resulta que necesito entender como mover 2 servos de 20° a 180° al mismo tiempo con un solo botón pulsador, que al presionar una vez, vaya a 180 y se quede ahí, y al presionar de nuevo vuelva a los 20° del principio.
Tengo el código de los servos pero necesitaría añadir los comandos para que el botón funcione
Podrían Ayudarme? Gracias

Mi Codigo:

#include <Servo.h>
Servo servo1;
Servo servo2;

void setup() 
{
servo1.attach(9);
servo2.attach(10);
}

void loop() {
   

  servo1.write(180);servo2.write(20);
  delay(2000);

  
  
  servo1.write(20);servo2.write(180);
  delay(2000);

  
  
}

¿porque no ayudas tu al foro primero?Te se pidió que leyeras las normas y editaras tu post para corregirlo y lo que haces es repetir el post y como no has leído las normas ,has vuelto a poner un titulo de post inadecuado.No te lo tomes a mal ,pero últimamente hay muchos foreros nuevos que no se toman la molestia de leer las normas (te aseguro que son 2 minutos) y esto es un caos.

Buenas tardes, totalmente de acuerdo con jose. Ese titulo no debe ser así, corrigelo.

Con respecto a tu duda, si mal no recuerdo, la librería servo.h permite que le ingreses el angulo en grados directamente, no entiendo porque dices que quieres ir a 180° y luego a 20° cuando no es eso lo que tienes entre paréntesis.

De manera general, tu debes usar un contador que cuente hasta 2 e ir comparando su valor cuando sea igual a 1 de ir a 180° y cuando sea igual a 2 debe ir a 20° y luego resetear el contador a cero.

#include <Servo.h>
Servo servo1;
Servo servo2;
cont =0;

void setup() 
{
servo1.attach(9);
servo2.attach(10);
pinMode(5,INPUT);    //Para leer la señal del pulsador
servo1.write(0);        //llevamos ambos servos a 0°
servo2.write(0);
}

void loop() {
   
  estado = digitalRead(5);   //Aca leop el estado del pulsador
      if (estado == HIGH){     //Si es alto, incremento contador
        cont ++;
           if (cont == 1){           //Si el contador es igual a 1 entonces llevo a 180 y 20
             servo1.write(180);
             servo2.write(20);
             delay(2000);
           }
           if (cont == 2){           //Si el contador es igual a 2 hago lo contrario y reseteo a cero el cont
             servo1.write(20);
             servo2.write(180);
             cont == 0;
             delay(2000);
           }
              
      }
 
  delay(500);         //cada 500 milisegundos verifico el estado del pulsador
  
}

Por favor si alguien detecta un error comunicarlo ya que nunca he trabajado con esa librería ni he realizado pruebas con ellos. Creo que al código le hace falta el tratamiento para los rebotes del pulsador.

Saludos

Titulo arreglado.
Como seria eso de el conteo ?
Saludos

Supongo que la pregunta que me hiciste por privado tiene que ver con este hilo.

Franco12:
Como podría configurar los códigos para poder mover dos servos al mismo tiempo por medio de un push button, osea que al presionar vaya hasta una determinada graduación, y se quede en esa posición hasta volver a presionar el botón. Gracias

define una variable previamente ej

bool estado = false, valorAnt = false;
bool status = false;
...............
// en el loop
 estado = digitalRead(botonPin);
 if (estado && !estadoAnt) {
    status = !status;   // cada vez que presiones status cambia de un valor al otro
 }
 estadoAnt = estado;
 // ahora tienes una variable status que usas para lo que quieres
 if (status)
    digitalWrite(LED, HIGH); // prendo un led
 else
    digitalWrite(LED, LOW);  // lo apago

Este simple ejemplo muestra como un pulsador puede usarse para accionar con cada pulsación un led y apagarlo con la siguiente pulsación
Si quieres usar dos pulsadores, el primero pone status = true; o sea habilita y el segundo pulsador status = false;
Estas preguntas hazlas por el foro no por privado, por privado manjeo cuestiones de disciplina o de trabajo.

Disculpa mi ignorancia, recién empiezo en el tema, podrías explicarme mejor lo de la variable ?

1ro te recomiendo que no saltes capítulos, trabajas con un servo y no sabes comandar un pulsador?
Te recomiendo ir a la sección Documentación y mira las clases de 0 a 7 y de 8 en adelante que estan en Youtube y son muy didácticas y creo son tu respuesta para entender mejor esto.

cuando lo hagas me dices a ver si no lo has entendido.