Датчик тока INA219

датчик тока и напряжения INA219

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

INA219 подключается к ардуино по интерфейсу I2C. Для того, чтобы считать данные, необходимо знать адрес датчика. Сам адрес задается с помощью запайки на плате перемычек A0 и A1

Датчик тока INA219

Установка адреса INA219

В зависимости от положения перемычек на А0 и А1, мы можем назначить модулю один из 4 адресов:

  • 0x40 (соединения А0 и А1 выпаяны);
  • 0x41 (соединение A0 запаяна);
  • 0x44 (соединение A1 запаяна);
  • 0x45 (соединения A0 и A1 запаяны).

Характеристики датчика тока INA219

  • Напряжение питания: 3 — 5 В
  • Максимальное измеряемое напряжение: 26 В
  • Максимальная измеряемая сила тока: 3.2 А
  • Рабочая температура: -40 … 85° C
  • Погрешность измерения в нормальных условиях: 100 мкВ
  • Разрешение АЦП: 12 бит
  • Интерфейс связи: I2C
  • Скорость обмена по интерфейсу: 3.4 МГц
  • Фильтрация: х128 отсчетов

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

Контакты SCL и SDA подключаются к соответствующим контактам на плате ардуино. К контактам VIN+ , VIN- подключаем плюс и минус соответственно к измеряемой цепи.

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

Пример программы модуля тока INA219

Датчик тока INA219 управляется библиотекой Adafruit_BusIO. Ниже приведен полный код для работы с модулем датчика тока.

#include <Adafruit_INA219.h>    // Подключаем библиотеку Adafruit_INA219 
 
Adafruit_INA219 ina219;         // Создаем объект ina219
 
void setup(void) 
{
  Serial.begin(115200);         // Инициализируем последовательную связь на скорости 115200
  uint32_t currentFrequency;    // Создаем переменную
    
// По умолчанию при инициализации будет использоваться самый большой диапазон (32 В, 2 А)
// Проверка инициализации модуля INA219
 
  if (! ina219.begin()) {       
    Serial.println("Failed to find INA219 chip");  
    while (1) { delay(10); }
  }
 
// Чтобы использовать немного более низкий диапазон 32 В, 1 А (более высокая точность на усилителях):
// ina219.setCalibration_32V_1A ();
// Или использовать более низкий диапазон 16 В, 400 мА (более высокая точность на вольт и ампер):
// ina219.setCalibration_16V_400mA ();
   
  Serial.println("Measuring voltage and current with INA219 ..."); // Отправка сообщение
}
 
void loop(void) 
{
  float shuntvoltage = 0;     // Создаем переменную shuntvoltage 
  float busvoltage = 0;       // Создаем переменную busvoltage 
  float current_mA = 0;       // Создаем переменную current_mA 
  float loadvoltage = 0;      // Создаем переменную loadvoltage
  float power_mW = 0;         // Создаем переменную power_mW 
 
  shuntvoltage = ina219.getShuntVoltage_mV();       // Получение напряжение на шунте 
  busvoltage = ina219.getBusVoltage_V();            // Получение значение напряжения V
  current_mA = ina219.getCurrent_mA();              // Получение значение тока в мА
  power_mW = ina219.getPower_mW();                  // Получение значение мощности
  loadvoltage = busvoltage + (shuntvoltage / 1000); // Расчет напряжение на нагрузки
  
  // Поочередно отправляем полученные значение в последовательный порт.
  Serial.print("Bus Voltage:   "); Serial.print(busvoltage); Serial.println(" V");
  Serial.print("Shunt Voltage: "); Serial.print(shuntvoltage); Serial.println(" mV");
  Serial.print("Load Voltage:  "); Serial.print(loadvoltage); Serial.println(" V");
  Serial.print("Current:       "); Serial.print(current_mA); Serial.println(" mA");
  Serial.print("Power:         "); Serial.print(power_mW); Serial.println(" mW");
  Serial.println("");
 
  delay(2000);   // Пауза
}

Документация

Где купить

  • Датчик тока INA219
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии