
Интернет-магазин «Неглупый Дом»
На сайте уже есть проекты про солнечную панель в связке с ACS712 (логирование в EEPROM) и с TP4056 (управление зарядкой аккумулятора) — здесь другая задача: INA219 напрямую измеряет, сколько напряжения, тока и, соответственно, мощности панель выдаёт прямо сейчас, без аккумулятора и без записи в память.
INA219 одновременно измеряет напряжение и ток через встроенный прецизионный шунтирующий резистор, включённый последовательно в цепь — ток создаёт на этом крошечном резисторе падение напряжения, пропорциональное силе тока, которое чип измеряет и переводит в миллиамперы. Мощность (напряжение × ток) чип считает сам внутри себя. Общение с Arduino идёт по I2C — два провода вместо отдельного аналогового входа на каждую величину.
Выход солнечной панели постоянно меняется с освещённостью (облако, угол панели, затенение) — прямой мониторинг показывает качество освещения/установки панели здесь и сейчас, в отличие от проектов про зарядку, где видно только поведение на стороне аккумулятора, а не саму панель.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.
#include <Wire.h>
#include <Adafruit_INA219.h>
Adafruit_INA219 ina219;
void setup() {
Serial.begin(9600);
ina219.begin();
}
void loop() {
float busVoltage = ina219.getBusVoltage_V();
float current_mA = ina219.getCurrent_mA();
float power_mW = ina219.getPower_mW();
Serial.print("Напряжение: "); Serial.print(busVoltage); Serial.println(" В");
Serial.print("Ток: "); Serial.print(current_mA); Serial.println(" мА");
Serial.print("Мощность: "); Serial.print(power_mW); Serial.println(" мВт");
Serial.println("---");
delay(1000);
}
Библиотека Adafruit_INA219 ставится через Менеджер библиотек Arduino IDE. Адрес по умолчанию у INA219 — 0x40; если на шине уже есть другое устройство с этим адресом, у большинства модулей INA219 есть перемычки для смены адреса.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу в корзину: 414 ₽ 373 ₽ (экономия 41 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.