Подключение датчика INA219 к Arduino: схема, библиотеки и примеры кода

Содержание

Введение

Датчик тока INA219 представляет собой мощный и удобный инструмент для мониторинга тока и напряжения в проектах на Arduino. Этот датчик позволяет считывать данные с высокой точностью благодаря встроенному 12-битному аналого-цифровому преобразователю (АЦП). В статье будет рассмотрено, как подключить INA219 к Arduino, какие библиотеки использовать и как написать код для работы с этим датчиком.

Описание датчика INA219

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

Особенности INA219:

  • Поддержка интерфейса I2C
  • Высокоточный АЦП на 12 бит
  • Диапазон измеряемого напряжения до 26 В
  • Токовый шунт позволяет измерять ток до 3.2 А
  • Возможность прямого подключения к Arduino и другим микроконтроллерам

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

Для подключения INA219 к Arduino потребуется всего несколько соединений, так как он использует интерфейс I2C. Стандартные выводы I2C на Arduino Uno — это A4 (SDA) и A5 (SCL). Подключение выполняется следующим образом:

Таблица 1. Подключение INA219 к разным платам Arduino

INA219ОписаниеArduino NanoArduino UnoArduino Mega
1VIN+Пин для измерения токак месту измерению токак месту измерению токак месту измерению тока
2VIN-Пин для измерения токак месту измерению токак месту измерению токак месту измерению тока
3VCCПин питания5V5V5V
4GNDПин ЗемлиGNDGNDGND
5SCLТактовый ПинA5A520
6SDAИнформационный ПинA4A421

Необходимые библиотеки для Arduino

Adafruit INA219 — это библиотека для Arduino, упрощающая работу с датчиком тока и напряжения INA219. Она позволяет считывать ток, напряжение и мощность через интерфейс I2C. С её помощью можно легко реализовать мониторинг параметров питания в проектах, таких как системы на солнечной энергии или устройства с батарейным питанием.

Библиотека Wire.h для Arduino предоставляет интерфейс для работы по протоколу I2C, позволяя микроконтроллеру общаться с различными I2C-устройствами, такими как датчики, дисплеи и другие модули. С её помощью можно легко передавать и получать данные, обеспечивая стабильное и эффективное взаимодействие с подключёнными компонентами.

Код для Arduino для работы с INA219

Ниже представлен пример кода, который позволяет считывать значения напряжения и тока с датчика INA219. Этот скетч выводит значения тока, напряжения и мощности на монитор порта.
#include <Wire.h> #include <Adafruit_INA219.h> // Создаем объект INA219 Adafruit_INA219 ina219; void setup() { Serial.begin(9600); // Инициализируем INA219 if (!ina219.begin()) { Serial.println("Не удалось найти INA219. Проверьте соединение!"); while (1); } Serial.println("INA219 подключен."); } void loop() { // Получаем напряжение шунта в милливольтах float shuntVoltage = ina219.getShuntVoltage_mV(); // Получаем напряжение на шине float busVoltage = ina219.getBusVoltage_V(); // Рассчитываем ток в миллиамперах float current_mA = ina219.getCurrent_mA(); // Рассчитываем мощность в милливаттах float power_mW = ina219.getPower_mW(); Serial.print("Шунтовое напряжение: "); Serial.print(shuntVoltage); Serial.println(" мВ"); Serial.print("Напряжение на шине: "); Serial.print(busVoltage); Serial.println(" В"); Serial.print("Ток: "); Serial.print(current_mA); Serial.println(" мА"); Serial.print("Мощность: "); Serial.print(power_mW); Serial.println(" мВт"); Serial.println(); delay(1000); }

Объяснение кода:

  1. Вначале подключаем необходимые библиотеки Wire.h и Adafruit_INA219.h.
  2. Создаем объект
    ina219
    , который управляет датчиком.
  3. В
    setup()
    проверяем, инициализировался ли датчик. В случае ошибки выводим сообщение.
  4. В
    loop()
    используем методы
    getShuntVoltage_mV()
    , <
    code>getBusVoltage_V(), <
    code>getCurrent_mA() и <
    code>getPower_mW(), чт
    обы получить шунтовое напряжение, напряжение на шине, ток и мощность соответственно.
  5. Результаты выводятся на последовательный монитор каждую секунду.

Заключение

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

Часто задаваемые вопросы (FAQ)

1. Какова максимальная мощность, которую может измерить INA219?
Максимальная мощность зависит от шунтирующего резистора и напряжения. Обычно датчик способен измерять ток до 3,2 А при использовании стандартного шунта.

2. Можно ли использовать INA219 с другими микроконтроллерами, кроме Arduino?
Да, INA219 совместим с любым микроконтроллером, поддерживающим I2C, включая ESP8266, ESP32, Raspberry Pi и другие.

3. Поддерживает ли библиотека Adafruit INA219 дополнительные функции?
Да, библиотека поддерживает функции измерения напряжения на шине и шунте, а также расчета мощности.

4. Какое разрешение у датчика?
INA219 использует 12-битный АЦП, что обеспечивает высокую точность измерений.

5. Почему данные измерений иногда кажутся некорректными?
Убедитесь в надежности соединений и корректности калибровки шунта. Малые значения тока могут быть менее точными из-за ограничений точности при малом токе.

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