INA219 DC Current Monitor — цифровой датчик для измерения потребляемого тока, напряжения и мощности на базе микросхемы INA219B. Выходной интерфейс модуля — шина I2C, что очень удобно при работе с устройствами на базе Arduino, Raspberry Pi, Orange PI, Banana Pi и т.п.
Модуль имеет высокую точность измерения тока и напряжения, нулевой дрейф, при этом обладая компактными размерами и не требует дополнительной обвязки. Также важное преимущество датчика INA219 заключается в том, что измерительный шунт установлен в разрыв «+» питания, а не «-«, так как в таком случае не возникает нежелательный в электронике сдвиг потенциалов между «землей» нескольких устройств, объединенных в общую схему.
I2C адрес микросхемы INA219 можно изменить запайкой перемычек А0 и А1. Возможно четыре различных комбинации установки адресных перемычек, соответственно на одну шину I2C можно подключать до 4-х таких модулей. Для увеличения точности измерений предусмотрен регистр калибровки. Напряжение в микросхеме измеряет аналого-цифровой преобразователь (АЦП) и может работать в 9-ти, 10-ти, 11-ти, 12-ти битных режимах. Настраивается режим работы микросхемы изменением регистра конфигурации.
Применить модуль можно в системах, контролирующих процесс заряда/разряда аккумуляторных батарей, источниках питания с контролем напряжения и потребляемого нагрузкой тока.
Характеристики INA219
- Напряжение питания: от 3.0 до 5.5 В;
- Разрядность АЦП: 12 бит;
- Выходной интерфейс: I2C;
- Скорость интерфейса: 3.4 МГц;
- Диапазон измеряемых напряжений: от 0 до 26 В;
- Максимальный измеряемый ток: от -3.2 A до 3.2 A;
- Дискретность при измерении тока: 0.8 мА;
- Точность измерений по току и напряжению: 1 %;
- Диапазон рабочих температур: от -40 до +125 °C;
- Дрейв в рабочем температурном диапазоне: 100 мкВ;
- Калибровка: калибровочный регистр;
- Внутренние данные: измеренный ток и мощность;
- Фильтрация: х128 отсчетов.
Модуль Zero CJMCU-219 на базе INA219
Модуль Zero CJMCU-219 — это законченный модуль, который можно подключать к различным устройствам, не только к платформе Arduino, но и к Raspberry Pi, Orange PI, Banana Pi и др.. Основным элементом на плате является микросхема INA219. Несмотря на маленький размер и малое количество выводов, INA219 обладает большими возможностями. Микросхема измеряет падение напряжения на шунте (резисторе с малым сопротивлением на выводах Vin+ и Vin-). На плате установлен шунт с сопротивлением 0.1 Ом.
Принципиальная схема Zero CJMCU-219/INA219
Модуль Zero CJMCU-219 имеет минимальный набор компонентов для правильной работы датчика INA219.
Распиновка Zero CJMCU-219/INA219
Плата имеет 6+2 вывода, 2 из 6 дублируют Vin+ и Vin-.
Вывод | Описание |
---|---|
Vcc | Питание модуля от 3.0 до 5.5 В |
Gnd | Земля |
Scl | Линия тактирования (Serial CLock) |
Sda | Линия данных (Serial Data) |
Vin- | Выход напряжения от источника питания через шунт. Напряжение измеряется от этого вывода относительно земли |
Vin+ | Вход напряжения от источника питания |
A0 | Выбор I2C адреса |
A1 | Выбор I2C адреса |
Система установки I2C адреса на INA219
Если используется более одной платы INA219, каждой плате должен быть присвоен уникальный адрес. Это делается с помощью адресных перемычек на правом краю платы. Базовый адрес I2C для каждой платы равен 0x40. Бинарный адрес, который вы программируете с помощью перемычек адресов, добавляется к базовому адресу I2C.
A1 | A0 | Адрес (bin) | Адрес (hex) |
---|---|---|---|
GND | GND | 1000000 | 0x40 |
GND | VS+ | 1000001 | 0x41 |
GND | SDA | 1000010 | 0x42 |
GND | SCL | 1000011 | 0x43 |
VS+ | GND | 1000100 | 0x44 |
VS+ | VS+ | 1000101 | 0x45 |
VS+ | SDA | 1000110 | 0x46 |
VS+ | SCL | 1000111 | 0x47 |
SDA | GND | 1001000 | 0x48 |
SDA | VS+ | 1001001 | 0x49 |
SDA | SDA | 1001010 | 0x4A |
SDA | SCL | 1001011 | 0x4B |
SCL | GND | 1001100 | 0x4C |
SCL | VS+ | 1001101 | 0x4D |
SCL | SDA | 1001110 | 0x4E |
SCL | SCL | 1001111 | 0x4F |
Для изменения адреса шины I2C платы микросхемы INA219 нужно запаять/отпаять перемычки на A0 и A1. Определить текущий адрес можно с помощью I2cScanner от Arduino.
Описание регистров INA219
INA219 использует 5 регистров для хранения настроек конфигураций, результатов измерений, максимальных/минимальных пределов и информации о состоянии. В таблице ниже представлены регистры INA219.
Содержимое регистра обновляется 4 мкс после завершения команды записи. Следовательно, требуется задержка в 4 мкс между завершением записи в заданный регистр и последующим считыванием этого регистра (без изменения указателя) при использовании частот SCL, превышающих 1 МГц.
АДРЕС | ИМЯ РЕГИСТРА | ФУНКЦИЯ | СБРОС | ТИП |
---|---|---|---|---|
HEX | HEX | |||
0x00 | Конфигурации | Сброс всех регистров, настройка диапазона напряжения шины, усиление PGA, разрешение / усреднение АЦП. | 0x399F | R/W |
0x01 | Напряжение шунта | Данные измерения напряжения шунта. | — | R |
0x02 | Напряжение шины | Данные измерения напряжения шины. | — | R |
0x03 | Мощность | Данные измерения мощности. | 0x0000 | R |
0x04 | Ток | Содержит значение тока, протекающего через шунтирующий резистор. | 0x0000 | R |
0x05 | Калибровка | Калибровочный регистр. Полная калибровка системы. | 0x0000 | R/W |
Блок-диаграмма микросхемы INA219
Материалы
Скачать документацию datasheet_ina219.pdf
adafruit_ina219-current-sensor-breakout.pdf
adafruit.com
Цитата: «I2C адрес микросхемы INA219 можно изменить запайкой перемычек А0 и А1. Возможно четыре различных комбинации установки адресных перемычек, соответственно на одну шину I2C можно подключать до 4-х таких модулей.»
И далее следует таблица на 16 адресов! Так 4 или 16 модулей можно установить!?
Здравствуйте, интересное замечание и по делу. Нужно было уточнить и более подробно описать суть.
Ели менять местами резисторы на приведённом в статье модуле, то получается, что можно соединить 4 модуля на одной шине.
Если использовать SDA и SCL, тогда можно соединить до 16. Но приведённый модуль не поддерживает это, должно быть 4 контактных площадок для этого
«Диапазон измеряемых напряжений: от 0 до 26 В;
Максимальный измеряемый ток: от -3.2 A до 3.2 A;»
вижу, что ток может измерить отрицательный, а если будет отрицательное напряжение, сгорит?