Обзор модуля тока и напряжения INA219 (CJMCU-219)
Сегодня расскажу о модуле INA219 с помощью которого можно одновременно измерить напряжение до 26 В и ток до 3.2 А c высокой точностью.
Сегодня расскажу о модуле INA219 с помощью которого можно одновременно измерить напряжение до 26 В и ток до 3.2 А c высокой точностью. Данный модуль можно использовать в лабораторном блоке питания, измерения мощности и так далее.
Технические параметры
► Напряжение питания: 3 — 5 В
► Максимальное измеряемое напряжение: 26 В
► Максимальная измеряемая сила тока: 3.2 А
► Рабочая температура: -40 … 85° C
► Дрейф в рабочем температурном диапазоне: 100 мкВ
► Разрешение измерителя: 12 бит
► Интерфейс: I2C
► Скорость интерфейса: 3.4 МГц
► Фильтрация: х128 отсчетов
Обзор модуля модуле INA219
Модуль основан на микросхеме INA219, которая собрана в корпусе SOT23. Измерение тока осуществляется с помощью резистора (шунта)на 0.1 Ом с точностью 1% (выводы Vin+ и Vin-), по сути микросхема измеряет падение напряжение на шунте, а потом по закону ома рассчитывает ток (I) = напряжение (V) / сопротивление (R).
Максимальное падение напряжения, которое может измерить INA219, составляет 320 мВ или 0,32 В. Следовательно, максимальный ток, который INA219 может измерить с резистором по умолчанию, составляет 0,32 В / 0,1 Ом = 3,2 А. Если вам необходимо измерить более 3,2 А можно заменить шунт 0,0,5 Ом на более низкое значение. Шунт 0,01 Ом позволит проводить измерения тока 6.4 А.
Назначение контактов:
► VCC — вывод питания микросхемы INA219, 3 — 5 В;
► GND — заземляющий вывод питания микросхемы INA219, 3 — 5 В;
► SCL — вывод I2C, подключается к линии I2C микроконтроллера, рабочие напряжение 3 В или 5 В.
► SDA — вывод данных I2C подключается к линии I2C микроконтроллера, рабочие напряжение 3 В или 5 В.
► Vin+ —
► Vin- —
Смена адреса I2C:
Адрес по умолчанию адрес модуля установлен 0×40, который легко можно изменить с помощью перемычки в правом углу, для этого соедините перемычку припоем, чтобы указать двоичное число «1».
Принципиальная схема модуля INA219 показана на рисунке ниже.
Подключение INA219 к Arduino
Необходимые детали:
► Arduino UNO x 1 шт.
► Модуля тока и напряжения INA219 x 1 шт.
► Провода DuPont M-F, 20 см x 1 шт.
► Аккумулятор LiitoKala HG2, 18650, 3000 mAh x 1 шт.
► Коллекторный двигатель x 2 шт.
Описание:
В этом примере покажу как подключить модуля INA219 к Arduino. В качестве нагрузки будем использовать обычный коллекторный двигатель, который подключим к литий-ионному аккумулятору.
Подключение.
Сначала подключить питание, выводы +5 В и GND (Arduino) подключаем к выводам Vcc и GND (INA219), далее подключаем интерфейс I2C, выводы A4 и A5 (Arduino) подключаем к выводам SDA и SCL (INA219). Теперь осталось подключить нагрузку, вывод Vin+ (INA219) подключаем к плюсу аккумулятору, вывод Vin- (INA219) подключаем к одному из выводом мотора. Второй вывод мотора подключаем к GND arduino и аккумулятора.
Установка библиотеки:
Для работы скетча необходимо две библиотеки «Adafruit INA219» и «Adafruit BusIO Register«, необходимо дополнительно скачать с «Менеджера библиотек«.
В строке поиска вводим «INA219» находим библиотеку «Adafruit INA219» и устанавливаем ее.
Далее, в строке поиска вводим «Adafruit BusIO» находим библиотеку «Adafruit BusIO Register и устанавливаем ее.
Программа:
Теперь можно приступить к скетчу, скачиваем или копируем его в среду разработки Arduino IDE.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
#include <Wire.h> // Подключаем библиотеку Wire #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.
Ссылки
Библиотека Adafruit INA219
Библиотека Adafruit BusIO Register
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Мотор-колесо, диаметр 66 мм
Модуля тока и напряжения INA219 (CJMCU-219)