Без рубрики 'Небольшой цифровой вольтамперметр на микросхеме INA219

Небольшой цифровой вольтамперметр на микросхеме INA219

0 комментов
просмотра
21 мин. на чтение

Подпишись на RSS!

Подпишись на RSS и получай обновления блога!

Получать обновления по электронной почте:

    • Поворотное устройство для солнечного коллектора
      15 марта 2021
    • Выбор подпрограммы с помощью кнопки
      11 марта 2021
    • Керамические конденсаторы SMD, параметры
      4 марта 2021
    • Программа для проверки выходных буеров PIC16F676 и PIC16F628A
      21 февраля 2021
    • Амперметр цифровой c коррекцией показаний на INA226
      14 февраля 2021
    • Зарядное устройство для автомобильных аккумуляторов — 239 449 просмотров
    • Стабилизатор тока на LM317 — 175 024 просмотров
    • Стабилизатор напряжения на КР142ЕН12А — 126 284 просмотров
    • Реверсирование электродвигателей — 102 894 просмотров
    • Зарядное для аккумуляторов шуруповерта — 99 623 просмотров
    • Карта сайта — 97 353 просмотров
    • Зарядное для шуруповерта — 89 159 просмотров
    • Самодельный сварочный аппарат — 88 777 просмотров
    • Схема транзистора КТ827 — 83 931 просмотров
    • Регулируемый стабилизатор тока — 83 082 просмотров
    • DC-DC (5)
    • Автомат откачки воды из дренажного колодца (5)
    • Автоматика (35)
    • Автомобиль (3)
    • Антенны (2)
    • Ассемблер для PIC16 (3)
    • Блоки питания (30)
    • Бурение скважин (6)
    • Быт (11)
    • Генераторы (1)
    • Генераторы сигналов (8)
    • Датчики (4)
    • Двигатели (7)
    • Для сада-огорода (11)
    • Зарядные (17)
    • Защита радиоаппаратуры (8)
    • Зимний водопровод для бани (2)
    • Измерения (41)
    • Импульсные блоки питания (2)
    • Индикаторы (6)
    • Индикация (10)
    • Как говаривал мой дед … (1)
    • Коммутаторы (6)
    • Логические схемы (1)
    • Обратная связь (1)
    • Освещение (3)
    • Программирование для начинающих (19)
    • Программы (1)
    • Работы посетителей (7)
    • Радиопередатчики (2)
    • Радиостанции (1)
    • Регуляторы (5)
    • Ремонт (1)
    • Самоделки (12)
    • Самодельная мобильная пилорама (3)
    • Самодельный водопровод (7)
    • Самостоятельные расчеты (37)
    • Сварка (1)
    • Сигнализаторы (5)
    • Справочник (13)
    • Стабилизаторы (16)
    • Строительство (2)
    • Таймеры (4)
    • Термометры, термостаты (27)
    • Технологии (21)
    • УНЧ (2)
    • Формирователи сигналов (1)
    • Электричество (4)
    • Это пригодится (13)
  • Архивы
    Выберите месяц Март 2021  (3) Февраль 2021  (2) Январь 2021  (1) Декабрь 2020  (1) Ноябрь 2020  (1) Октябрь 2020  (1) Сентябрь 2020  (2) Июль 2020  (2) Июнь 2020  (1) Апрель 2020  (1) Март 2020  (3) Февраль 2020  (2) Декабрь 2019  (2) Октябрь 2019  (3) Сентябрь 2019  (3) Август 2019  (4) Июнь 2019  (4) Февраль 2019  (2) Январь 2019  (2) Декабрь 2018  (2) Ноябрь 2018  (2) Октябрь 2018  (3) Сентябрь 2018  (2) Август 2018  (3) Июль 2018  (2) Апрель 2018  (2) Март 2018  (1) Февраль 2018  (2) Январь 2018  (1) Декабрь 2017  (2) Ноябрь 2017  (2) Октябрь 2017  (2) Сентябрь 2017  (4) Август 2017  (5) Июль 2017  (1) Июнь 2017  (3) Май 2017  (1) Апрель 2017  (6) Февраль 2017  (2) Январь 2017  (2) Декабрь 2016  (3) Октябрь 2016  (1) Сентябрь 2016  (3) Август 2016  (1) Июль 2016  (9) Июнь 2016  (3) Апрель 2016  (5) Март 2016  (1) Февраль 2016  (3) Январь 2016  (3) Декабрь 2015  (3) Ноябрь 2015  (4) Октябрь 2015  (6) Сентябрь 2015  (5) Август 2015  (1) Июль 2015  (1) Июнь 2015  (3) Май 2015  (3) Апрель 2015  (3) Март 2015  (2) Январь 2015  (4) Декабрь 2014  (9) Ноябрь 2014  (4) Октябрь 2014  (4) Сентябрь 2014  (7) Август 2014  (3) Июль 2014  (2) Июнь 2014  (6) Май 2014  (4) Апрель 2014  (2) Март 2014  (2) Февраль 2014  (5) Январь 2014  (4) Декабрь 2013  (7) Ноябрь 2013  (6) Октябрь 2013  (7) Сентябрь 2013  (8) Август 2013  (2) Июль 2013  (1) Июнь 2013  (2) Май 2013  (4) Апрель 2013  (7) Март 2013  (7) Февраль 2013  (7) Январь 2013  (11) Декабрь 2012  (7) Ноябрь 2012  (5) Октябрь 2012  (2) Сентябрь 2012  (10) Август 2012  (14) Июль 2012  (5) Июнь 2012  (21) Май 2012  (13) Апрель 2012  (4) Февраль 2012  (6) Январь 2012  (6) Декабрь 2011  (2) Ноябрь 2011  (9) Октябрь 2011  (14) Сентябрь 2011  (22) Август 2011  (1) Июль 2011  (5)

Описание регистров 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

Установка библиотеки для CJMCU-219

Запустите среду разработки Ардуино и перейдите в меню: Скетч -> Подключить библиотеку -> Управлять библиотеками…

Запустится Менеджер библиотек. Чтобы найти библиотеки для работы с нашим датчиком, введём в текстовом поле «ina219».

Как видите, нам доступно несколько библиотек для работы с INA219. Я предлагаю установить библиотеку INA219_WE by Wolfgang Ewald, т.к. она достаточно прозрачна и предоставляет доступ ко всем возможностям датчика. Выберите её в списке и нажмите кнопку «Установка». На всякий случай вот ссылка на репозиторий библиотеки: https://github.com/wollewald/INA219_WE

Откройте пример Continuous, идущий вместе с данной библиотекой:

Залейте скетч в Ардуино и подключите к ней модуль INA219 в соответствии с приведённой ранее схемой. Результат работы скетча можно увидеть в мониторе порта:

Как видно из скриншота, сила тока в моей цепи немного скачет. Это потому, что коллекторный двигатель создаёт помехи, и, по-хорошему, параллельно ему нужно было подключить неполярный конденсатор.  Но зато это позволит показать возможности INA219 в борьбе с помехами. Для этого давайте вернёмся к скетчу и разберёмся с функциями библиотеки.

Usage

If you want to give it a try then copy and onto the flash drive of your pyboard, connect the sensor to the I2C(1) or I2C(2) interfaces on the pyboard,
then from a REPL prompt execute:

from ina219 import INA219
from machine import I2C

I2C_INTERFACE_NO = 2
SHUNT_OHMS = 0.1  # Check value of shunt used with your INA219

ina = INA219(SHUNT_OHMS, I2C(I2C_INTERFACE_NO))
ina.configure()
print("Bus Voltage: %.3f V" % ina.voltage())
print("Current: %.3f mA" % ina.current())
print("Power: %.3f mW" % ina.power())

