Добавить в избранное

Питание Arduino-проектов: от USB до аккумулятора и автономки

Чтение ≈ 4 мин

Как запитать Arduino-устройство: USB, barrel-разъём, VIN, 5V напрямую, литиевый аккумулятор через повышающий модуль, Power Bank с автовыключением и энергосбережение для автономных проектов.

Пять способов запитать Arduino

У Uno/Nano есть несколько точек питания — и они не равнозначны:

  • USB — 5 В напрямую, до 500 мА от ПК или больше от зарядки. Удобно для стола.
  • Barrel-разъём 7–12 В — через встроенный стабилизатор до 5 В. Удобно, но стабилизатор греется и много не отдаст.
  • VIN — тот же вход, что barrel, но пином.
  • 5V пин — прямое питание 5 В минуя стабилизатор — максимум тока, но без защиты: перепутаете полярность или подадите больше 5.5 В — сожжёте.
  • 3.3V — выход стабилизатора, всего 50 мА на Uno — только для датчиков.

Сколько потребляет проект

Считайте бюджет заранее:

  • Сама Uno: ~50 мА.
  • Светодиод: ~10–20 мА.
  • LCD1602 с подсветкой: ~30–80 мА.
  • Релейный модуль: ~70 мА на включённое реле.
  • Серво SG90: до 500 мА под нагрузкой.
  • ESP8266: до 300 мА в пике.
  • WS2812 пиксель: до 60 мА.

Сумма — то, что должен отдать ваш источник. Плюс запас 20–30 %.

Аккумуляторное питание

Литий 18650/пакеты

Одиночный 18650 — 3.0–4.2 В: для Arduino нужна стабилизация. Варианты:

  • TP4056 + повышающий до 5 В — зарядка + повышайка в одном модуле, классика для автономки.
  • 2S литий (7.4 В) → barrel-разъём — встроенный стабилизатор спустит до 5 В.
  • BMS-плата обязательно для лития — защита от переразряда и перезаряда.

Power Bank — просто и готово

Самый простой вариант — обычный павербанк: на выходе стабильные 5 В, заряжается от USB, есть защита. Минус — автовыключение: при токе меньше ~50–100 мА банк решает, что нагрузки нет, и отключается. Для мало потребляющих проектов приходится делать «пульс нагрузки» — периодически включать резистор, чтобы банк не уснул.

Понижаем потребление: автономка на месяцы

Для долгой автономной работы (датчик на улице, метеостанция) нужен сон:

#include <avr/sleep.h>
#include <avr/wdt.h>

// сторожевой таймер будит раз в 8 секунд
ISR(WDT_vect) { /* проснулись */ }

void sleep8s() {
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);
    // настройка WDT на 8 с
    WDTCSR |= (1 << WDP3) | (1 << WDP0);
    WDTCSR |= (1 << WDIE);
    sleep_mode();
}

В режиме PWR_DOWN Uno ест ~0.1 мА вместо 50 — годы от батареи, если просыпаться редко. Для реальной автономки лучше Pro Mini 3.3V/8MHz без светодиода и стабилизатора — ток сна микроамперы.

Общий GND и разделение

Все источники в одной схеме должны иметь общий минус — GND Arduino, GND БП периферии, GND датчиков соединяются. Без этого сигналы «не дойдут», а пины могут получить странные потенциалы.

Типичные проблемы

  • Серво/лента от пина 5V — провал питания, сброс платы. Периферию питать отдельно, GND общий.
  • Barrel 12V + мощная нагрузка — стабилизатор 7805 кипяток от разницы напряжений; берите 7–9 В или DC-DC преобразователь.
  • Power Bank отключается — малое потребление; пульс-нагрузка или другой банк.
  • Подают 5V на VIN — VIN ждёт 7–12 В, от 5 В стабилизатор не выдаст нормальные 5 В.
  • Литий без защиты — BMS обязательна, иначе пожар.

Итог

