31 год мы работаем для разработчиков, изготовителей и ремонтников электроники
Практические занятия робототехника. Конструктор ROBOT BIN CLASSIC

Методы оплаты Методы оплаты
Покупайте товар со скидкой, выбирая эти формы оплаты!
Прайс-листы DESSY.RU для скачивания
Партнерская программа
Наши акции
 
Архив новостей Архив новостей
Новости Новости!


Распечатать

Датчик напряжения и тока CJMCU-219 с I2C интерфейсом на чипе SMD INA219

Код товара: CTTL16905
Есть в наличии Есть в наличии
Датчик напряжения и тока CJMCU-219 с I2C интерфейсом на чипе SMD INA219
160 c
160 c
В корзину
Работаем без НДС
В корзину
Работаем без НДС
Датчик напряжения и тока CJMCU-219 с I2C интерфейсом на чипе SMD INA219

Датчик напряжения и тока CJMCU-219 с I2C интерфейсом на чипе SMD INA219  Датчик напряжения и тока CJMCU-219 с I2C интерфейсом на чипе SMD INA219  Датчик напряжения и тока CJMCU-219 с I2C интерфейсом на чипе SMD INA219 
Датчик напряжения и тока CJMCU-219 с I2C интерфейсом на чипе SMD INA219


Размеры: 24,5*21,5*5 мм
Вес: 3,2 г. 

INA219 – это датчик напряжения, тока и мощности производства Texas Instruments. Данная микросхема позволяет с высокой точностью измерять напряжение в диапазоне 0..26 вольт и силу тока. Подключение к микроконтроллеру осуществляется по протоколу I2C. Для работы микросхемы требуется небольшая обвязка, главный компонент которой – это шунтирующий резистор. Поэтому в использовании наиболее удобны модули, построенные на базе данной микросхемы, такие, как модуль CJMCU-219.

Модуль CJMCU-219, кроме самой микросхемы INA219, содержит все необходимые компоненты обвязки: шунтирующий резистор 0.1 Ом мощностью 2 Вт, подтягивающие резисторы для линий I2C и блокировочную ёмкость. Также на плате модуля имеются перемычки, позволяющие изменить I2C адрес INA219, что может быть полезно при использовании нескольких модулей. CJMCU-219 легко подключается к Ардуино, Raspberry Pi и другим платам, а готовые библиотеки облегчают работу с ним. Всё это в совокупности с высокой точностью измерений и низким энергопотреблением делают датчик INA219 отличным выбором для систем мониторинга питания.