Alternatively copy ,
and
to the flash drive and from the REPL prompt execute:

execfile('example.py')

The address of the sensor unless otherwise specified is the default
of 0x40.

Note that the bus voltage is that on the load side of the shunt resister,
if you want the voltage on the supply side then you should add the bus
voltage and shunt voltage together, or use the supply_voltage()
function.

Simple — Auto Gain

This mode is great for getting started, as it will provide valid readings
until the device current capability is exceeded for the value of the
shunt resistor connected (3.2A for 0.1Ω shunt resistor). It does this by
automatically adjusting the gain as required until the maximum is reached,
when a DeviceRangeError exception is thrown to avoid invalid readings being taken.

The downside of this approach is reduced current and power resolution.

from ina219 import INA219
from ina219 import DeviceRangeError
from machine import I2C

I2C_INTERFACE_NO = 2
SHUNT_OHMS = 0.1  # Check value of shunt used with your INA219

ina = INA219(SHUNT_OHMS, I2C(I2C_INTERFACE_NO))
ina.configure()

print("Bus Voltage: %.3f V" % ina.voltage())
try:
    print("Bus Current: %.3f mA" % ina.current())
    print("Power: %.3f mW" % ina.power())
    print("Shunt voltage: %.3f mV" % ina.shunt_voltage())
except DeviceRangeError as e:
    # Current out of device range with specified shunt resister
    print e

Advanced — Auto Gain, High Resolution

In this mode by understanding the maximum current expected in your system
and specifying this in the script you can achieve the best possible current
and power resolution. The library will calculate the best gain to achieve
the highest resolution based on the maximum expected current.

Важно  Поздравления на празднуется день матери в прозе

In this mode if the current exceeds the maximum specified, the gain will
be automatically increased, so a valid reading will still result, but at
a lower resolution.

As above when the maximum gain is reached, an exception is thrown to
avoid invalid readings being taken.

from ina219 import INA219
from ina219 import DeviceRangeError
from machine import I2C

I2C_INTERFACE_NO = 2
SHUNT_OHMS = 0.1  # Check value of shunt used with your INA219
MAX_EXPECTED_AMPS = 0.2

ina = INA219(SHUNT_OHMS, I2C(I2C_INTERFACE_NO), MAX_EXPECTED_AMPS)
ina.configure(ina.RANGE_16V)

print("Bus Voltage: %.3f V" % ina.voltage())
try:
    print("Bus Current: %.3f mA" % ina.current())
    print("Power: %.3f mW" % ina.power())
    print("Shunt voltage: %.3f mV" % ina.shunt_voltage())
except DeviceRangeError as e:
    # Current out of device range with specified shunt resister
    print e

Advanced — Manual Gain, High Resolution

In this mode by understanding the maximum current expected in your system
and specifying this and the gain in the script you can always achieve the
best possible current and power resolution, at the price of missing current
and power values if a current overflow occurs.

from ina219 import INA219
from ina219 import DeviceRangeError
from machine import I2C

I2C_INTERFACE_NO = 2
SHUNT_OHMS = 0.1  # Check value of shunt used with your INA219
MAX_EXPECTED_AMPS = 0.2

ina = INA219(SHUNT_OHMS, I2C(I2C_INTERFACE_NO), MAX_EXPECTED_AMPS)
ina.configure(ina.RANGE_16V, ina.GAIN_1_40MV)

print("Bus Voltage: %.3f V" % ina.voltage())
try:
    print("Bus Current: %.3f mA" % ina.current())
    print("Power: %.3f mW" % ina.power())
    print("Shunt voltage: %.3f mV" % ina.shunt_voltage())
except DeviceRangeError as e:
    print("Current overflow")

The sensor address may be altered as follows:

ina = INA219(SHUNT_OHMS, I2C(2), MAX_EXPECTED_AMPS, address=0x41)

Low Power Mode

The sensor may be put in low power mode between reads as follows:

