Питание Arduino: VIN, 5V, 3.3V, USB и батарейки — как запитать плату правильно
«Плата и так работает от USB, о чём говорить» ровно до момента, когда в схему въезжает первый серво или метр ленты WS2812. Дальше начинаются мистики: LCD показывает мусор, плата перезагружается сама, дальномер врёт, хотя код идеальный. В девяти случаях из десяти виновато питание: вся Uno живёт на одной шине 5 В с потолком в полампера от USB, и один жадный потребитель просаживает её для всех.
Разбираем все входы (USB, круглый разъём, VIN, пины 5V и 3.3V), честно считаем батарейку «крону», собираем таблицу «симптом, причина, лечение» для просадок. Разводить питание удобнее на макетной плате, а прожорливость конкретных модулей перечислена в справочнике датчиков.
Отдельные разделы ниже отвечают на вопросы, которые возникают у всех: как питание убивает проект, как измерить просадку мультиметром, какие батарейки выгоднее и как запитать проект так, чтобы он не сбрасывался посреди ночи.
Четыре входа питания Uno
| Источник | Напряжение | Потолок тока | Когда годится |
|---|---|---|---|
| USB | 5 В | 500 мА (защитный предохранитель) | Прошивка, отладка, схемы без моторов |
| Разъём DC 2.1 мм | 7–12 В | около 1 А, ограничен нагревом стабилизатора | Стационарный проект без компьютера |
| Пин VIN | 7–12 В | тот же стабилизатор, что у разъёма | Батарейный отсек, аккумуляторы 18650 |
| Пин 5V | 4.5–5.5 В | сколько даст внешний источник | Готовый стабилизированный БП 5 В, USB отключить |
| Пин 3.3V | 3.3 В | ≈50 мА | Только модули: радио, датчики, не для питания платы |
Схема выбора по нагрузке
- Светодиоды, датчики, LCD, RTC: USB или любой вход, 100–200 мА, запас есть всегда
- Одно серво SG90 на отладке можно от USB, но держите палец подальше от кнопки Reset
- Два и больше серво, MG995 и MG996, реле, шаговики: внешний БП 5–6 В на 2–3 А, схему питания серво разбирает урок про подключение SG90
- Лента WS2812: отдельный БП 5 В из расчёта 60 мА на светодиод при полной яркости, метр из 60 шт уже съедает бюджет Uno целиком
- Автономный проект: аккумуляторы 18650 или батарейки через VIN и DC, таблица ниже
Что нельзя делать
- Крона 9 В на пин 5V: напряжение идёт прямо на ATmega328P с максимумом 6 В, и плата умирает тихо, без дымка
- Моторы и серво «на минутку» от пина 5V: пульсации через общий провод, и датчики начинают врать по всем каналам
- Литиевую банку 3.7–4.2 В на VIN: ниже 7 В стабилизатор не вытягивает, на 5V-пин только через step-up
- USB и внешний БП на пин 5V одновременно, самая дорогая из «безобидных на вид» ошибок, см. ниже
Просадка и глюки: как диагностировать
| Симптом | Типичная причина | Лечение |
|---|---|---|
| Серво дёргается, плата сама перезагружается | Пик тока просаживает шину 5 В | Серво на отдельный БП, минусы соединить |
| LCD 1602 показывает мусор или пустые квадраты | 5 В упал ниже ~4.3 В в момент включения нагрузки | Конденсатор 470–1000 мкФ на шину у нагрузки |
| Случайные перезагрузки под нагрузкой | Просадка ловит brown-out детектор ATmega | Толще провода GND, отдельный источник для силовой части |
| Дальномер и датчики врут при включённом моторе | Пульсации питания по общему проводу | 100 нФ у модуля плюс отдельная шина питания для моторов |
| Порт компьютера пишет «превышен ток» | Короткое замыкание или серво на шине USB | Отключить всё, прозвонить, питать силовую часть отдельно |
Батарейки и автономные проекты
| Источник | Напряжение | Честный запас | Как подключать |
|---|---|---|---|
| Крона 9 В | 9 В | ≈550 мА·ч, часы работы | В разъём DC или на VIN, стабилизатор ощутимо греется |
| 4 × AA | 6 В | 2000–2500 мА·ч, дни | На VIN: нижняя граница, при малых токах работает стабильно |
| 2 × 18650 | 7.4 В (8.4 В заряж.) | 2000–3500 мА·ч, дни и недели | Держатель на VIN, лучший вариант автономности |
| Повербанк | 5 В | от 5000 мА·ч | В USB-порт, нюанс автоотключения в FAQ |
| Солнечная панель и TP4056 | 5–6 В | зависит от солнца | Панель, TP4056, 18650, затем step-up 5 В на пин 5V |
Тупик: плата перезагружается сама
Симптом, который мы видели чаще всего: проект работает, пока в схему не добавляют сервопривод. Потом плата начинает перезагружаться посреди движения, а в мониторе порта вместо данных идут нули. Код при этом не менялся, и логика была написана правильно.
Мы проверили питание мультиметром и увидели: в момент, когда серво стартует, напряжение на пине 5V падает заметно ниже пяти вольт. ATmega328P внутри следит за питанием через brown-out детектор, и при сильной просадке он не зависает, а уходит в перезагрузку, поэтому внешне это выглядит как «плата сама перезагрузилась». Лечится это не кодом: серво получает отдельный источник питания, общая земля обязательна, а на шине у нагрузки стоит конденсатор. Отдельно про второй случай, который выглядит так же: если на плате включён сторожевой таймер watchdog и loop() не успевает отработать за отведённое время, перезагрузка будет регулярной и независимой от нагрузки, и тут нужен millis() вместо delay().
Личный опыт: как мы ловим просадки
Мы завели простое правило: любая новая нагрузка проверяется мультиметром в двух точках. Сначала плата работает в покое, щупы стоят на 5V и GND, и мы смотрим напряжение. Затем нагрузку включают в момент измерения, и если стрелка проваливается ниже 4.7 В, источник признаётся слабым и нагрузка уезжает на отдельное питание.
Второе правило оказалось полезнее: любой провод питания мы замеряем не на плате, а непосредственно на нагрузке. Разница между 5 В у Arduino и 4.3 В у серво означает, что проблема в проводе или в разъёме, а не в самом серво, и искать её в моторе бессмысленно. Третье: мы всегда ставим конденсатор 470–1000 мкФ на силовой шине у самой нагрузки. Он не даёт мгновенной просадке, и заодно гасит щелчки в момент включения, которые иначе слышат все датчики на шине.
Авторская позиция: как питать правильно
Мы советуем разделять питание на две части с самого начала, а не «когда что-то сломается». Плата и вся логика живут на своём источнике, а силовые потребители получают отдельный блок, а общая земля соединяет всё в одну точку. Это правило работает и для учебного стенда, и для готового устройства, и снимает целый класс непонятных сбоев.
Отдельно про выбор источника для автономного проекта. Крона удобна, но ёмкость у неё мала, и половина энергии уходит в стабилизатор. Литиевые банки 18650 выгоднее втрое, и для метеостанции или датчика в поле это меняет интервал обслуживания с суток на месяцы. А если проект питается от USB-порта ноутбука, помните про общий предел в 500 мА: лента, реле и серво вместе с платой в него уже не помещаются. Наш практический совет: берите блок питания 5 В на 2–3 А с запасом и подключайте к нему всё, что потребляет больше десятка миллиампер.