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


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

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

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

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

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

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

Основные компоненты модуля датчика постоянного тока 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 обычно имеет следующие контакты:

Распиновка 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 для настройки чипа, запуска измерений и считывания результатов измерений.

Адреса и функции регистров INA219

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, а также внешней нагрузкой и источником питания.

Схема подключения модуля датчика постоянного тока 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 в точном обнаружении и мониторинге изменений этих параметров.

(Проголосуй первым!)
Загрузка...
54 просмотров

Комментарии

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

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

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