Рубрики
Схемы на Arduino

Подключение датчика постоянного тока INA219 к Arduino

В этом уроке мы научимся подключать модуль датчика постоянного тока INA219 к плате Arduino. Используя датчик постоянного тока INA219, мы можем измерять ток, напряжение и мощность. Он может измерять напряжение до +26 В и ток до 3,2 А. Если вам нужно измерять более высокий ток (до 50 А), вы можете использовать модуль INA226.

INA219 — это модуль шунтового датчика тока, представленный компанией Texas Instruments. Это модуль с нулевым дрейфом, двунаправленный, с монитором мощности, который контролирует напряжение шунта, напряжение шины, ток и мощность. Для связи с микроконтроллерами он использует интегрированный интерфейс, совместимый как с I2C, так и с SMBus.

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

Если вам нужны более расширенные возможности измерения постоянного тока, то присмотритесь к «старшему брату» INA219 — датчику INA226.

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. Датчик тока INA219 (купить на AliExpress).
  3. Светодиод 5 мм (купить на AliExpress).
  4. Резистор 330 Ом.
  5. Макетная плата.
  6. Соединительные провода.

Реклама: ООО «АЛИБАБА.КОМ (РУ)» ИНН: 7703380158

Модуль датчика постоянного тока INA219

INA219 — это шунт тока и ИС (интегральная схема) монитора мощности, разработанная Texas Instruments. Она работает на интерфейсе, совместимом с I2C или SMBus, что облегчает связь с микроконтроллерами. Ключевыми особенностями этой ИС являются ее способность измерять как падение напряжения шунта, так и напряжение питания шины, а также ее архитектура с нулевым дрейфом, что обеспечивает точные и последовательные измерения.

Более подробную информацию об этой ИС можно посмотреть в техническом паспорте INA219.

Принципиальная схема INA219

Модуль INA219 состоит из микросхемы INA219, нескольких резисторов и конденсатора, который помогает уменьшить шум или нежелательные электрические сигналы.

Особенности и характеристики INA219

  1. Рабочее напряжение (3–5,5 В): INA219 работает в диапазоне от 3 до 5,5 В, что повышает его совместимость с различными системами, работающими на логическом уровне 3,3 В или 5 В. Эта функция повышает гибкость модуля в различных схемах.
  2. Диапазон напряжения шины (0–26 В): INA219 может контролировать источники питания в диапазоне от 0 до 26 В. Этот широкий диапазон делает модуль применимым к низковольтным логическим схемам и высоковольтным источникам питания.
  3. Диапазон измерения тока (±3,2 А с разрешением ±0,8 мА): INA219 может контролировать диапазон тока ±3,2 А с точным разрешением ±0,8 мА. Эта способность делает его пригодным для различных приложений, включая управление питанием, зарядные устройства для аккумуляторов и управление двигателями постоянного тока, что позволяет точно отслеживать и контролировать потребление энергии.
  4. 0,1 Ом 1% 2 Вт токовый измерительный резистор: модуль использует шунтирующий резистор 0,1 Ом с допуском 1% и номинальной мощностью 2 Вт для измерения тока. Низкое значение сопротивления минимизирует потери мощности, а допуск 1% обеспечивает точность измерения. Номинальная мощность 2 Вт указывает на его надежность, поддерживая измерения тока до ±3,2 А.

Распиновка INA219

Модуль датчика INA219 обычно имеет следующие контакты:

  1. VCC: этот контакт используется для подачи рабочего напряжения на модуль INA219. Он может обрабатывать входное напряжение от 3,3 В до 5,5 В.
  2. GND: это контакт общего провода (земли).
  3. SCL: этот контакт используется для линии синхронизации интерфейса I2C.
  4. SDA: этот контакт используется для линии данных интерфейса I2C.
  5. Vin-: этот контакт подключается к отрицательной клемме источника напряжения, которое вы хотите измерить. Также он является местом расположения шунтирующего резистора и используется для измерения тока.
  6. Vin+: этот вывод подключается к положительному выводу источника напряжения, которое вы хотите измерить.