Характеристики CJMCU-219

  • Напряжение питания: от 3 до 5.5 В;
  • Потребляемый ток: не более 1 мА;
  • Диапазон измеряемых напряжений: от 0 до 26 В;
  • Максимальная измеряемая сила тока: 3.2 А;
  • Разрядность АЦП: 12 бит;
  • Погрешность измерений: не более 1 %;
  • Рабочая температура: от -25 до 85 °C;
  • Протокол: I2C. Режимы Fast-mode (400 кбит/с) и High-speed (3,4 Мбит/с);
  • Фильтрация: до 128 выборок для усреднения результата;
  • С остальными параметрами вы можете ознакомиться в даташите INA219

    Схема модуля и принцип работы

    Схема модуля INA219

    INA219 вычисляет силу тока, измеряя падение напряжения на шунте известного номинала. Для этого используется 12-разрядный АЦП,  диапазон измеряемых им напряжений составляет ±40 мВ. Этот диапазон может быть увеличен путём деления напряжения на 2, 4 и 8, что позволит измерять напряжение на шунте в диапазонах ±80, ±160 и ±320 мВ соответственно. По умолчанию микросхема INA219 сконфигурирована на измерение напряжения на шунте в диапазоне ±320 мВ. Отсюда верхний предел измеряемого тока – 3.2 А. При необходимости этот предел может быть увеличен путём замены шунта на другой, меньшего номинала.

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

    Напряжение основной цепи датчик измеряет между выводами Vin+ и GND. Подобно тому, как можно расширить диапазон измеряемых напряжений на шунте, используя делитель, можно выбрать диапазон и для основной цепи. Здесь доступны 2 диапазона: 16 и 32 В. Тем не менее, максимальное измеряемое напряжение не должно превышать 26 В.

    На основании полученных значений тока и напряжения вычисляется потребляемая мощность. Все измерения и расчеты датчик выполняет автоматически.

    INA219 позволяет изменять свой I2C адрес путём соединения адресных выводов A0 и A1 с другими выводами. Все возможные их комбинации и адреса приведены в даташите, всего их 16. Для модулей CJMCU-219 в большей степени актуальны 4 из них:

    Адрес Перемычка A1 Перемычка A0
    0x40 0 0
    0x41 0 1
    0x44 1 0
    0x45 1 1

     

    По умолчанию перемычки в модулях CJMCU-219 не запаяны и I2C, выводы A0 и A1 подтянуты к «земле» и адрес датчика 0x40.

    Подключение CJMCU-219 к Ардуино

    В качестве примера рассмотрим схему подключения CJMCU-219 к Ардуино Nano.

    Подключение модуля INA219 к АрдуиноПодключение модуля INA219 к Ардуино

    Выводы SCL и SDA датчика CJMCU-219 подсоединяем к соответствующим выводам Ардуино. При использовании платы Nano (а также Uno, Pro Mini и других плат на базе микроконтроллера ATmega328P) это пины A5 и A4 соответственно. Питание для датчика берём с выводов Ардуино 5V и GND. Выводы Vin+ и Vin- датчика включаем в разрыв исследуемой цепи, причем Vin+ подключается к «плюсу» питания. Нагрузка, в данном случае электромотор, подключена к отдельному источнику питания, поэтому его «минус» обязательно должен быть соединён с выводом GND Ардуино.

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

    Установка библиотеки для CJMCU-219

    Запустите среду разработки Ардуино и перейдите в меню: Скетч -> Подключить библиотеку -> Управлять библиотеками…

    Менеджер библиотек IDE Arduino

    Запустится Менеджер библиотек. Чтобы найти библиотеки для работы с нашим датчиком, введём в текстовом поле «ina219».

    Установка библиотеки в IDE Arduino для работы с INA219

    Как видите, нам доступно несколько библиотек для работы с INA219. Я предлагаю установить библиотеку INA219_WE by Wolfgang Ewald, т.к. она достаточно прозрачна и предоставляет доступ ко всем возможностям датчика. Выберите её в списке и нажмите кнопку «Установка». На всякий случай вот ссылка на репозиторий библиотеки: https://github.com/wollewald/INA219_WE

    Откройте пример Continuous, идущий вместе с данной библиотекой:

    Пример скетча для INA219

    Залейте скетч в Ардуино и подключите к ней модуль INA219 в соответствии с приведённой ранее схемой. Результат работы скетча можно увидеть в мониторе порта:

    Результаты измерений модулем INA219

    Как видно из скриншота, сила тока в моей цепи немного скачет. Это потому, что коллекторный двигатель создаёт помехи, и, по-хорошему, параллельно ему нужно было подключить неполярный конденсатор. Но зато это позволит показать возможности INA219 в борьбе с помехами. Для этого давайте вернёмся к скетчу и разберёмся с функциями библиотеки.

    Настройка INA219

    Датчик INA219 готов к использованию без выполнения каких-либо настроек. По умолчанию он сконфигурирован на непрерывное измерение, диапазон напряжений 0…26 В, ток до 3.2 А и разрешение АЦП 12 бит. Если нам не нужны такие широкие диапазоны измерений и разрешение, то мы можем их изменить. И в функции setup рассматриваемого скетча уже показано, как это сделать. Нужно лишь раскомментировать соответствующие функции и подставить в них интересующие параметры. Рассмотрим их.

    setADCMode – настройка разрешения АЦП и усреднение результата

    АЦП INA219 имеет разрешение 12 бит и по умолчанию при каждом измерении делает единственную выборку. Функция setADCMode позволяет изменить разрядность (возможны варианты: 9, 10, 11 и 12 бит) и количество выборок (1, 2, 4, 8, 16, 32, 64, 128). Оба параметра влияют на время измерения. В скетче приведены все возможные значения, с которыми может быть вызвана данная функция, а так же соответствующие им длительности измерений. Например, чтобы настроить датчик на выполнение 128 выборок, необходимо раскомментировать строку:

    ina219.setADCMode(SAMPLE_MODE_128); // choose mode and uncomment for change of default

    setMeasureMode – выбор режима работы

    Данная функция задаёт режим работы датчика:

  • POWER_DOWN – переход в режим энергосбережения.;
  • TRIGGERED – измерение по запросу.;
  • ADC_OFF – отключение АЦП. Приостанавливает все измерения.;
  • CONTINUOUS – непрерывное измерение (по умолчанию);
  • setPGain – выбор верхней границы по току

    Функция setPGain позволяет установить диапазон измеряемых напряжений на шунте и как следствие максимальный измеряемый ток.

    setBusRange – выбор верхней границы по напряжению

    Функция setBusRange позволяет выбрать диапазон измеряемых напряжений основной цепи.

     

    Воспользуемся этими функциями, чтобы настроить INA219 на выполнение 128 выборок, измерение тока до 400 мА и напряжения до 16 В. Изменённый скетч и результаты измерений приведены ниже.

    #include "Wire.h"
    #include "INA219_WE.h"
    #define I2C_ADDRESS 0x40 // I2C адрес модуля
    
    INA219_WE ina219(I2C_ADDRESS);
    
    void setup() {
      Serial.begin(9600);
      Wire.begin();
      if (!ina219.init()) {
        Serial.println("INA219 not connected!");
      }
    
      ina219.setADCMode(SAMPLE_MODE_128); // 128 выборок для усреднения измерений по току
      ina219.setPGain(PG_40); // измеряем ток в пределах 400 мА
      ina219.setBusRange(BRNG_16); // напряжение до 16 В
    
      Serial.println("INA219 Current Sensor Example Sketch - Continuous");
    }
    
    void loop() {
      float shuntVoltage_mV = 0.0;
      float loadVoltage_V = 0.0;
      float busVoltage_V = 0.0;
      float current_mA = 0.0;
      float power_mW = 0.0;
      bool ina219_overflow = false;
    
      shuntVoltage_mV = ina219.getShuntVoltage_mV();
      busVoltage_V = ina219.getBusVoltage_V();
      current_mA = ina219.getCurrent_mA();
      power_mW = ina219.getBusPower();
      loadVoltage_V  = busVoltage_V + (shuntVoltage_mV / 1000);
      ina219_overflow = ina219.getOverflow();
    
      Serial.print("Shunt Voltage [mV]: "); Serial.println(shuntVoltage_mV);
      Serial.print("Bus Voltage [V]: "); Serial.println(busVoltage_V);
      Serial.print("Load Voltage [V]: "); Serial.println(loadVoltage_V);
      Serial.print("Current[mA]: "); Serial.println(current_mA);
      Serial.print("Bus Power [mW]: "); Serial.println(power_mW);
      if (!ina219_overflow) {
        Serial.println("Values OK - no overflow");
      }
      else {
        Serial.println("Overflow! Choose higher PGAIN");
      }
      Serial.println();
    
      delay(3000);
    }

    Результат измерений INA219 с фильтрацией

    Проверка измерений INA219 мультиметром

    Теперь датчик выдаёт стабильные значения. Их легко проверить, добавив в цепь точный мультиметр, что я и сделал. Результаты измерений практически совпадают.

    Датчик тока CJMCU-219 — весьма точный и простой в использовании датчик, которому можно найти немало применений. 


    ------------------
    СЕЕД16905:160
    Добавить отзыв
     Написание отзыва требует предварительной регистрации на сайте.
    Вы можете купить Датчик напряжения и тока CJMCU-219 с I2C интерфейсом на чипе SMD INA219 как за наличный расчёт, так и по безналичному расчёту ( т.н. безналу, перечислению). Для этого Вам надо либо оформить заказ на нашем сайте, указав в примечании реквизиты, либо прислать письмо с точным указанием кода CTTL16905 на Датчик напряжения и тока CJMCU-219 с I2C интерфейсом на чипе SMD INA219, желаемого количества и реквизитов Вашей организации. Счета по безналичному расчёту выписываются на основании вашего письменного запроса и от суммы 500 рублей.
    Доставка может производиться различными по Вашему выбору способами. Это и самовывоз, и курьерские службы по г. Москве, и транспортные компании по России. Также мы можем выслать этот товар Почтой России. Если размеры, вес товара Датчик напряжения и тока CJMCU-219 с I2C интерфейсом на чипе SMD INA219 или соображения удароустойчивости находятся в разрешённых Почтой России пределах.