Метеостанция на балконе отработала два сезона на батарейках — по методике из урока про внешнее питание — и я решился на литиевую банку 18650 из разобранного павербанка: 2000 мА·ч, одна банка вместо четырёх, заряжается прямо на месте. Модули зарядки заказал парой: один с защитой, второй на рубль дешевле без неё. Дешёвый встал на стол, с защитой поехал на балкон — и зиму пережил только балконный. Столошный к весне разрядился ниже двух с половиной вольт: держатель покрылся белым налётом, и банка чудом ожила после долгой зарядки малым током.
Виноват был я, а не банка: модуль без защиты не умеет останавливать разряд, и скетч, молча съедающий микроамперы всю зиму, увёз литий за нижнюю границу. Этот урок — про правильную обвязку банки: модуль TP4056 с четырьмя клеммами, которые разводят зарядку и нагрузку, защитная связка DW01 с парой транзисторов и повышающий MT3608, делающий из 3,7 вольта честные пять.
План такой: разбор клемм и что к ним идёт, механика зарядного цикла, почему модуль без защиты — лотерея, таблица времени работы от банки на 2000 мА·ч и скетч-монитор статусов для живой платы. Безопасности лития посвящён отдельный блок: одна надутая банка стоит дороже всей экономии на защите.
Четыре клеммы: B+, B-, OUT+, OUT-
У модуля две пары клемм, и путать их нельзя. B+ и B- идут к банке: плюс к плюсу держателя, минус к минусу — полярность проверяется дважды, потому что переполюсовка литиевой банки — это не погасший светодиод, а искра. OUT+ и OUT- — выход на нагрузку: сюда подключается boost-модуль или потребитель на 3,7 вольта. На модулях с защитой OUT+ ведёт к банке не напрямую, а через пару MOSFET-транзисторов 8205 под управлением микросхемы DW01 — на форумах Arduino это же замечание всплывает регулярно: нагрузку, воткнутую в B+ вместо OUT+, защита уже не видит.
Сам TP4056 — зарядная микросхема, и умеет она ровно зарядку по профилю CC/CV. Старт: если банка глубоко разряжена, идёт щадящий малый ток. Основная фаза: постоянный ток до полного ампера — его задаёт резистор на пине PROG: 1,2 кОм дают 1000 мА, 2 кОм — около 580 мА, 10 кОм — около 130 мА. Финал: банк доросла до 4,2 вольта, микросхема переходит к стабилизации напряжения, ток сам сползает вниз, и при падении до десятой части зарядного отключается. Красный светодиод CHRG горит во время заряда, синий STDBY зажигается по завершении.
Часы заряда считаются легко: 2000 мА·ч при токе 1 А — около двух часов плюс фаза доливки, реально два с половиной. От порта ноутбука, который даст не больше 500 мА, та же банка пойдёт под пять часов: модуль берёт сколько источник может отдать. У части плат стоит джампер, режущий ток вдвое, — для мелких банок это удобнее перепайки резистора PROG. Первую зарядку нового модуля я ставлю на керамическое блюдце и не ухожу из комнаты — правило не параноидальное, а выработанное у людей, видевших надутую банку вживую.
DW01 с парой 8205 — последний рубеж между банкой и бедой, и TP4056 сам эту работу не делает: зарядная микросхема останавливает заряд, но не следит за разрядом. Защитная связка отрубает три сценария: перезаряд выше 4,3 вольта, переразряд ниже 2,4-2,5 и перегрузку по току — короткое замыкание закрывает транзисторы почти мгновенно, умеренную перегрузку — за десятки миллисекунд. После срабатывания защита сама не включается до исчезновения причины: короткое в нагрузке — и модуль молчит, сколько ни перетыкай провода.
Отсюда жёсткое правило покупки: модуль с пометкой protection, где рядом с TP4056 стоят дополнительные SMD-корпусы. Вариант без защиты годится ровно в одном случае — когда вы лично следите за банкой вольтметром каждый день, то есть ни в одном реальном проекте. Моя зимняя история с налётом на держателе обошлась в одну банку; следующая могла бы закончиться хуже. Переполюсовка провода держателя, обрыв, забытая на всё лето нагрузка — всё это ловит защита, и всё это вы рано или поздно устроите.
| Ток проекта | 2000 мА·ч по бумаге | С поправкой 70 % | Комментарий |
|---|---|---|---|
| 50 мА — Nano с датчиками | 40 ч | 28 ч | сутки с запасом — рабочий вариант автономки |
| 100 мА — Uno с реле | 20 ч | 14 ч | хватает на день без подзарядки |
| 200 мА — Uno плюс серво | 10 ч | 7 ч | заряжай каждый вечер |
| 500 мА — пик серво или лента | 4 ч | 3 ч | не автономность, а мигание: ищи утечку |
Подъём до 5 вольт: MT3608
Банка живёт между 3,0 и 4,2 вольта, а Uno хочет пять — на пин 5V, или семь и выше на Vin, где банке делать нечего: слишком мало. Повышающий MT3608 поднимает входные 2-24 вольта до нужных вам, максимум до 28: вход IN+ садится на OUT+ модуля зарядки, выход триммером выставляется на 5,0-5,2 вольта — и выставляется под нагрузкой, потому что на холостом ходу триммер показывает больше. КПД порядка 85-90 процентов, нагрев на токах макетки символический.
Выход MT3608 я сажаю на пин 5V платы — тот самый вход для уже готовых пяти вольт из урока про внешнее питание. Не в Vin: повышенные из 3,7 вольт упрутся в потолок стабилизатора, и плата заживёт на просадках. Направление преобразования — принципиальная вещь: MT3608 повышает, LM2596 понижает, AMS1117 — линейный понижающий для 3,3-вольтовых датчиков. Перепутать их направления — классика первого года с модулями питания, и я в этой классике отметился сам.
Про нижнюю границу. Банка в 2,4 вольта на отсечке — это всё, что осталось. MT3608 честно попытается поднять и её, но КПД рухнет, и литий просядет глубже — до беды. Честная граница работы автономки — около трёх вольт на банке: ниже защита DW01 отрубит OUT, плата умолчит, и это правильно. Хотите предсказуемого выключения — заведите контроль напряжения на аналоговый вход и выключайтесь сами.
// У плат TP4056 с контактами CHRG и STDBY флаги читаются как// открытые стоки: подтягиваем INPUT_PULLUP, модуль прижимает к земле.const int PIN_CHRG = 3; // CHRG: LOW — идёт зарядconst int PIN_STDBY = 4; // STDBY: LOW — заряд завершёнconst int PIN_LED = 12; void setup() { pinMode(PIN_LED, OUTPUT); pinMode(PIN_CHRG, INPUT_PULLUP); pinMode(PIN_STDBY, INPUT_PULLUP); Serial.begin(9600); Serial.println("Monitor TP4056: chrg / standby");} void loop() { int zaryad = (digitalRead(PIN_CHRG) == LOW) ? 1 : 0; int gotov = (digitalRead(PIN_STDBY) == LOW) ? 1 : 0; if (zaryad == 1) { digitalWrite(PIN_LED, (millis() / 150) % 2); // блинк: идёт заряд } else if (gotov == 1) { digitalWrite(PIN_LED, HIGH); // банка полная } else { digitalWrite(PIN_LED, LOW); // питаемся от лития } static unsigned long last = 0; if (millis() - last >= 1000) { last = millis(); Serial.print("chrg="); Serial.print(zaryad); Serial.print(" stdby="); Serial.print(gotov); Serial.print(" -> "); if (zaryad == 1) { Serial.println("zaryad CC/CV do 1000 mA"); } else if (gotov == 1) { Serial.println("gotov: banka 4.2 V"); } else { Serial.println("pitaemsya ot banki"); } } delay(20);}Сколько живёт проект: считайте по среднему току из урока про бюджет тока. Uno с датчиками берёт около 50 мА — таблица выше обещает 14-15 реальных часов от банки на 2000 мА·ч с boost-модулем в цепи. Этого хватает на сутки с запасом, если ночная схема не делает лишней работы; убыстрить счёт под свою нагрузку поможет пересчёт из урока про бюджет — там же про разницу пика и среднего.
Куда ставить модуль на макетке: сборку источника на рейках разбирал урок про модуль питания, а TP4056 добавляет две заботы. Банка сидит в держателе с креплением: болтающийся держатель — это рваный провод, а рваный провод на литиевой банке — искра; от переполюсовки проводов держателя ставят диод на входе boost-модуля — механика из урока про диод и полярность, падение полвольта на нём роли не играет. И пока идёт заряд, нагрузку лучше отключать: параллельный потребитель маскирует момент завершения — зарядник не видит падения тока до порога отсечки, и синий светодиод может не зажечься вовсе.
- B+/B- — к банке, OUT+/OUT- — к нагрузке; на модулях с защитой OUT ведёт через пару 8205 под управлением DW01, нагрузка в B+ защиту обходит
- TP4056 заряжает по CC/CV: 1 А при PROG 1,2 кОм (2 кОм — 580 мА, 10 кОм — 130 мА), потолок 4,2 В, отсечка при падении тока до десятой части
- Защита DW01 отсекает перезаряд выше 4,3 В, переразряд ниже 2,4-2,5 В и перегрузку по току; модуль без защиты — лотерея, моя зима с налётом тому свидетель
- Пять вольт делает MT3608: вход от OUT+, триммером 5,0-5,2 В под нагрузкой, выход на пин 5V; КПД порядка 85-90 %
- Время работы: ёмкость делим на средний ток и умножаем на 0,7 — 2000 мА·ч при 100 мА дают около 14 реальных часов
- 1. К какой паре клемм TP4056 подключается сама банка?
- 2. Какой зарядный ток у типового TP4056 с резистором PROG 1,2 кОм?
- 3. Куда подключается нагрузка — boost-модуль или потребитель на 3,7 В?
- 4. Что делает защитная связка DW01 с 8205 на модуле с protection?
- 5. Банка 2000 мА·ч, средний ток проекта 100 мА. Сколько реально проработает схема?
Частые вопросы по теме урока
- К какой паре клемм TP4056 подключается сама банка?
- B+/B- — клеммы банки, OUT+/OUT- — выход на нагрузку. На модулях с защитой выход идёт через транзисторы 8205, поэтому нагрузка в OUT, а не в B+. B+ и B-
- Какой зарядный ток у типового TP4056 с резистором PROG 1,2 кОм?
- 1,2 кОм на пине PROG задают полный ампер. 2 кОм дают около 580 мА, 10 кОм — около 130 мА: ток снижают под ёмкость мелких банок. 1000 мА
- Куда подключается нагрузка — boost-модуль или потребитель на 3,7 В?
- Только OUT: на модулях с защитой этот путь идёт через пару 8205, и DW01 видит перегрузку. Нагрузка на B+ обходит защиту — так ловят переразряд и замыкания. к OUT+ и OUT-
- Что делает защитная связка DW01 с 8205 на модуле с protection?
- TP4056 умеет только заряд. DW01 закрывает транзисторы при перезаряде выше 4,3 В, переразряде ниже 2,4-2,5 В и при сверхтоке — без неё банка беззащитна. отсекает перезаряд, переразряд и перегрузку по току
- Банка 2000 мА·ч, средний ток проекта 100 мА. Сколько реально проработает схема?
- Бумага обещает 20 часов, но ёмкость меряют лёгким током, boost-модуль ест на себе, а холод режет остаток: берите 70 процентов — примерно 14 часов. около 14 часов — ёмкость делить на ток и умножать на 0,7