Как использовать аналоговый вывод ESP12F для считывания напряжения батареи?

Я использую микроконтроллер ESP12F, работающий от батареи 3,7 В.

Я хочу получить фактическую информацию о состоянии заряда аккумулятора. Чтобы знать, когда аккумулятор необходимо подзарядить.

Чтобы добиться этого, я создал падение напряжения от 3,7 В до 0,94 В (потому что я прочитал, что вывод АЦП esp12f работает в диапазоне от 0 В до 1 В) с помощью резисторов 3 кОм и 1 кОм и подключил V out падения напряжения к выводу АЦП. Но аналоговое считывание постоянно 1024 и не меняется. Когда я понижаю напряжение до 0,54 В, аналоговое считывание снова 1024. Я попробовал со вторым esp12f, и результат тот же. Когда я пытаюсь считать аналоговое значение с разных компонентов, таких как датчик температуры, все кажется в порядке - аналоговое значение составляет ~500, а при повышении температуры значение увеличивается до ~650. Я следовал этой статье о том, как считать напряжение батареи, но безуспешно. Я попробовал сделать ту же задачу с Arduino Uno вместо esp12f, и все работает отлично.

Итак, основываясь на этих тестах и наблюдениях, я думаю, что нет проблем со схемой, потому что на Arduino Uno все работает нормально, нет проблем с выводом АЦП esp12f, потому что с датчиком температуры аналоговое значение является точным.

Подведем итог: Моя проблема в том, что аналоговое значение от батареи постоянно равно 1024, и я не могу получить фактическую информацию об оставшемся напряжении батареи через esp12f.

На изображении ниже показано, как выглядит моя схема:

А это код того, как я считываю аналоговое значение:

const int analogPin = A0;
void setup()
{
    Serial.begin(115200);
}

void loop()
{
    int sensorValue = analogRead(analogPin);
    Serial.print("sensorValue: ");
    Serial.print(sensorValue);

    delay(1000);
}

, 👍-1


1 ответ


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

1

Как вы подтверждаете в комментарии, вы поменяли местами резисторы. Поэтому на вход АЦП подавалось слишком высокое напряжение, и АЦП всегда возвращал максимальное значение.

С помощью этой принципиальной схемы мы можем рассчитать приблизительное напряжение:

схема

Вы использовали R1 = 1 кОм и R2 = 3 кОм, это дает V_ADC = 3,7 В * R2 / (R1 + R2) = 3,7 В * 3 кОм / (1 кОм + 3 кОм) = около 2,8 В.

При правильных значениях R1 = 3 кОм и R2 = 1 кОм V_ADC = 3,7 В * R2 / (R1 + R2) = 3,7 В * 1 кОм / (3 кОм + 1 кОм) = около 0,9 В.

,