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 - остальные будут безжалостно удаляться
комментарии: