Показания делителя напряжения esp32 выключены

esp32 voltage-divider

Пытаюсь считывать данные со схемы делителя напряжения с использованием двух резисторов 240 Ом. Получаем значение 6.0, когда оно должно быть 1.65. Схема питается от настольного компьютера напряжением 3,3 В, и как Huzzah32, так и схема заземлены. Использование USB для Huzzah32. Есть какие-нибудь мысли?

  void setup() 
{
  Serial.begin(9600);
}
void loop() 
{
  int sensorValue = analogRead(A9);
  float voltage = sensorValue * (3.3 / 1023.0);
  Serial.println(voltage);
  delay(1000); 
}

circuit diagram

, 👍1

Обсуждение

Пожалуйста, добавьте схему., @Mats Karlsson

Мой мультиметр показывает правильное Vout..., @Marr Madden

это приближает меня, но все же низкое... плавающее напряжение = (sensorValue * 3,3) / (4095);, @Marr Madden

Чипы ESP32 имеют проблемы с ADC и WIFI одновременно. Может быть, отключить WIFI?, @tavis

и Huzzah32, и цепь заземлены ... заземления соединены? ... ваша схема не показывает точки соприкосновения, @jsotola

Некоторое уточнение: я выбрал A9, потому что это контакт без Wi-Fi. Что касается точки соприкосновения, мой чертеж схемы отстой. У них есть общая основа. Окончательный ответ состоит в том, чтобы вычесть 0,12 из моих входных значений после умножения на 3,3 и деления 12-битных приращений esp (4095). Спасибо за отзыв!, @Marr Madden


1 ответ


Лучший ответ:

1

Во-первых, АЦП ESP32 является 12-разрядным, а не 10-разрядным. поэтому формула должна быть следующей:

float voltage = sensorValue * (3.3 / 4096.0);

Во-вторых, АЦП ESP32 на самом деле не является линейным и, как правило, имеет более низкие показания, чем фактическое значение. Вам нужно будет выполнить некоторую калибровку, если вы хотите получить более точные показания. Вы можете взглянуть на мой github на esp32-adc-calibrate.

,