Автономный ночник на балконе я питал от четырёх батареек АА — «там же один светодиод и датчик». Через сутки отсвет погас: батарейки формально живы, но плата во сне продолжала есть ток, датчик не засыпал никогда. Я купил батарейки покрупнее, так ничего и не посчитав, — и через двое суток история повторилась в точности. Дважды наступить на одни грабли — уже система, и система была глупая: я так и не сел с листом бумаги складывать токи.
Второй звонок был громче. Цепочка из светодиодной ленты и сервопривода на USB отвалилась с сообщением о перегрузке на первом же повороте серво — порт честно сложил пик с базой и отказался работать. Оба провала — одна и та же дыра: у проекта есть бюджет тока, и кончается он не «когда-нибудь», а в конкретный момент — на пике или за считанные часы.
Здесь разложим бюджет на части: четыре потолка источника, таблица типовых потребителей с цифрами, математика пик против среднего и запас. Метод простой, как список покупок, и экономит батарейки, порты и нервы. Формулы возьмём из урока про закон Ома — понадобятся они ровно один раз.
Четыре потолка: USB, стабилизатор, 3.3 вольта и пин
У каждого источника свой потолок, и их полезно держать в голове списком. USB-порт — около 500 мА, и на Uno этот же лимит дублирует полифьюз у разъёма. Питание 7–12 вольт в круглое гнездо проходит через стабилизатор: в тепличных условиях он тянет порядка ампера, но жара и соседние горячие детали режут потолок в разы, поэтому здесь запас нужен двойной. Выход 3.3 вольта — скромные около 50 мА: датчику хватит, ленте нет. И отдельный потолок у каждого пина: 20 мА рабочие, 40 мА — абсолютный предел, не больше 200 мА суммарно на весь чип.
Потолки не складываются: подключив ленту к 5V-пину, ты ешь из того же бюджета, что и порты. Общее правило: сумма всех потребителей не превышает самого слабого потолка на пути тока. И первое вычитание — сама плата: Uno или Nano едят 45–50 мА ещё до всякой периферии. Это первый покупатель в списке, и он платит всегда, даже когда скетч пустой.
| Потребитель | Типовой ток | Оговорка |
|---|---|---|
| Плата Uno/Nano | 45–50 мА | уже съедена — вычитай из бюджета первой |
| Светодиод с резистором | 10–20 мА | по одному на индикатор, ленты считаются отдельно |
| Дальномер HC-SR04 | 2 мА в покое, 15 мА при замере | при замере раз в 100 мс среднее ближе к 10 мА |
| DHT11 | 1–2,5 мА | опрашивать не чаще раза в две секунды |
| DS18B20 | около 1 мА | в ожидании конверсии почти молчит |
| Подсветка LCD1602 | 20–30 мА | гасится транзистором, когда не нужна |
| Модуль реле | 70–80 мА на катушку | держит катушку, пока включён |
| Датчик газа MQ-2 | около 150 мА | нагреватель работает всегда — бюджетный хищник |
| Серво SG90 | 100 мА в покое, 650+ мА в затыке | пик короткий, но его считает источник |
| Лента WS2812 | 60 мА на светодиод в белый | десять светодиодов — уже 600 мА |
Две математики, и их нельзя путать. Для источника счёт ведётся по пикам: если серва в затыке берёт полампера, источник обязан их пережить, даже если это случается на секунду в минуту. Для батареи счёт по среднему: серва поворачивается дважды в час, и её пик на суточный расход почти не влияет. Ошибка «считаем всё по пику» переплачивает за источник, ошибка «всё по среднему» гасит порт в первый же поворот. Мой маркер: всё, что связано с защитой и отключением, — по пику; всё, что связано с ёмкостью и часами работы, — по среднему.
Батарейная математика такая: ёмкость в миллиампер-часах делим на средний ток — получаем часы. Четыре АА по 2500 мАч и проект со средним током 50 мА обещают пятьдесят часов. В бумаге. На деле бери 60–70 процентов от этой цифры: ёмкость на упаковке меряют лёгким током, преобразователь теряет на себе, холод на балконе режет остаточную ёмкость в разы. Честная оценка — 30–35 часов, и планировать надо её, а не красивую.
Ночник из начала урока теперь считается за минуту: плата 50, светодиод 15, датчик DHT11 2 — итого 67 мА средним, пиков нет. Делим 2500 на 67 — получаем 37 бумажных часов, а с поправкой на холод и преобразователь — 25. Вот эти 25 часов и были правдой, которую я отказывался считать дважды.
Список не обязан быть точным до миллиампера. Даташит дал вилку — бери верхнюю границу, если потребитель работает постоянно, и нижнюю, если он включается редко: дальномер, который меряет раз в секунду, девяносто процентов времени живёт в покое. Такой расчёт держит ошибку внутри запаса, а запас как раз для того и существует.
Метод: таблица на листе или прямо в скетче
Метод — четыре шага. Первый: выписать всех потребителей, включая плату и подсветку экрана, — их забывают чаще всего, а они не мелочь. Второй: для каждого указать режим — покой, работа, пик. Третий: сложить худшие одновременные режимы для источника и средние — для батареи. Четвёртый: наложить запас в 30 процентов на холод, старение и обещания даташитов. Пример поливалки: плата 50, дальномер 10 средним, реле 80, датчик влажности 2 — итого 142 мА, с запасом около 185. USB такое прощает; батарейный отсек — примерно сутки с хвостом.
Скетч-таблица ниже — тот же лист, только не теряется: суммы пересчитываются сами, и её удобно править по ходу проекта.
long tok[6] = {50, 15, 80, 1, 25, 650};String imya[6] = {"plata", "hcsr04", "rele", "ds18b20", "lcd-podsvetka", "servo-pik"}; void setup() { Serial.begin(9600); long itog = 0; for (int i = 0; i < 6; i = i + 1) { itog = itog + tok[i]; Serial.print(imya[i]); Serial.print("="); Serial.println(tok[i]); } long sZapasom = itog * 13 / 10; // +30 процентов запаса Serial.print("itog="); Serial.println(itog); Serial.print("s-zapasom="); Serial.println(sZapasom);} void loop() {}Если сумма пробила потолок, варианты известны и скучны. Прожорливую нагрузку — серво, ленту, мотор — вешают на отдельный источник с общей землёй, как мы делали с питанием сервы. Подсветку гасят, когда она не нужна. Плату укладывают спать между замерами — режимы сна и watchdog разобраны в уроке про энергосбережение. Лента из десяти WS2812 в белый — это 600 мА: ей нужен собственный провод, а не 5V-пин платы, о чём шла речь в уроке про питание ленты.
Правда измеряется мультиметром в разрыв плюса: даташиты врут в обе стороны, а прошивка может держать датчик включённым дольше, чем ты думаешь. Пять минут с амперметром против листа обещаний — правда всегда на стороне амперметра, и после первого же замера таблица обычно правится.
Ползунок бюджета — это выбор источника: на левом краю почти батарейный отсек, на правом почти стабилизатор, а USB живёт около отметки 500. Заведи сначала 150 и 80 — запас большой, реле молчит. Добавь 650 — пик серво пробивает даже щедрый потолок, и калькулятор отрубает нагрузку ровно так, как отрубил бы порт. Это и есть бюджет в движении: не абстрактная сумма, а решение, которое принимает железо за тебя.
- 1. Сколько рабочего тока можно снимать с одного пина?
- 2. Плата Uno сама по себе ест:
- 3. Серво в затыке берёт 650 мА на секунду в минуту. Что это значит для источника?
- 4. Четыре АА по 2500 мАч, средний ток 50 мА. Реалистичная оценка работы:
- 5. Сумма потребителей 590 мА, питание от USB. Что делать?
- Четыре потолка: USB 500 мА, стабилизатор при VIN около 1 А с оговоркой на жару, 3.3 В — 50 мА, пин — 20/40 мА и 200 мА на чип
- Для источника счёт по пикам, для батареи по среднему; перепутать — отрубить порт или переплатить за отсек
- Таблица потребителей: плата первой (45–50 мА), дальномер, реле, MQ-2, серво, лента — каждая строка с режимом
- Запас 30 процентов на холод, старение и обещания даташитов; батарейную ёмкость умножай на 0,6–0,7
- Если бюджет пробит: отдельный источник с общей землёй, сон между замерами, гасим подсветку; правду меряем мультиметром в разрыв плюса
Частые вопросы по теме урока
- Сколько рабочего тока можно снимать с одного пина?
- 20 мА — режим по даташиту, 40 мА — граница, за которой пин деградирует. Сумма по всем пинам — не больше 200 мА. 20 мА рабочие, 40 мА — абсолютный предел
- Плата Uno сама по себе ест:
- Плата — первый покупатель в списке: стабилизатор, светодиоды на борту, конвертер USB. Периферия ест сверх этих 45–50 мА. 45–50 мА — вычитай из бюджета первой
- Серво в затыке берёт 650 мА на секунду в минуту. Что это значит для источника?
- Защита и отключение живут по пикам: источник должен выдать худший момент. По среднему считают только часы работы от батареи. Источник обязан пережить пик: для него считают по максимуму
- Четыре АА по 2500 мАч, средний ток 50 мА. Реалистичная оценка работы:
- Бумажные 2500/50 = 50 часов умножаем на 0,6–0,7: ёмкость меряют лёгким током, преобразователь и холод съедают остаток. 30–35 часов — реальная ёмкость меньше обещанной
- Сумма потребителей 590 мА, питание от USB. Что делать?
- Потолок USB — около 500 мА. Нагрузку кормят отдельным источником, а платы соединяют общей землёй — иначе сигналы без опоры. Вынести прожорливую нагрузку на отдельный источник с общей землёй