🛒
0 товар.
0 руб.
Логотип

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

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

🔌 Проект: монитор тока зарядки Li-ion аккумулятора на TP4056 и ACS712

Модуль TP4056 и датчик ACS712

TP4056 управляет зарядкой, ACS712 в разрыве цепи показывает реальный ток — по его падению видно завершение зарядки.

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

TP4056 заряжает Li-ion по схеме CC/CV: сначала отдаёт стабильный максимальный ток (constant current), а когда напряжение банки приближается к 4.2В, переходит в режим стабильного напряжения (constant voltage) и ток зарядки начинает плавно снижаться. Именно это снижение тока и отслеживает ACS712, поставленный в разрыв цепи между выходом TP4056 и аккумулятором.

ACS712 выдаёт напряжение около 2.5В при нулевом токе, отклонение от этой точки переводится в амперы через коэффициент чувствительности платы (0.066 В/А для 30А-варианта, у других — другое значение, см. маркировку платы). Падение тока ниже определённого порога — надёжный признак, что банка почти полностью заряжена, именно так многие зарядные устройства определяют момент отключения.

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

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

  1. Поставьте ACS712 последовательно в цепь между выходом TP4056 и аккумулятором, OUT → A0.
  2. Соберите саму цепь зарядки TP4056 согласно его собственной схеме — Arduino тут только измеряет, не управляет зарядкой.
  3. Подставьте в код коэффициент чувствительности, соответствующий маркировке вашей платы ACS712.

Скетч

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

const int sensorPin = A0;
// уточните чувствительность для своей платы ACS712 (0.066/0.100/0.185 В/А)
const float sensitivity = 0.066;

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

void loop() {
  int raw = analogRead(sensorPin);
  float voltage = (raw / 1023.0) * 5.0;
  float current = (voltage - 2.5) / sensitivity;

  Serial.print("Charge current: ");
  Serial.print(current);
  Serial.println(" A");

  if (current < 0.05) {
    Serial.println("Зарядка почти завершена");
  }
  delay(2000);
}
                

Падение тока ниже 0.05А обычно означает, что аккумулятор почти полностью заряжен.

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

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

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

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

← 🔋 индикатор согласованного напря…🌡️ температура на веб-странице и … →

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

Все 2 товара сразу: 161 ₽ 145 ₽ (экономия 16 ₽)

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

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

Корзина

Поиск


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