Схема питания — фундамент проекта: USB для стола, barrel для розетки, power bank для переноски, TP4056+18650 для автономки, сон для долгой жизни. И правила: общий GND, периферия отдельно от логики, токовый бюджет с запасом, литий только с защитой.

Полный пример: датчик на Pro Mini с сном

#include <avr/sleep.h>
#include <avr/wdt.h>

ISR(WDT_vect) {}   // пустой — просто будит

void sleep8s() {
    // WDT на ~8 секунд
    WDTCSR = (1 << WDCE) | (1 << WDE);
    WDTCSR = (1 << WDIE) | (1 << WDP3) | (1 << WDP0);
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);
    sleep_enable();
    sleep_mode();
    sleep_disable();
}

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

void loop() {
    // просыпаемся каждые ~8с, измеряем, шлём, спим
    float t = analogRead(A0) * 5.0 / 1024 * 100;
    Serial.println(t);
    Serial.flush();
    sleep8s();
}

На Pro Mini 3.3V без светодиода и USB — ток в сне ~5 мкА, годы от батарейки.

Снижение частоты и отключение периферии

  • clock_prescale_set(8) — снижение до 1 МГц: потребление падает пропорционально.
  • power_adc_disable(), power_spi_disable() — выключение модулей.
  • Светодиод питания отключить (перемычка/выпаять на Pro Mini).

Измерение реального потребления

Мультиметр в разрыв питания (режим мA) — увидите активный/спящий ток. Для профилирования во времени — USB-амперметры или осциллограф с шунтом. Дешёвые «USB-тестеры» показывают среднее за секунду — удобно для грубой оценки.

Солнечная батарея

Для долгоживущих уличных проектов — солнечная панель 5–10 Вт + контроллер TP4056 с защитой разряда + 18650. Панель даёт дневной запас, аккумулятор ночной — автономка на годы без замены батарей.

Защита аккумулятора

Литий нельзя разряжать ниже 2.5–3.0 В — необратимая деградация и опасность возгорания при перезаряде. BMS-плата (одна или общая на пакет) отключает нагрузку при низком напряжении и блокирует перезаряд. Без неё литий — пожароопасен.

Частые ошибки

  • Питание от 5V-пина при высоком входном: стабилизатор греется на разнице — DC-DC эффективнее.
  • Power bank отключается: малое потребление — пульс-нагрузка или режим always-on у банка.
  • Литий без защиты: пожар/необратимая гибель аккумулятора.
  • Длинные тонкие провода: падение напряжения на проводах при токе.
  • Стабилизатор на пределе: нагрев и отключение — берите запас 30%.

Полный пример: датчик на Pro Mini с сном

#include <avr/sleep.h>
#include <avr/wdt.h>

ISR(WDT_vect) {}

void sleep8s() {
    WDTCSR = (1 << WDCE) | (1 << WDE);
    WDTCSR = (1 << WDIE) | (1 << WDP3) | (1 << WDP0);
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);
    sleep_enable();
    sleep_mode();
    sleep_disable();
}

Снижение потребления

  • clock_prescale_set(8) — до 1 МГц, потребление падает пропорционально.
  • power_adc_disable() — выключение модулей.
  • Светодиод питания отключить — на Pro Mini это 5 мА.

Измерение потребления

Мультиметр в разрыв питания — активный/спящий ток. USB-амперметры — среднее за секунду.

Частые ошибки

  • Power bank отключается — пульс-нагрузка или режим always-on.
  • Литий без защиты — пожар/необратимая гибель.
  • Длинные тонкие провода — падение напряжения.
  • Стабилизатор на пределе — нагрев и отключение.

Солнечная автономка

Для долгоживущих уличных проектов — панель 5–10 Вт + контроллер TP4056 с защитой разряда + 18650. Панель даёт дневной запас, аккумулятор ночной — автономка на годы без замены батарей.

Поделиться
Понравился материал?

Комментарии

Добавить комментарий