ina.configure(ina.RANGE_16V)
while True:
    print("Voltage : %.3f V" % ina.voltage())
    ina.sleep()
    time.sleep(60)
    ina.wake()

Note that if you do not wake the device after sleeping, the value
returned from a read will be the previous value taken before sleeping.

Современные датчики тока

Датчиками тока являются устройства, с помощью которых определяется сила постоянного или переменного тока в электрических цепях. В их конструкцию входят магнитопровод с зазором и компенсационной обмоткой, а также электронная плата, выполняющая обработку электрических сигналов. Основным чувствительным элементом служит датчик Холла, закрепляемый в зазоре магнитопровода и соединяемый со входом усилителя.

Принцип действия в целом одинаковый для всех подобных устройств. Под действием измеряемого тока возникает магнитное поле, затем, с помощью датчика Холла осуществляется выработка соответствующего напряжения. Далее это напряжение усиливается на выходе и подается на выходную обмотку.

Основные виды датчиков тока:

Датчики прямого усиления (O/L). Обладают небольшими размерами и массой, низким энергопотреблением. Диапазон преобразований сигналов существенно расширен. Позволяет избежать потерь в первичной цепи. Работа устройства базируется на магнитном поле, которое создает первичный ток Ip. Далее происходит концентрация магнитного поля в магнитной цепи и его дальнейшее преобразование элементом Холла в воздушном зазоре. Сигнал, полученный с элемента Холла усиливается и на выходе образуется пропорциональная копия первичного тока.

Датчики тока (Eta). Характеризуются широким диапазоном частот и расширенным диапазоном преобразований. Преимуществами данных устройств является низкое энергопотребление и незначительное время задержки. Работа устройства поддерживается однополярным питанием от 0 до +5 вольт. Действие прибора основано на комбинированной технологии, в которой используется компенсационный тип и прямое усиление. Это способствует существенному улучшению характеристик датчика и более сбалансированному функционированию.

Датчики тока компенсационные (C/L). Отличаются широким диапазоном частот, высокой точностью и малым временем задержки. У приборов этого типа отсутствуют потери первичного сигнала, у них отличные характеристики линейности и низкий температурный дрейф. Компенсация магнитного поля, создаваемого первичным током Ip, происходит за счет такого же поля, образующегося во вторичной обмотке. Генерация вторичного компенсирующего тока осуществляется элементом Холла и электроникой самого датчика. В конечном итоге, вторичный ток представляет собой пропорциональную копию первичного тока.

Датчики тока компенсационные (тип С). Несомненными достоинствами этих приборов является широкий диапазон частот, высокая точность информации, отличная линейность и сниженный температурный дрейф. Кроме того, данные приборы могут измерять дифференциальные токи (CD). Они обладают высокими уровнями изоляции и пониженным влиянием на первичный сигнал. Конструкция состоит из двух тороидальных магнитопроводов и двух вторичных обмоток. В основе работы датчиков лежит компенсация ампер-витков. Ток с небольшим значением из первичной цепи проходит через первичный резистор и первичную обмотку.

Датчики тока PRIME. Для преобразования переменного тока используется широкий динамический диапазон. Прибор отличается хорошей линейностью, незначительными температурными потерями и отсутствием магнитного насыщения. Преимуществом конструкции являются небольшие габариты и вес, высокая устойчивость к различным видам перегрузок. Точность показаний не зависит от того как в отверстии расположен кабель и не подвержена влиянию внешних полей. В этом датчике используется не традиционная разомкнутая катушка, а измерительная головка с сенсорными печатными платами. Каждая плата состоит из двух раздельных катушек с воздушными сердечниками. Все они смонтированы на единую базовую печатную плату. Из сенсорных плат формируются два концентрических контура, на выходах которых суммируется наведенное напряжение. В результате, получается информация о параметрах амплитуды и фазы измеряемого тока.

