#include <ESP32Servo.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// Instanciamos nuestro servo
Servo myServo;
int pinServo = 2; // Pin digital para el servo
int potPin = 25; // Pin analógico para el potenciómetro
void setup() {
// Inicializamos el servo en el pin correspondiente
myServo.attach(18);
// Configuramos el pin del potenciómetro como entrada
pinMode(potPin, INPUT);
pinMode(pinServo, OUTPUT);
// Iniciamos comunicación serial para depuración
Serial.begin(115200);
}
void loop() {
// Leemos el valor del potenciómetro (0-4095 para ESP32)
int potValue = analogRead(potPin);
// Mapear el valor del potenciómetro (0-4095) al rango de ángulos del servo (0-180)
int servoAngle = map(potValue, 0, 4095, 0, 180);
// Movemos el servo al ángulo calculado
myServo.write(servoAngle);
// Imprimimos los valores para depuración
Serial.print("Potentiometer Value: ");
Serial.print(potValue);
Serial.print(" | Servo Angle: ");
Serial.println(servoAngle);
// Esperamos un corto período antes de la próxima lectura
delay(15);
}