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

Методы оплаты Методы оплаты
Покупайте товар со скидкой, выбирая эти формы оплаты!
Партнерская программа
Наши акции
 
Архив новостей Архив новостей
Новости Новости!
Датчик напряжения и тока CJMCU-219 с I2C интерфейсом на чипе INA219
630 c
630 c
Быстрый заказ

Заказ быстрым способом

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

Цена: 630 руб. Количество: шт.

Фамилия, имя:

E-Mail:

Телефон:

Ваш комментарий к заказу:

Я принимаю Политику конфиденциальности,
Публичную оферту, Пользовательское соглашение

Быстрый заказ

Заказ быстрым способом

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

Цена: 630 руб. Количество: шт.

Фамилия, имя:

E-Mail:

Телефон:

Ваш комментарий к заказу:

Я принимаю Публичную оферту, Политику конфиденциальности, Пользовательское соглашение

В корзину
Работаем без НДС
В корзину
Работаем без НДС
Датчик напряжения и тока CJMCU-219 с I2C интерфейсом на чипе INA219

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

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 – весьма точный и простой в использовании датчик, которому можно найти немало применений. 


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