Датчики тока (тип IT). Характеризуются высокой точностью показаний, широким частотным диапазоном, низким шумом выходного сигнала, высокой стабильностью температуры и низким перекрестным искажением. В конструкции этих датчиков отсутствуют элементы Холла. Первичный ток создает магнитное поле, которое в дальнейшем компенсируется вторичным током. На выходе вторичный ток представляет собой пропорциональную копию первичного тока.

5Подключение датчика тока и напряжения INA219 к Arduino

Для начала пойдём простым путём: скачаем готовую библиотеку, загрузим в Arduino и посмотрим на результат. Существует несколько библиотек для работы с нашим датчиком. Предлагаю воспользоваться вот этой популярной библиотекой для INA219 от Adafruit. Скачаем её, установим стандартным образом и загрузим в Arduino скетч из примеров getcurrent.

Если скетч не компилируется, а в сообщениях об ошибках присутствуют какие-то недостающие компоненты (например, Adafruit_I2CDevice.h или Adafruit_BusIO_Register.h, то необходимо доустановить их. Проще всего это сделать так. Для этого способа требуется подключение к интернету на компьютере, где запущена среда разработки. Открыть в среде Arduino IDE менеджер библиотек: в меню Tools Manage Libraries…. Откроется окно Library Manager. В поле поиска следует ввести adafruit busio. Когда библиотека будет обнаружена и покажется в списке, нажать кнопку Install.

Важно  Электронные компоненты в шаре из эпоксидки

Установка недостающих библиотек через менеджер библиотек Arduino IDE

Подключим модуль GY-219 к Arduino по следующей схеме. SDA и SCL датчика можно подключить как к аналоговым входам A4 и A5 Arduino, так и к специально выделенным портам SDA и SCL (если они есть на вашей плате).

Схема подключения датчика INA219 к Arduino

В качестве нагрузки может быть любой источник, например, электромотор, лампа или просто мощный резистор. У меня это 5 соединённых параллельно 5-ваттных 16-омных резисторов. В качестве источника питания также может выступать любой из имеющихся у вас источников. Я буду использовать лабораторный источник питания.

Датчик INA219 подключён к Arduino

В результате выполнения скетча получится следующий вывод:

Результат работы скетча «GetCurrent» для датчика тока INA219

Отлично! Всё работает! Как говорится, бери – и пользуйся.

Данная библиотека позволяет также проводить калибровку датчика INA219 при необходимости. Подробности – в описании библиотеки и в самих исходниках (в файле Adafruit_INA219.cpp библиотеки даётся большое число пояснений).

Classes

Callback for standard oncomplete

Callback for returning a single value

Ina219 is the main class exported from the Node module

Called to initilize the INA219 board, you should calibrate it after this.

Kind: instance method of

Param Type Description
address Address you want to use. Defaults to INA219_ADDRESS
device Device to connect to. Defaults to «/dev/i2c-1»

Enabled debug logging to console.log

Kind: instance method of

Param Type Description
enable True to enable, False to disable

Reads a 16 bit value over I2C

Kind: instance method of

Param Type Description
register Register to read from (One of INA219_REG_*)
value Value to be written
callback Callback to be invoked when complete

Reads a 16 bit value over I2C

Kind: instance method of

Param Type Description
register Register to read from (One of INA219_REG_*)
callback Callback to be invoked when complete

Configures to INA219 to be able to measure up to 32V and 1A of current.
Each unit of current corresponds to 40uA, and each unit of power corresponds
to 800mW. Counter overflow occurs at 1.3A.
Note: These calculations assume a 0.1 ohm resistor is present

Kind: instance method of

Param Type Description
callback Callback to be invoked when complete

Logs a string to the console if logging enabled

Kind: instance method of

Param Type Description
s String to log

Reads the raw bus voltage

Kind: instance method of

Param Type Description
callback Callback to be invoked when complete.

Reads the raw shunt voltage

Kind: instance method of

Param Type Description
callback Callback to be invoked when complete.

Reads the raw current value

Kind: instance method of

Param Type Description
callback Callback to be invoked when complete.

Gets the bus voltage in volts

Kind: instance method of

Param Type Description
callback Callback to be invoked when complete.

Gets the shunt voltage in mV (so +-327mV)

Kind: instance method of

Param Type Description
callback Callback to be invoked when complete.

Gets the current value in mA, taking into account the config settings and current LSB

Kind: instance method of

Param Type Description
callback Callback to be invoked when complete.

Настройка INA219

Датчик INA219 готов к использованию без выполнения каких-либо настроек. По умолчанию он сконфигурирован на непрерывное измерение, диапазон напряжений 0…26 В, ток до 3.2 А и разрешение АЦП 12 бит. Если нам не нужны такие широкие диапазоны измерений и разрешение, то мы можем их изменить. И в функции setup рассматриваемого скетча уже показано, как это сделать. Нужно лишь раскомментировать соответствующие функции и подставить в них интересующие параметры. Рассмотрим их.

setADCMode – настройка разрешения АЦП и усреднение результата

АЦП INA219 имеет разрешение 12 бит и по умолчанию при каждом измерении делает единственную выборку. Функция setADCMode позволяет изменить разрядность (возможны варианты: 9, 10, 11 и 12 бит) и количество выборок (1, 2, 4, 8, 16, 32, 64, 128). Оба параметра влияют на время измерения. В скетче приведены все возможные значения, с которыми может быть вызвана данная функция, а так же соответствующие им длительности измерений. Например, чтобы настроить датчик на выполнение 128 выборок, необходимо раскомментировать строку:

setMeasureMode – выбор режима работы

Данная функция задаёт режим работы датчика:

  • POWER_DOWN – переход в режим энергосбережения.
  • TRIGGERED – измерение по запросу.
  • ADC_OFF – отключение АЦП. Приостанавливает все измерения.
  • CONTINUOUS – непрерывное измерение (по умолчанию)

setPGain – выбор верхней границы по току

Функция setPGain позволяет установить диапазон измеряемых напряжений на шунте и как следствие максимальный измеряемый ток.

setBusRange – выбор верхней границы по напряжению

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

Воспользуемся этими функциями, чтобы настроить INA219 на выполнение 128 выборок, измерение тока до 400 мА и напряжения до 16 В. Изменённый скетч и результаты измерений приведены ниже.

Теперь датчик выдаёт стабильные значения. Их легко проверить, добавив в цепь точный мультиметр, что я и сделал. Результаты измерений практически совпадают.

Таким образом, CJMCU-219 – весьма точный и простой в использовании датчик, которому можно найти немало применений. 

Подключение CJMCU-219 к Ардуино

В качестве примера рассмотрим схему подключения CJMCU-219 к Ардуино Nano.

Выводы SCL и SDA датчика CJMCU-219 подсоединяем к соответствующим выводам Ардуино. При использовании платы Nano (а также Uno, Pro Mini и других плат на базе микроконтроллера ATmega328P) это пины A5 и A4 соответственно. Питание для датчика берём с выводов Ардуино 5V и GND. Выводы Vin+ и Vin- датчика включаем в разрыв исследуемой цепи, причем Vin+ подключается к «плюсу» питания. Нагрузка, в данном случае электромотор, подключена к отдельному источнику питания, поэтому его «минус» обязательно должен быть соединён с выводом GND Ардуино.

Как уже было отмечено, для работы с INA219 существуют готовые библиотеки. Они избавляют от необходимости работать напрямую с регистрами микросхемы, облегчают операции калибровки, выбора режима работы, чтения результатов измерений. Поэтому следующим этапом будет добавление одной из таких библиотек в среду разработки Ардуино.

Скачать программу TINA9-TI

И так, рисуем нужную нам схему в программе, скрин ниже.

Из схемы видно, что напряжение питания микросхемы равно 12 вольтам, такое напряжение рекомендовано в технической спецификации. Ток будем измерять и мониторить в положительной шине +28 вольт. R1 является шунтом, т.е. датчиком измеряемого тока, и имеет сопротивление 0.01Ом. Падение напряжения, соответствующее проходящему току, мы и будем преобразовывать с помощью микросхемы INA193. Для микросхемы данного типа коэффициент передачи фиксированный и равен 20. Источник питания с напряжением 28 вольт нагружен на генератор тока до 20 ампер. После анализа схемы программа выводит окно DC-result с графиком. По оси Х отложен ток, проходящий через шунт, по осиY – напряжение на входе и выходе микросхемы. Линия напряжения на выходе U2 имеет зеленый цвет, а линия дифференциального напряжения на входе МС имеет коричневый цвет. В графике можно активировать ползунок «а», передвигая его по оси Х, мы можем наблюдать за данными графика в точке пересечения красной линии – Y ползунка и графиком входного дифференциального напряжения. Данные отображаются в маленьком окошке справа, вверху. На скрине ниже я увеличил масштаб графика.

Важно  Декоративная садовая ветряная мельница своими руками

Из графика видно, что при напряжении менее 20мВ, линейность преобразования ток – напряжение ухудшается. В нашем случае напряжение 20мВ будет падать на шунте при токе I равном 2 ампера, I = 0,02B/0,01Om = 2A. Это наглядно показывает и график. Таким образом, показания нашего амперметра будут корректны в диапазоне токов от 2 до 20 ампер. И отсюда напрашивается еще один вывод – величина корректных показаний минимального тока зависит от величины сопротивления шунта. Введем в программу величину сопротивления шунта равной 0,05ОМ. Запустим анализ схемы и получим результат на скриншоте 2. Смотрим данные в обведенном красным цветом окошечке. Ровно 20мВ выставить не получается, будем исходить из начала линейного участка характеристики при напряжении на входе микросхемы = 19,85мВ. При этом ток будет равен 0,397А. Но в этом случае нам, вернее микросхеме не хватает напряжения питания. При измеряемом токе более 12А микросхема уходит в режим отсечки.

Теперь посмотрим, какая тепловая, не нужная нам мощность выделится на шунте. P = I² x R = 144 x 0,05 = 7,2Вт!!! И при этом при токе в 12А мы не досчитаемся на выходе U = I x R = 12 x 0,05 = 0,6 В.

Еще один вывод – при использовании данной микросхемы нужно искать компромисс между необходимыми вам параметрами. Давайте смоделируем амперметр на 6А при напряжении питания микросхемы 5 вольт, это напряжение питания АЦП и сопротивлении датчика тока = 0,033Ом. Почему 0,033? Точно могу сказать, а хрен его знает. Так, посмотрим результат – скриншот 3

Линейность показаний амперметра от ≈0,6А до 6А. Мощность шунта = 6×6х0,033 = 1,188Вт – приемлемо. Падение напряжения на шунте при токе 6А – 6 х 0,033 = 0,198В. В принципе сопротивление шунта можно еще чуть-чуть увеличить.

Для меня, как радиолюбителя, эта микросхема с такими характеристиками вполне подходит. Для зарядных устройств, так вообще она прекрасна. Так, наверное, не успокоюсь. Нужен БП для питания микросхем, допустим, U = 15B, I = 2A, смотрим. Что получилось.

И так, амперметр начнет подвирать при токе меньше 0,2А. Мощность шунта – 0,4 Вт. При токе в 2А лишимся на выходе 200 мВ. Все, решать вам, применять эту микросхему или нет. Успехов. К.В.Ю.

Система установки 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.

Параметры

Parameters / Models INA219AID INA219AIDCNR INA219AIDCNT INA219AIDCNTG4 INA219AIDR INA219BID INA219BIDCNR INA219BIDCNT INA219BIDR
Полоса частот, kHz 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5
CMRR(Min), дБ 120 120 120 120 120 120 120 120 120
Common Mode Voltage(Max), В 26 26 26 26 26 26 26 26 26
Digital Interface I2C I2C I2C I2C I2C I2C I2C I2C I2C
Основные особенности Bi-directional,I2C,Programmable Gain Bi-directional,I2C,Programmable Gain Bi-directional,I2C,Programmable Gain Bi-directional,I2C,Programmable Gain Bi-directional,I2C,Programmable Gain Bi-directional,I2C,Programmable Gain Bi-directional,I2C,Programmable Gain Bi-directional,I2C,Programmable Gain Bi-directional,I2C,Programmable Gain
Gain, V/V 1,0.5,0.25,0.125 1,0.5,0.25,0.125 1,0.5,0.25,0.125 1,0.5,0.25,0.125 1,0.5,0.25,0.125 1,0.5,0.25,0.125 1,0.5,0.25,0.125 1,0.5,0.25,0.125 1,0.5,0.25,0.125
Gain Error, % 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5
Gain Error Drift(Max), ppm/В°C 83 83 83 83 83 83 83 83 83
Input Offset (+/-)(Max), uV 50 50 50 50 50 50 50 50 50
Input Offset Drift (+/-)(Max), uV/C 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
Input Offset Drift (+/-)(Typ), uV/C 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
Iq(Max), мА 1 1 1 1 1 1 1 1 1
Рабочий диапазон температур, C от -40 до 125,до от -40 до 125,до от -40 до 125,до от -40 до 125,до от -40 до 125,до от -40 до 125,до от -40 до 125,до от -40 до 125,до от -40 до 125,до
Package Group SOIC SOT-23 SOT-23 SOT-23 SOIC SOIC SOT-23 SOT-23 SOIC
Package Size: mm2:W x L, PKG 8SOIC: 29 mm2: 6 x 4.9(SOIC) 8SOT-23: 8 mm2: 2.8 x 2.9(SOT-23) 8SOT-23: 8 mm2: 2.8 x 2.9(SOT-23) 8SOT-23: 8 mm2: 2.8 x 2.9(SOT-23) 8SOIC: 29 mm2: 6 x 4.9(SOIC) 8SOIC: 29 mm2: 6 x 4.9(SOIC) 8SOT-23: 8 mm2: 2.8 x 2.9(SOT-23) 8SOT-23: 8 mm2: 2.8 x 2.9(SOT-23) 8SOIC: 29 mm2: 6 x 4.9(SOIC)
Rating Catalog Catalog Catalog Catalog Catalog Catalog Catalog Catalog Catalog
Supply Voltage(Max), В 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5
Supply Voltage(Min), В 3 3 3 3 3 3 3 3 3

Datasheets

ProductFolder Sample &Buy Support &Community Tools &Software TechnicalDocuments INA219SBOS448G – AUGUST 2008 – REVISED DECEMBER 2015 INA219 ZerГё-Drift, Bidirectional Current/Power Monitor With I2C Interface1 Features 3 Description The INA219 is a current shunt and power monitorwith an I2C-or SMBUS-compatible interface. Thedevice monitors both shunt voltage drop and bussupply voltage, with programmable conversion timesand filtering. A programmable calibration value,combined with an internal multiplier, enables directreadouts of current in amperes. An additionalmultiplying register calculates power in watts. TheI2C-or SMBUS-compatible interface features 16programmable addresses. 1 Senses Bus Voltages from 0 to 26 VReports Current, Voltage, and Power16 Programmable AddressesHigh Accuracy: 0.5% (Maximum) OverTemperature (INA219B)Filtering OptionsCalibration Registers …

Оцените статью
Понравилась статья?
Комментарии (0)
Комментариев нет, будьте первым кто его оставит
Добавить комментарий
Ваш e-mail не будет опубликован. Обязательные поля помечены *