#include <ESP32Servo.h>
#include <AccelStepper.h>
// Definição do servo
Servo servo;
int servoPin = 16;
int angle = 0;
// Definição do motor de passo
#define stepPin 18
#define dirPin 5
AccelStepper stepper(1, stepPin, dirPin); // Tipo 1: Driver de 2 pinos (STEP, DIR)
void setup() {
// Configuração do servo
servo.attach(servoPin);
servo.write(angle); // Posicionar o servo no ângulo inicial
// Configuração do motor de passo
stepper.setMaxSpeed(1000); // Define a velocidade máxima
stepper.setAcceleration(500); // Define a aceleração para movimentos rápidos
}
void loop() {
for (int angle = 0; angle <= 180; angle += 10) {
// Girar o servo motor de 10 em 10 graus
servo.write(angle);
delay(500); // Tempo para o servo atingir a posição
// Mover o motor de passo rapidamente
stepper.move(200); // Define o número de passos que o motor de passo deve mover
stepper.runToPosition(); // Move o motor até a posição definida
}
// Retornar o servo motor de 10 em 10 graus
for (int angle = 180; angle >= 0; angle -= 10) {
// Girar o servo motor de 10 em 10 graus
servo.write(angle);
delay(500); // Tempo para o servo atingir a posição
// Mover o motor de passo rapidamente
stepper.move(200); // Define o número de passos que o motor de passo deve mover
stepper.runToPosition(); // Move o motor até a posição definida
}
}