I2C-адрес модуля INA219

INA219 использует протокол I2C для связи с микроконтроллерами, и каждое устройство на шине I2C должно иметь уникальный адрес. Адрес I2C по умолчанию для INA219 — 0x40 (или 1000000 в двоичном формате).

Адрес можно изменить, если вы хотите использовать несколько датчиков INA219 на одной шине I2C. INA219 допускает до 16 различных адресов I2C в диапазоне от 0x40 до 0x4F. Это достигается путем настройки состояний двух адресных контактов A0 и A1. На модуле INA219 эти два контакта, A0 и A1, часто находятся с контактными площадками для пайки или перемычками. По умолчанию они подключены к земле (GND), что соответствует адресу по умолчанию 0x40.

A1 A0 Slave Address (Hex) (адрес ведомого)
GND GND 0x40
GND 0x41
GND SDA 0x42
GND SCL 0x43
GND 0x44
0x45
SDA 0x46
SCL 0x47
SDA GND 0x48
SDA 0x49
SDA SDA 0x4A
SDA SCL 0x4B
SCL GND 0x4C
SCL 0x4D
SCL SDA 0x4E
SCL SCL 0x4F

Вы можете изменить адрес I2C, изменив соединения этих выводов на GND, SDA, SCL или оставив их плавающими (неподключенными). Например, если вы подключите вывод A0 к SDA, а A1 к GND, адрес будет 0x48.

Итак, если вы хотите иметь несколько модулей INA219 в одной системе, вам просто нужно задать уникальный адрес для каждого из них, настроив соответствующим образом контакты A0 и A1. Помните, что всякий раз, когда вы меняете адрес I2C, вы должны обновить адрес в программном обеспечении вашего микроконтроллера, чтобы он знал, где найти каждый INA219 на шине I2C.

Расчеты адресов и значений регистра

INA219 имеет набор внутренних регистров, которые содержат данные измерений и настройки управления. К ним можно получить доступ через интерфейс I2C для настройки чипа, запуска измерений и считывания результатов измерений.

1. Регистр конфигурации (адрес = 00h): этот регистр используется для управления различными аспектами INA219, такими как диапазон напряжения шины, усиление PGA, разрешение/усреднение АЦП, режим работы и т. д. Его можно читать или записывать для настройки INA219 по мере необходимости.

2. Регистр напряжения шунта (адрес = 01h): этот регистр содержит необработанный результат измерения напряжения шунта. Его можно прочитать, чтобы получить измерение напряжения шунта, а значение должно быть обработано в соответствии с руководством в техническом описании, чтобы получить фактическое напряжение в вольтах.

Напряжение шунта (в вольтах) рассчитывается путем взятия необработанного показания из регистра напряжения шунта и умножения его на 10 мкВ. Формула:

Напряжение шунта (В) = Значение регистра напряжения шунта * 10 мкВ
3. Регистр напряжения шины (адрес = 02h): Этот регистр содержит необработанный результат измерения напряжения шины. Его можно прочитать для получения измерения напряжения шины, а значение должно быть обработано в соответствии с руководством в техническом описании для получения фактического напряжения в вольтах.

Напряжение шины (в вольтах) рассчитывается путем взятия необработанного показания из регистра напряжения шины и умножения его на 4 мВ. Формула:

Напряжение шины (В) = Значение регистра напряжения шины * 4 мВ
4. Регистр мощности (адрес = 03h): Этот регистр содержит расчетное значение мощности. Его можно прочитать для получения измерения мощности, а значение должно быть обработано в соответствии с руководством в техническом описании для получения фактической мощности в ваттах.

Мощность (в ваттах) рассчитывается путем взятия необработанного показания из регистра мощности и умножения его на значение Power_LSB (определяется при установке регистра калибровки). Формула следующая:

Мощность (Вт) = Значение регистра мощности * Power_LSB
5. Текущий регистр (адрес = 04h): Этот регистр содержит вычисленное значение тока. Его можно прочитать для получения измерения тока, а значение должно быть обработано в соответствии с руководством в техническом описании для получения фактического тока в амперах.

Ток (в амперах) рассчитывается путем взятия необработанного показания из регистра тока и умножения его на значение Current_LSB (определяется при установке регистра калибровки). Формула следующая:

Ток (A) = Текущее значение регистра * Текущий_LSB
6. Регистр калибровки (адрес = 05h): Этот регистр используется для установки значения калибровки для расчетов тока и мощности. Его можно читать или записывать для установки правильного значения калибровки.

Взаимодействие модуля датчика постоянного тока INA219 с Arduino

Теперь давайте подключим модуль датчика постоянного тока INA219 к Arduino. Аппаратное взаимодействие очень простое.

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

Ниже представлена ​​простая схема подключения, которую можно использовать для сопряжения датчика INA219 с Arduino, а также внешней нагрузкой и источником питания.

Подключите выводы VCC, GND, SCL и SDA INA219 к 5V, GND, A5 и A4 Arduino соответственно. Вывод Vin+ должен быть подключен к источнику питания, а Vin- к нагрузке, как показано на рисунке выше.

Схема для тестирования проекта

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

Для тестирования я использовал макетную плату и Arduino Nano.

Исходный код программы

Вот пример кода для сопряжения модуля датчика тока INA219 с Arduino. Для компиляции кода требуется библиотека Adafruit INA219. Поэтому скачайте эту библиотеку и добавьте ее в папку с библиотеками.

Следующие строки задают различные диапазоны для датчика тока INA219.

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

  • ina219.setCalibration_32V_1A();калибрует INA219 для диапазона до 32 В и 1 А. Это уменьшает максимальный диапазон измерения тока, но увеличивает точность измерений тока, делая их более точными.
  • ina219.setCalibration_16V_400mA();калибрует INA219 для диапазона до 16 В и 400 мА. Это еще больше уменьшает диапазон измерения напряжения и тока, но взамен повышает точность измерения как напряжения, так и тока.

Тестирование работы проекта

Это показания, которые мы получили без какой-либо нагрузки.

Затем мы подключили к цепи 1 светодиод в качестве нагрузки.

Последовательный монитор показал следующие показания с 1 светодиодом.

Мы увеличили количество светодиодов до 2.

С увеличением количества светодиодов увеличиваются значения тока, напряжения и мощности.

Затем мы увеличили количество светодиодов до 3.

Это еще больше увеличивает потребление энергии.

Затем мы провели финальное тестирование с 4 светодиодами.

При использовании 4 светодиодов энергопотребление было максимальным.

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

Заключение

В данном проекте продемонстрирована способность модуля датчика постоянного тока INA219, сопряженного с платой Arduino, измерять и контролировать напряжение, ток и мощность. В ходе серии испытаний с использованием светодиодов в качестве нагрузки было установлено, что модуль INA219 может точно отслеживать изменения в энергопотреблении. Было замечено, что по мере увеличения количества светодиодов потребление энергии, а также ток и напряжение также соответственно увеличивались. Эта прямая связь между увеличением нагрузки и значениями напряжения, тока и мощности подтверждает надежность и эффективность модуля INA219 в точном обнаружении и мониторинге изменений этих параметров.

4 ответа к “Подключение датчика постоянного тока INA219 к Arduino”

In file included from C:\Users\OVN\AppData\Local\Temp\.arduinoIDE-unsaved20251119-2700-1d7xuy1.wgp8\sketch_dec19a\sketch_dec19a.ino:2:0:
c:\Users\OVN\Documents\Arduino\libraries\Adafruit_INA219/Adafruit_INA219.h:21:10: fatal error: Adafruit_BusIO_Register.h: No such file or directory
#include
^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1

Compilation error: exit status 1

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *