2019-11-16

ESP-32 и INA219

Как измерить напряжение батареи при питании вашей самоделки на базе базе ESP32?

Самым очевидным решением было бы использовать резисторный делитель и снимать напряжение батареи с него, однако, оказалось, что модуль ESP-32 Cam который я использую для опытов не содержит ни одного аналогового входа, они все используются для встроенной камеры.

Поэтому, другим вариантом было использования отдельного датчика на базе INA219. Этот чип общается с внешним миром через i2c - для этого можно использовать любые две ноги ввода-вывода - в моем случае это 13 -SDA, 15-SDL. Для того чтобы все заработало как полагается в стандартный пример от Adafruit достаточно добавить одну единственную строчку для инициализации i2c на нестандартных выводах:

 Wire.begin(13, 15);

Питание микороконтроллера осуществляется Step Down стабилизатором выходное напряжение которого устанавливается переменным резистором - на нем я выставил напряжение около 3.3 вольта.

Интересно, что если ничего не подать на ногу V+ INA219 то она показывает напряжение около 0.8 В и ток порядка 10mA - уж не знаю почему - во всех примерах которые я видел в сети на него ничего не подается и эти ноги используются только при измерении токов - у меня же, почему то так не заработало - нужно было сигнал подавать именно на +V при том что я запитал сам сенсор от 3.3 вольта от которого запитал и микроконтроллер.

Вот код прошивки.

Вот так выглядит моя схема. 

На реальной схеме было несколько больше деталей, но в данной прошивке они не используются:

Вот что выводится в терминал:

Таким образом удалось измерить не только напряжение на аккумуляторах, но и потребляемый устройством ток.

 

комментарии:

 

Для того чтобы каждый раз не представляться можно войти как зарегистрированный пользователь.

Имя*

разрешены только теги br, font, span, p, strong, u, p, blockquote, a, div, img - остальные будут безжалостно удаляться