// Inclua a biblioteca Servo
#include <ESP32Servo.h>
// Pinos dos servo motores
const int pinoServo1 = 26;
const int pinoServo2 = 27;
// Declaração das variáveis servo
Servo servo1;
Servo servo2;
// Declaração das variáveis botão
int pinoBotao1 = 22;
int pinoBotao2 = 21;
// Declaração da variável startTime como static
static unsigned long
startTime1,
startTime2;
void setup()
{
// Inicialize os servo motores
servo1.attach(pinoServo1);
servo2.attach(pinoServo2);
// Posicione os servo motores em 90º
servo1.write(90);
servo2.write(90);
// Inicialize as variáveis startTime
startTime1 = millis();
startTime2 = millis();
// Configure os botões como entrada
pinMode(pinoBotao1, INPUT);
pinMode(pinoBotao2, INPUT);
}
void loop()
{
// Leia o estado dos botões
int estadoBotao1 = digitalRead(pinoBotao1);
int estadoBotao2 = digitalRead(pinoBotao2);
if( estadoBotao1 == LOW) // Se botão1 pressionado, gire servo motor 1 90º
{
servo1.write(0); // Posicione o servo motor 1 em 0º
startTime1 = millis();// Comece o cronômetro
}
if( estadoBotao2 == LOW) // se botão2 pressionado, gire servo motor 2 90º
{
servo2.write(0); // Posicione o servo motor 2 em 90º
startTime2 = millis(); // Comece o cronômetro
}
//se tempo de espera decorrido, volte servo motor1 à posição inicial
if( millis() - startTime1 >= 5000)
{
servo1.write(90); // Posicione o servo motor 1 em 90º
}
// Se o tempo de espera tiver decorrido, volte o servo motor à posição iniciail
if( millis() - startTime2 >= 5000)
{
servo2.write(90); // Posicione o servo motor 2 em 90º
}
}