#include <ESP32Servo.h>
#define ADC_PIN 34 // Только ADC1 (32-39)
#define SERVO_PIN 13
Servo myServo;
int val; // сырые данные АЦП (0-4095)
float voltage; // напряжение в вольтах
void setup() {
Serial.begin(115200);
myServo.attach(SERVO_PIN);
myServo.write(0); // начальная позиция
}
void loop() {
// Усредняем 20 измерений для стабильности
long sum = 0;
for (int i = 0; i < 20; i++) {
sum += analogRead(ADC_PIN);
delay(1);
}
val = sum / 20;
// Переводим в напряжение (3.3 В / 4095 шагов)
voltage = (val / 4095.0) * 3.3;
// Преобразуем 0–3.3 В в угол 0–180°
int angle = map(val, 0, 4095, 0, 180);
angle = constrain(angle, 0, 180); // защита от выхода
myServo.write(angle);
Serial.print("Напряжение: ");
Serial.print(voltage, 2);
Serial.print(" В, Угол: ");
Serial.println(angle);
delay(50); // частота обновления
}