#include <ESP32Servo.h>
// Criação dos objetos para controlar os servos
Servo servoMotor1;
Servo servoMotor2;
// Definição dos pinos dos potenciômetros
#define pinoPotenciometro1 34
#define pinoPotenciometro2 35
// Definição dos pinos de sinal dos servos
#define pinoServo1 18
#define pinoServo2 19
// Variáveis para armazenar as leituras dos potenciômetros
int leituraPotenciometro1 = 0;
int leituraPotenciometro2 = 0;
// Variáveis para armazenar os ângulos dos servos
int anguloServo1 = 0;
int anguloServo2 = 0;
void setup() {
// Inicializa a comunicação serial
Serial.begin(115200);
// Conecta o objeto servoMotor1 ao pino definido
servoMotor1.attach(pinoServo1);
// Conecta o objeto servoMotor2 ao pino definido
servoMotor2.attach(pinoServo2);
// Pequena mensagem inicial
Serial.println("Controle de 2 servos com 2 potenciometros iniciado.");
}
void loop() {
// Faz a leitura analógica do potenciômetro 1
leituraPotenciometro1 = analogRead(pinoPotenciometro1);
// Faz a leitura analógica do potenciômetro 2
leituraPotenciometro2 = analogRead(pinoPotenciometro2);
// Converte a leitura do potenciômetro 1, de 0 a 4095, para ângulo de 0 a 180 graus
anguloServo1 = map(leituraPotenciometro1, 0, 4095, 0, 180);
// Converte a leitura do potenciômetro 2, de 0 a 4095, para ângulo de 0 a 180 graus
anguloServo2 = map(leituraPotenciometro2, 0, 4095, 0, 180);
// Move o servo 1 para o ângulo calculado
servoMotor1.write(anguloServo1);
// Move o servo 2 para o ângulo calculado
servoMotor2.write(anguloServo2);
// Mostra os valores no Monitor Serial
Serial.print("Potenciometro 1: ");
Serial.print(leituraPotenciometro1);
Serial.print(" | Servo 1: ");
Serial.print(anguloServo1);
Serial.print(" graus");
Serial.print(" || Potenciometro 2: ");
Serial.print(leituraPotenciometro2);
Serial.print(" | Servo 2: ");
Serial.print(anguloServo2);
Serial.println(" graus");
// Pequeno atraso para suavizar a leitura
delay(20);
}