Ну и заодно ваттметр.
- ► Напряжение питания: 3 — 5 В
- ► Максимальное измеряемое напряжение: 26 В
- ► Максимальная измеряемая сила тока: 3.2 А
Датчик ina219 можно подключить к любому микроконтроллеру по протоколу I2C.
Все контакты модуля ina219 идут с шагом 2.54мм, кроме того измеряемую цепь можно подключить используя клеммник или болтовое соединение.
Соберем на Arduino эквивалентную схему, позволяющую измерять ток и напряжение:
Для работы с ina219 удобно использовать библиотеку от adafruit, перед заливкой прошивки её необходимо установить в среду Arduino IDE
https://github.com/adafruit/Adafruit_INA219
Основные функции библиотеки:
float getBusVoltage_V(void);
Считывает напряжение между GND и VIN-. Это полное напряжение, наблюдаемое схемой. (напряжение питания - напряжение шунта).
Возвращаемое значение - в вольтах.
float getShuntVoltage_mV(void);
Считывает напряжение между VIN- и VIN+. Это измеренное падение напряжения на шунтирующем резисторе (номинал 0.1 Ом). Возвращаемое значение - в милливольтах.
float getCurrent_mA(void);
Считывает ток, полученный по закону Ома, из измеренного напряжения шунта. Возвращаемое значение - в миллиамперах.
ina219.getPower_mW();
Мощность потребляемая нагрузкой. Возвращаемое значение - в (Милливаттах)
Пример работы:
Открываем монитор порта:
Напряжение на лампе ровно 6.54V, что для прототипа собранного на соплях беспаечной макетной плате практически идеально.
Это была скучная схема из документации, при желании с INA219 можно немножко "по химичить", а для этого добавим на шину i2C дисплей.
Добавив перемычку (фиолетовая линия на схеме) с клеммы "+" блока питания на вход Vin платы Arduino, измерять ток проходящий через лампу можно и без дополнительного источника питания для самой Arduino.
Такая схема подойдет для контроля тока какого-нибудь электродвигателя - но о принципах такой защиты я расскажу в одной из следующих статей.
Если в данной схеме отключить нагрузку:
то на дисплее будет отображаться значение напряжения источника питания от которого питается сама схема. Данный вариант идеально подойдет для контроля АКБ и передачи телеметрии о состоянии батареи.
Последний вариант самый "забористый" - измерение собственного энергопотребления. Для этого вся схема подключается через шунт токового датчика.
Поскольку моя статья не копипаста с Интернета и несмотря на то, что последние 3 схемы я успешно использовал в практических целях - правильно так делать или нет мне не известно....
На плате модуля находятся две группы адресных перемычек, по умолчанию установлен адрес 0х40. Если замкнуть перемычку А0, то адрес поменяется на 0х41, если замкнуть перемычку А1, то адрес поменяется на 0х44, при замыкании двух перемычек адрес поменяется на 0х45. Таким образом при желании можно повесить на шину i2C 4 датчика.
На Ali мне еще встречались синенькие платки. Среди них мне попадались и платы с браком (практически к/з по входу - выходу), ina219 сильно греется и не инициализируется. Деньги правда удалось "от спорить" - видимо Китайцы и сами в курсе данной ситуации - так что если надумаете покупать такую плату - обязательно проверяйте её перед тем, как куда-то впаивать намертво.
В целом датчик довольно интересный так как позволяет применять достаточно нестандартные схемы подключения, что позволяет использовать его не совсем по прямому назначению.
Можно удалить шунт на 0.1 Ом и заменить его на свой собственный, чтобы изменить диапазон измерений тока (допустим 0.01 Ом для того чтобы измерять ток до 32 Ампер с разрешением 8mA).
Цена вопроса на Ali 150-200 рублей - датчик ina219
Примеры кода из статьи качайте тут
Полный список всех статей на канале доступен по этой ссылке:
Если информация была полезной не забудьте подписаться и поставить лайк. Всем удачи!