#include <ESP32Servo.h>
#define ADC_PIN 34
#define SERVO_PIN 13
Servo myServo;
int lastAngle = -1; // запоминаем последний угол
void setup() {
Serial.begin(115200);
myServo.attach(SERVO_PIN);
myServo.write(0);
}
void loop() {
// Усредняем
long sum = 0;
for (int i = 0; i < 20; i++) {
sum += analogRead(ADC_PIN);
delay(1);
}
int val = sum / 20;
// Считаем угол (0-180)
int angle = map(val, 0, 4095, 0, 180);
angle = constrain(angle, 0, 180);
// Двигаем ТОЛЬКО если угол изменился
if (angle != lastAngle) {
myServo.write(angle);
lastAngle = angle;
// Выводим в монитор порта
float voltage = (val / 4095.0) * 3.3;
Serial.print("Напряжение: ");
Serial.print(voltage, 2);
Serial.print(" В, Угол: ");
Serial.println(angle);
}
delay(50); // опрос каждые 50 мс
}