Подключение INA219 к Arduino

26-02-2020, 16:31 1 комментариев
Продолжаем цикл статей про подключение различных цифровых устройств к Ардуино – на очереди неплохой датчик тока и напряжения на микросхеме INA219. Модуль достаточно универсален и функционален, легок в сборке, имеет компактный размер, обладает высокими показателями точности измерений, потому применяется во многих интересных проектах «ардуинщиков» и любителей «самоделок». Мы также решили познакомить с ним наших читателей.

Начнем по традиции с базовых технических параметров:
  • напряжение питания: 3-5В;
  • max измеряемый ток: 3,2А; напряжение: +-26 В;
  • разрешение: 12bit;
  • диапазон температур: -40C - 125C;
  • тип шины: I2C;
  • скорость: 3,4 МГц;
  • габариты: 23х20 мм.
Как вы поняли, использовать сенсор можно в различных системах контроля за процессом заряда/разряда аккумуляторных батарей, источниках питания с контролем напряжения и потребляемого нагрузкой тока. Для этих целей в микросхеме продумана опция калибровки результатов (для увеличения их точности).

Распиновка платы показана ниже:

Подключение INA219 к Ардуино схематически выглядит следующим образом:

Мы использовали такие аппаратные компоненты как: микроконтроллер Ардуино Uno, модуль датчика тока и напряжения, соединительные провода, штыревой разъём и клеммник (не входят в комплект при покупке).

Для реализации проверки работоспособности, а также с целью облегчения процесса программирования, рекомендуем использовать специализированные библиотеки - Wire (для управления интерфейсом) и Adafruit INA219. Последнюю можно скачать и инсталлировать без особых проблем - кликайте тут
https://github.com/adafruit/Adafruit_INA219

Единственный важный нюанс – не забывайте сохранять разархивированные файлы в директорию libraries в среде программирования IDE – тогда у вас все получится.

Вернемся к прошивке. Заливаем на плату скетч:
#include <Wire.h>
#include  // Adafruit_INA219 sensor219; // Declare and instance of INA219

void setup(void) 
{
      
  Serial.begin(9600);    
  sensor219.begin();
  
}

void loop(void) 
{
  float busVoltage = 0;
  float current = 0; // Measure in milli amps
  float power = 0;

  busVoltage = sensor219.getBusVoltage_V();
  current = sensor219.getCurrent_mA();
  power = busVoltage * (current/1000); // Calculate the Power
  
  
  Serial.print("Bus Voltage:   "); 
  Serial.print(busVoltage); 
  Serial.println(" V");  
  
  Serial.print("Current:       "); 
  Serial.print(current); 
  Serial.println(" mA");
  
  Serial.print("Power:         "); 
  Serial.print(power); 
  Serial.println(" W");  
  
  Serial.println("");  

  delay(2000);
}
Управляется модуль через последовательный порт. Открыть можно через меню Инструменты или при помощи клавиш Ctrl+Shift+M.
В целом прибор довольно практичен и несомненно пригодится в конструировании, проектировании, бытовой и автомобильной электронике.
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

Модуль для Arduino MAX471 – отличное решение для измерения силы тока (потребляемого нагрузкой от источника питания). Этот датчик тока с аналоговым выходом...

Сегодня у нас на рассмотрении подключение MQ-135 к Arduino и все, что с ним связано. Данная тема и в особенности модуль сенсора выбраны не случайно, ведь в...

На повестке дня - подключение AM2320 к Ардуино. Тема очень занятная по той простой причине, что подобные датчики являются просто «мастхевом» для современных...

Сегодня поговорим о таком цифровом устройстве как акселерометр, его технических характеристиках и схеме подключения к Ардуино. Для чего обычно необходимы...

1 комментария
  1. Григорий
    9 декабря 2021 16:41 Григорий

    Пытаюсь прошить этой программой плату ардуино, выдаёт такую ошибку

    sketch_dec09a:2:74: error: #include expects "FILENAME" or <FILENAME>
    #include // Adafruit_INA219 sensor219; // Declare and instance of INA219
    ^
    Несколько библиотек найдено для "Wire.h"
    Используется: C:\Users\George\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.2\libraries\Wire
    Не используется: C:\Program Files (x86)\Arduino\libraries\Wire
    exit status 1
    #include expects "FILENAME" or <FILENAME>

    Что я делаю не так ? обе библиотеки скачал и поместил в папку libraries. Код Ctrl+C и Ctrl+V вставил. Что не так ?

    replyОтветить
Оставить комментарий