Таймер для дачного инкубатора я собрал за вечер: экран, две кнопки, писк при повороте лотка. От зарядки он жил неделями, и я честно посчитал ёмкость: power bank на 10000 мА·ч против сорока миллиампер — это недели автономности. Реальность оказалась другой: к утру банк выключался сам, таймер умирал, и каждый день начинался с кнопки включения. Банка была полная — выключался сам банк: ночью таймер спит, тянет меньше порога, на котором банк считает нагрузку умершей, и через полминуты тишины рубит выход. Первую ночь я грешил на скетч: перезаливал, выкидывал библиотеки. Вторую — уже сидел с телефоном над паспортом банка.
Для автономного проекта есть два пути, и у каждого своя цена. Power bank — готовая банка с зарядкой и защитой в одном корпусе, но с характером: следит за током нагрузки и засыпает без спроса. Банка 18650 с зарядным модулем — полный контроль и никаких порогов, но разряд следите вы, а не электроника. Источники мы сравнивали в уроке про внешнее питание, а обвязку 18650 — TP4056 с защитой и повышающий модуль — разобрали в отдельном уроке про зарядку. Здесь другой вопрос: как заставить батарейный проект жить неделю, а не до первого сна.
План: механика порога power bank и три способа его обмануть; ветка от 18650 и диод-развязка, чтобы банк и USB не воевали; средний ток цикла сон-работа — главный аргумент батарейного проекта; и честный расклад, что умеет глубокий сон на плате, а что мешает.
Power bank и порог: почему он выключается, когда ему нужнее всего
Механика простая и скучная: банк следит за током на выходе, и если несколько десятков секунд подряд видит меньше порога — решает, что его забыли отключить, и гасит выход. Порог — паспортная величина, и гуляет она сильно: у большинства моделей это 20-50 мА, у части — все 100-200 мА, и найти цифру в описании банка обычно проще, чем угадать. Порог — не приговор, если знать его заранее: USB-тестер в разрыв за пару сотен рублей показывает и порог, и реальное потребление вашей платы — два числа, которых не хватало мне той ночью. Теперь приложим к порогу плату: Uno с одним живым скетчем и потухшим светодиодом ест 45-50 мА — прямо на пороге, и от серии к серии банк то терпит, то выключается. Сонный проект с тремя миллиамперами для банка — приговор: выход умолкает через полминуты.
Обмануть порог можно тремя способами, по возрастанию честности. Первый — режим малых токов: у части моделей он включается двойным нажатием кнопки и опускает порог до единиц-десятков миллиампер, цена вопроса — прочитать паспорт. Второй — импульс-обманка: раз в 20-30 секунд транзисторный ключ подсаживает на выход резистор 22 Ом, банк на секунду видит пару сотен миллиампер и продолжает считать нагрузку живой; трюк с форумов, рабочий, но тратит банку впустую, а резистор на пяти вольтах рассеивает в импульсе ватт с четвертью — корпус от двух ватт. Третий — не бороться с банком, а взять источник без порогов: банка напрямую. И напомню про бюджет: сам банк тоже ест десятки миллиампер на собственную электронику, поэтому 10000 мА·ч на корпусе не равны 10000 мА·ч на нагрузке — арифметику честной ёмкости мы считали в уроке про бюджет тока.
// Сторож банки: делитель 2x10 кОм с плюса 18650 (ДО повышающего// модуля) на A0. Банка 4,2-3,0 В делится пополам: АЦП видит 1,5-2,1 В.const int PIN_BANKE = A0; void setup() { Serial.begin(9600); Serial.println("storozh banki 18650");} void loop() { long sum = 0; for (int i = 0; i < 8; i++) { sum = sum + analogRead(PIN_BANKE); delay(3); } float uBanke = (sum / 8.0) * (5.0 / 1023.0) * 2.0; Serial.print("banke "); Serial.print(uBanke, 2); Serial.print(" V"); if (uBanke < 3.20) Serial.print(" NIZKO - zaryazhayte"); Serial.println(); delay(2000);}Мерять надо до повышающего модуля, а не после: на выходе MT3608 всегда пять вольт, пока банка жива, и вы не увидите её разряд до самого конца. Делитель из двух десяток килоом съедает с банки около 0,2 мА — за месяц это 0,14 мА·ч, несопоставимо меньше саморазряда. Порог предупреждения 3,2 вольта я беру не с потолка: ниже трёх вольт повышающему модулю тяжело, КПД падает, и банка проваливается в разряд лавиной — полная механика и таблица времени работы есть в уроке про TP4056 и 18650. И не забудьте аппетит самого повышающего модуля: MT3608 на холостом ходу ест несколько миллиампер, и в бюджете автономки он фигурирует статьёй расходов, а не проводом.
Диод-развязка — деталь, которая делает ветку банки удобной в работе. Схема: выход MT3608 идёт в рейку 5 В через диод Шоттки 1N5819, а USB-кабель — в порт платы напрямую. Работает это как конкуренция источников: при воткнутом USB на рейке чуть выше напряжение, и банк через диод заперт — отдыхает, а не кормит проект параллельно с розеткой. Выдернули USB — банк берёт рейку на себя за микросекунды, скетч даже не замечает. Падение на Шоттки 0,3-0,4 вольта оставляет на рейке 4,7-4,8 В: даташит ATmega328P на 16 МГц просит 4,5-5,5, так что живём, но на грани; при пониженной частоте запас огромный. Полярность и роль диодов как запора — в уроке про диод.
| Источник автономки | Ограничение | Вердикт |
|---|---|---|
| Power bank | порог выключения 20-200 мА, зависит от модели | дневные эксперименты; для сна — только режим малых токов |
| 18650 + TP4056 + MT3608 | пока банка выше 3 В; разряд следите вы | автономка с полным контролем, никаких порогов |
| 6 × AA NiMH, 7,2 В | ток отдачи большой, порогов нет | полевые макетки: в Vin без преобразователя |
Главный аргумент батарейного проекта — средний ток, а не пик. Экран может жить 200 миллисекунд в две секунды, светодиод мигать по заданию, серво дёргаться по событию. Симулятор ниже считает этот аргумент вживую: ручка A0 задаёт ток активной фазы, кнопка D2 меняет её длину, и программа пересчитывает средний ток и запас часов. Движок глубокого сна не эмулирует — числа модельные, как на бумаге: так и задумано, бумага в этом уроке рабочая.
Цифры из модели запомните парой: сто миллиампер на двести миллисекунд из каждых двух секунд — это средние 12,7 мА и неделя жизни от одной банки. А теперь главная ловушка комбинации «банк плюс сон»: средний ток сонного проекта почти всегда ниже порога банка, поэтому банк выключится независимо от того, как красиво вы урежете цикл. Сон и power bank дружат только в режиме малых токов; сон и банка напрямую — рабочая пара без компромиссов.
Ту же арифметику стоит прогнать и по банку: кроме среднего тока проекта у банка есть собственный аппетит — электроника, индикация, преобразователь, в сумме десятки миллиампер. Поэтому сонный проект на 8 мА банку не спасёт: банк выключится по порогу независимо от вашей экономии. Банка напрямую — единственная схема, где средний ток из симулятора превращается в часы жизни один к одному.
Сон: что умеет чип и что мешает плате
Даташит обещает чудо: ATmega328P в режиме power-down с будильником от watchdog-таймера потребляет единицы микроампер — банка на 2500 мА·ч теоретически кормит чип годами. На классической Uno этому чуду мешает всё остальное: стабилизатор, светодиод питания, USB-чип — вместе десятки миллиампер, и сон чипа на их фоне невидим. Глубокий сон на Uno — как глушить двигатель, оставив фары и магнитолу. Мой реалистичный потолок автономки на Uno — средние 5-15 мА без всякого сна: экран по таймеру, периферия гасится, серво отключаются. Для микроамперов берут Pro Mini: у него и LED, и стабилизатор выпаиваются, а watchdog будит чип раз в восемь секунд — это уже другой класс проектов. Экран по событию, а не по циклу: таймер будит чип, чип мигает цифрами и засыпает обратно — вот где цикл из симулятора совпадает с реальностью.
Пока проект живёт на Uno, цикл работа-пауза строится на millis — механика расписана в уроке про замену delay: активная фаза делает дело, пауза гасит экран и держит только таймер. Проверьте свой проект на честность: половина сна на макетке съедается забытой подсветкой экрана, вторая половина — светодиодом статуса, который вы сами же и попросили. Обвязку питания для такой автономки — тумблер, конденсаторы, индикатор — я собирал в итоговом проекте модуля питания, и к батарейному проекту он переезжает целиком.
- 1. Почему power bank выключается на спящем проекте?
- 2. Что делает диод Шоттки между MT3608 и рейкой 5 В?
- 3. ATmega328P в power-down ест единицы микроампер. Сколько ест плата Uno целиком?
- 4. Активная фаза 100 мА живёт 200 мс из каждых 2000 мс, в паузе 3 мА. Средний ток?
- 5. Первое действие, когда батарейный проект умирает от банка через минуту?
- Power bank рубит выход, когда ток нагрузки ниже порога (типично 20-50 мА, у части моделей 100-200 мА) дольше полминуты
- Три способа обмануть порог: режим малых токов двойным нажатием, импульс-обманка резистором, банка 18650 напрямую
- Диод Шоттки в ветке банка плюс прямой USB — развязка источников за 0,3-0,4 В; на 16 МГц рейка 4,7-4,8 В — на грани даташита
- Напряжение банки меряйте до повышающего модуля: делитель 2×10 кОм на A0, тревога на 3,2 В
- Средний ток = ток работы × доля работы + ток сна × доля сна; на Uno реалистичны 5-15 мА, микроамперы — Pro Mini
Частые вопросы по теме урока
- Почему power bank выключается на спящем проекте?
- Банк следит за током выхода: несколько десятков секунд ниже порога (у большинства моделей 20-50 мА, у части 100-200 мА) — и он гасит выход. Сонный проект на 3 мА порог гарантирует. ток нагрузки дольше полминуты ниже порога — банк считает нагрузку умершей
- Что делает диод Шоттки между MT3608 и рейкой 5 В?
- Это развязка двух источников: побеждает тот, у кого напряжение выше. При воткнутом USB банк заперт и отдыхает, выдернули — банк берёт рейку за микросекунды. Цена — 0,3-0,4 В падения. запирает ветку банка, когда рейку кормит USB, и наоборот
- ATmega328P в power-down ест единицы микроампер. Сколько ест плата Uno целиком?
- Чип спит, а обвязка платы нет. На Uno глубокий сон невидим; реалистичный потолок автономки — 5-15 мА среднего. Микроамперы начинаются на Pro Mini без LED и стабилизатора. десятки миллиампер: стабилизатор, светодиод питания и USB-чип
- Активная фаза 100 мА живёт 200 мс из каждых 2000 мс, в паузе 3 мА. Средний ток?
- Средний = (100 × 200 + 3 × 1800) / 2000 = 12,7 мА. От банки 2500 мА·ч с поправкой 0,85 это около недели жизни. Считайте средний ток, а не пиковый. около 12,7 мА
- Первое действие, когда батарейный проект умирает от банка через минуту?
- Симптом «от зарядки живёт, от банка гаснет» указывает на порог банка, а не на код. Сначала паспорт и измерение тока, и только потом скетч. найти порог банка в паспорте или померить ток USB-тестером