Датчик тока 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 Nano
Arduino Uno
Arduino Mega
1
VIN+
Пин для измерения тока
к месту измерению тока
к месту измерению тока
к месту измерению тока
2
VIN-
Пин для измерения тока
к месту измерению тока
к месту измерению тока
к месту измерению тока
3
VCC
Пин питания
5V
5V
5V
4
GND
Пин Земли
GND
GND
GND
5
SCL
Тактовый Пин
A5
A5
20
6
SDA
Информационный Пин
A4
A4
21
Необходимые библиотеки для 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);
// Инициализируем INA219if (!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);
}
Объяснение кода:
Вначале подключаем необходимые библиотеки Wire.h и Adafruit_INA219.h.
Создаем объект
ina219, который управляет датчиком.
В
setup() проверяем, инициализировался ли датчик. В случае ошибки выводим сообщение.
В
loop()
используем методы
getShuntVoltage_mV(), <
code>getBusVoltage_V(), <
code>getCurrent_mA() и <
code>getPower_mW(), чтобы получить шунтовое напряжение, напряжение на шине, ток и мощность соответственно.
Результаты выводятся на последовательный монитор каждую секунду.
Заключение
Датчик тока и напряжения 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 и эффективно считывать параметры тока и напряжения, необходимые для успешного контроля над оборудованием или источниками питания.