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

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


🔢 Проект: цифровой ваттметр мощности нагрузки на INA226 с выводом на TM1637

В другом проекте на сайте INA226 используется для защитного отключения нагрузки при превышении тока. Здесь тот же датчик применяется иначе — просто как точный измерительный прибор, показывающий реальную потребляемую мощность нагрузки в ваттах на дисплее TM1637, без какой-либо защитной логики.

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

INA226 измеряет и ток (через падение напряжения на шунтирующем резисторе), и напряжение на нагрузке одновременно, по одной и той же шине I2C. Имея оба этих значения, микросхема (или библиотека, работающая с ней) может сама вычислить мощность по формуле P = U × I — то есть ваттметр получается "бесплатно", без дополнительных вычислений на стороне Arduino, если библиотека поддерживает прямое чтение мощности, либо одной короткой формулой, если считать мощность вручную из тока и напряжения.

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

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

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

  1. INA226: SDA → A4, SCL → A5, VCC → 5V, GND → GND.
  2. Нагрузку подключайте через клеммы VIN+ и VIN- модуля последовательно в силовую цепь (не параллельно).
  3. TM1637: CLK → D9, DIO → D10, VCC → 5V, GND → GND.

Скетч

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

#include <Wire.h>
#include <INA226.h>
#include <TM1637Display.h>

INA226 ina(0x40);
TM1637Display display(9, 10); // CLK, DIO

void setup() {
  Serial.begin(9600);
  ina.begin();
  ina.setMaxCurrentShunt(5, 0.1); // подберите под свой модуль
  display.setBrightness(5);
}

void loop() {
  float voltage = ina.getBusVoltage();
  float current = ina.getCurrent_mA() / 1000.0;
  float power = voltage * current; // мощность в ваттах, P = U x I

  Serial.print("Напряжение: ");
  Serial.print(voltage);
  Serial.print(" В, Ток: ");
  Serial.print(current);
  Serial.print(" А, Мощность: ");
  Serial.print(power);
  Serial.println(" Вт");

  display.showNumberDecEx((int)(power * 10), 0b01000000, false); // один десятичный знак через точку

  delay(300);
}

Библиотеки для INA226 и TM1637Display ставятся через Менеджер библиотек Arduino IDE — доступно несколько сторонних библиотек для INA226 с немного разными именами методов (например, `getPower()` может быть доступен напрямую в некоторых версиях вместо ручного перемножения), уточните точный API именно для установленной у вас версии.

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

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

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

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

← ⚠️ сигнализация выхода пульса за безопасный д…🔊 индикатор среднего уровня шума в помещении… →

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

Все 2 товара сразу в корзину: 237 ₽ 213 ₽ (экономия 24 ₽)

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

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

Корзина


Поиск



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