Загрузка данных


#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);  // частота обновления
}