🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


⚡ Проект: измеритель мощности на INA219 с выводом на LCD1602

Датчик INA219 и LCD1602

INA219 по шине I2C сразу отдаёт три значения — напряжение, ток и вычисленную мощность нагрузки, точнее и информативнее, чем аналоговый датчик тока на эффекте Холла.

Как это работает

INA219 — это специализированная микросхема для измерения тока и напряжения, которая измеряет падение напряжения на встроенном прецизионном шунтирующем резисторе и по этой величине вычисляет силу тока. В отличие от датчиков на эффекте Холла (таких как ACS712), INA219 общается с Arduino по цифровой шине I2C и отдаёт уже готовые, откалиброванные производителем значения — напряжение в вольтах, ток в миллиамперах и мощность в милливаттах, без необходимости считать формулы пересчёта вручную.

Измеряемая нагрузка подключается последовательно через клеммы VIN+/VIN- датчика (то есть ток нагрузки должен физически течь через сам модуль INA219), а связь с Arduino идёт отдельно, через те же провода SDA/SCL, что и у LCD-дисплея — оба устройства могут сидеть на одной шине I2C одновременно, так как у каждого свой уникальный адрес.

Пошаговая сборка

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

  1. Подключите INA219 по шине I2C: SDA → A4, SCL → A5, VCC → 5V, GND → GND.
  2. Измеряемую нагрузку подключите ПОСЛЕДОВАТЕЛЬНО через клеммы VIN+/VIN- датчика — то есть разорвите цепь питания нагрузки и пропустите её через эти клеммы.
  3. Подключите LCD1602 с I2C-переходником на ту же шину I2C: SDA → A4, SCL → A5, VCC → 5V, GND → GND.
  4. Установите библиотеки Adafruit INA219 и LiquidCrystal I2C через Менеджер библиотек в Arduino IDE перед прошивкой.
  5. Если дисплей не загорается с адресом 0x27, просканируйте шину I2C отдельным скетчем-сканером — часто встречается адрес 0x3F.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

#include <Wire.h>
#include <Adafruit_INA219.h>
#include <LiquidCrystal_I2C.h>

Adafruit_INA219 ina219;
LiquidCrystal_I2C lcd(0x27, 16, 2); // адрес дисплея может отличаться, см. ниже

void setup() {
  Serial.begin(9600);
  ina219.begin();
  lcd.init();
  lcd.backlight();
}

void loop() {
  float busVoltage = ina219.getBusVoltage_V();  // напряжение, В
  float current_mA = ina219.getCurrent_mA();    // ток, мА
  float power_mW = ina219.getPower_mW();        // мощность, мВт

  lcd.setCursor(0, 0);
  lcd.print(busVoltage);
  lcd.print("V ");
  lcd.print(current_mA);
  lcd.print("mA ");

  lcd.setCursor(0, 1);
  lcd.print("Power: ");
  lcd.print(power_mW);
  lcd.print("mW  ");

  Serial.print(busVoltage);
  Serial.print(" V, ");
  Serial.print(current_mA);
  Serial.print(" mA, ");
  Serial.print(power_mW);
  Serial.println(" mW");

  delay(500);
}

Библиотека Adafruit_INA219 сама учитывает калибровку датчика — в отличие от ACS712 не нужно вручную считать напряжение нулевой точки и коэффициент чувствительности.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 🔋 измеритель тока нагрузки на ACS712 и LCD16…☀️ журнал выработки солнечной панели на ACS71… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 348 ₽ 313 ₽ (экономия 35 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA