Как настроить понижающий модуль LM2596 на 5 V или 3,3 V
Как настроить LM2596: выставить 5 V или 3,3 V подстроечным резистором по мультиметру, питать Arduino и сервоприводы от 12 V, а также нагрев, ток и сравнение с 7805.
Настроить LM2596 — значит подать питание на вход модуля и крутить латунный винт синего подстроечного резистора, измеряя выход мультиметром, пока он не покажет нужное напряжение, например 5 V или 3,3 V. Понижающий (step-down, buck) модуль LM2596 — дешёвый и очень распространённый стабилизатор напряжения: он с высоким КПД превращает 12 V от блока питания, автомобильного аккумулятора или сборки 2S Li-ion в более низкое напряжение для Arduino, ESP32, сервоприводов и светодиодных лент. Он принимает на вход 4,5–40 V, понижает их до любого значения примерно от 1,25 V до 35 V и отдаёт до 3 A. Золотое правило умещается в одно предложение: всегда настраивай и измеряй выход до того, как подключить нагрузку.
В этом руководстве разберём, как работает понижающий преобразователь, какие у модуля выводы и детали, как пошагово выставить 5 V и 3,3 V подстроечным резистором по мультиметру и как формула Vout = 1,23 × (1 + R2 / R1) задаёт выходное напряжение. Затем посмотрим, как питать Arduino и сервоприводы от 12 V, поговорим об ограничении тока и нагреве, КПД и отличиях от 7805, о частых ошибках (переполюсовка, просадка напряжения под нагрузкой), а в конце перейдём к коду, который измеряет выход с помощью Arduino, ESP32 и Raspberry Pi Pico.

Что такое LM2596 и как он работает?
LM2596 — это импульсная микросхема понижающего стабилизатора; её разработала National Semiconductor, а сегодня выпускает Texas Instruments. Линейные стабилизаторы вроде 7805 избавляются от лишнего напряжения, превращая его в тепло; LM2596 же включает и выключает свой внутренний силовой транзистор примерно 150 000 раз в секунду (150 kHz). Пока транзистор открыт, ток идёт через катушку индуктивности к нагрузке, и катушка запасает энергию в магнитном поле; когда транзистор закрывается, катушка продолжает отдавать эту энергию нагрузке через диод Шоттки. Выходной конденсатор сглаживает эти импульсы. Доля времени, в течение которой транзистор открыт, называется коэффициентом заполнения (duty cycle), и он примерно равен D ≈ Vout / Vin: чтобы получить 5 V из 12 V, ключ открыт около 42% времени.
Поскольку энергия не сжигается впустую, КПД составляет около 80–90%, а ток, потребляемый от входа, меньше, чем ток, отдаваемый на выходе: модуль, выдающий 2 A при 5 V от 12 V, берёт от входа всего около 1 A. За стабильность выходного напряжения отвечает пин FB (обратная связь, feedback). Микросхема сравнивает напряжение на FB со своим внутренним опорным напряжением 1,23 V и соответственно меняет коэффициент заполнения. В готовом модуле одно плечо делителя напряжения, идущего на пин FB, — это многооборотный подстроечный резистор; поворот винта меняет коэффициент деления, а значит, и выходное напряжение. Существуют и версии LM2596 с фиксированным выходом 3,3 V, 5 V и 12 V, но в мире Arduino чаще всего встречается синий модуль на регулируемой (ADJ) версии.
| Параметр | Микросхема LM2596 (даташит) | Готовый модуль (типично) |
|---|---|---|
| Входное напряжение | 4,5–40 V (абсолютный максимум 45 V) | 4,5–40 V; минимум на 1,5–2 V выше выхода |
| Выходное напряжение | ADJ: 1,23–37 V; фиксированные: 3,3 / 5 / 12 V | Примерно 1,25–35 V подстроечным резистором |
| Выходной ток | 3 A | Около 2 A длительно без радиатора, 3 A с радиатором |
| Частота переключения | 150 kHz (127–173 kHz) | 150 kHz |
| Опорное напряжение обратной связи | 1,23 V | 1,23 V |
| КПД | 73–90% (в зависимости от напряжения и тока) | Обычно 80–88% при 12 V → 5 V |
| Ток покоя | Тип. 5 mA, макс. 10 mA; 80 µA при отключении через ON/OFF | 5–10 mA + светодиод питания (если есть) |
| Ограничение тока | Тип. 4,5 A в пике (3,6–6,9 A) | Не регулируется (настройка есть только у версий CC/CV) |
| Защита | Ограничение тока и тепловая защита | Защиты от переполюсовки нет |
Выводы модуля и детали на плате
У синего модуля LM2596 четыре точки подключения: IN+ и IN− — вход, OUT+ и OUT− — выход. IN− и OUT− соединены на плате; понижающий преобразователь не развязывает вход и выход, поэтому у источника, модуля и питаемой платы общая GND. На плате стоят пятивыводная микросхема LM2596S (корпус TO-263: VIN, выход, GND, FB и ON/OFF), большая катушка индуктивности на 33–47 µH, обычно с маркировкой 330 или 470, диод Шоттки на 3 A вроде SS34, по электролитическому конденсатору на входе и выходе (обычно 100–220 µF) и многооборотный подстроечный резистор с маркировкой 103 (10 kΩ). Маркировку катушки можно расшифровать в утилите кодов катушек индуктивности. На большинстве модулей вывод ON/OFF микросхемы соединён с GND, поэтому модуль начинает работать сразу после подачи питания.
| Вывод модуля | Назначение | Куда подключается |
|---|---|---|
| IN+ | Плюс входа (4,5–40 V) | Плюс блока питания, аккумулятора или батарейного блока |
| IN− | Минус входа (GND) | Минус источника |
| OUT+ | Плюс стабилизированного выхода | Пин 5V или Vin на Arduino, 5V на ESP32, VSYS на Pico, красный провод сервопривода |
| OUT− | Минус выхода (та же GND, что и IN−) | GND платы, коричневый или чёрный провод сервопривода |
Как пошагово настроить LM2596: 5 V или 3,3 V по мультиметру
- Ничего не подключай к выходу. Модуль настраивают без нагрузки; Arduino или ESP32 подключают только после того, как на выходе видно правильное напряжение.
- Подключи ко входу реальный источник, который будет в проекте (например, блок питания 12 V 2 A): плюс к IN+, минус к IN−. Если на плате есть светодиод, он загорится.
- Переключи мультиметр на постоянное напряжение (диапазон 20 V или автовыбор); красный щуп приложи к OUT+, чёрный — к OUT−. Первое показание может быть близко к входному напряжению: заводская настройка заранее неизвестна.
- Маленькой плоской отвёрткой поверни латунный винт подстроечного резистора на 2–3 оборота в одну сторону и посмотри на дисплей. Если напряжение падает, направление верное; если растёт, крути в другую сторону. Направление может отличаться от модуля к модулю — это зависит от того, как подстроечный резистор разведён на плате.
- У многооборотного подстроечного резистора примерно на 25 оборотов весь диапазон может занять 20 оборотов и больше. Упора у винта нет: в конце он прокручивается с едва слышным щелчком, и напряжение перестаёт меняться. В этом случае крути обратно.
- Ближе к цели продолжай четвертями оборота, а затем ещё мельче. Для 5 V оставь значение в пределах 5,00–5,10 V, для 3,3 V — в пределах 3,30–3,35 V. На платах с питанием 3,3 V, таких как ESP32 и Pico, ни в коем случае не превышай 3,6 V.
- Подключи нагрузку или проверь модуль резистором 10 Ω / 5 W, который при 5 V потребляет около 500 mA, и повтори измерение под нагрузкой. Если напряжение падает больше чем на 0,1–0,2 V, проверь источник и провода.
- В конце капни на винт подстроечного резистора лаком для ногтей или термоклеем: на вибрирующих роботах настройка со временем может уплыть.
Формула выхода: Vout = 1,23 × (1 + R2 / R1)
LM2596 подстраивает выход так, чтобы на пине FB было 1,23 V. Если назвать резистор между выходом и FB R2, а резистор между FB и GND — R1, то выход равен Vout = 1,23 × (1 + R2 / R1). В модуле место R2 занимает подстроечный резистор на 10 kΩ, а R1 — небольшой постоянный резистор на плате. Из формулы следуют два важных вывода: даже если R2 близок к нулю, выход не опустится ниже 1,23 V; и как бы ни рос R2, выход не может превысить вход. Если выкрутить подстроечный резистор слишком высоко, микросхема держит ключ постоянно открытым, и выход застревает примерно на 1–2 V ниже входа. Это самая частая причина жалобы «модуль не понижает напряжение».
Если в вибрирующем или долговечном проекте нужны постоянные резисторы вместо подстроечного, следуй даташиту и выбирай R1 от 240 Ω до 1,5 kΩ. При R1 = 1 kΩ для 5 V получается R2 = 1 kΩ × (5 / 1,23 − 1) ≈ 3,07 kΩ; с резистором 3,09 kΩ точностью 1% выход будет 5,03 V. Для 3,3 V R2 ≈ 1,68 kΩ, а резистор 1,69 kΩ (1%) даёт 3,31 V. По сути это обычный делитель напряжения; соотношения можно проверить в утилите делителя напряжения.
| Нужный выход | Рекомендуемый минимальный вход | Типичное применение |
|---|---|---|
| 3,3 V | 5 V | Пин 3V3 на ESP32 или Pico, датчики на 3,3 V |
| 4,0–4,1 V | 6 V | GSM-модуль SIM800L |
| 5,0 V | 7 V | Пин 5V на Arduino, пин 5V на ESP32, сервоприводы SG90, светодиоды WS2812B |
| 6,0 V | 8 V | Сервоприводы MG996R (верхний предел для SG90 и MG90S) |
| 7,5–9 V | 10–11 V | Гнездо питания (DC) или пин Vin на Arduino |
| 12 V | 14–15 V | Вентиляторы, реле и светодиодные ленты на 12 V от системы 24 V |
Минимальные входные напряжения в таблице даны для нагрузки 2–3 A: на ключе LM2596 при 3 A падает типично 1,16 V, ещё несколько сотен милливольт добавляют катушка и провода. При лёгкой нагрузке (около 1 A) разница снижается примерно до 1,5 V. Сборка 2S Li-ion на 7,4 V по мере разряда проседает примерно до 6,4 V; этого всё ещё хватает для линии 5 V на 1 A, но не для линии сервоприводов на 6 V. Как настроить питание для GSM-модуля, которому нужно 4 V, рассказано в статье SIM800L.
Питание Arduino от блока питания или аккумулятора на 12 V
Есть два правильных способа питать Arduino через LM2596. Первый — выставить на модуле 5,0 V и подключить выход прямо к пину 5V. Так стабилизатор платы остаётся в стороне, тепла почти нет, и это самый эффективный вариант; но плату уже ничто не защищает. Если подстроечный резистор уплывёт или модуль сломается и начнёт пропускать вход на выход, 12 V попадут прямо на микроконтроллер. Если при таком подключении вставить ещё и USB-кабель, питание USB компьютера и выход модуля окажутся соединены; при загрузке кода безопаснее всего отключать модуль.
Второй способ — выставить на модуле 7,5–9 V и подключить его к гнезду питания (DC) или к пину Vin. Тогда окончательную стабилизацию выполняет стабилизатор платы, а диод на входе гнезда защищает от переполюсовки. Можно подать 12 V прямо в гнездо, это тоже работает, но при нагрузке 200 mA маленький стабилизатор платы выделяет (12 − 5) × 0,2 = 1,4 W тепла; если выставить LM2596 на 7,5 V, потери падают до (7,5 − 5) × 0,2 = 0,5 W. Все варианты питания собраны в статье Как питать Arduino, а расположение пинов — в статье Распиновка Arduino Uno.
| Подключение | Настройка LM2596 | Плюс | Внимание |
|---|---|---|---|
| Пин 5V на Arduino | 5,0–5,1 V | Самый «холодный» и эффективный вариант | Защиты нет; не подключай USB одновременно |
| Гнездо питания (DC) на Arduino | 7,5–9 V | Защищают диод от переполюсовки и стабилизатор платы | На диоде падает около 0,7 V |
| Пин Vin на Arduino | 7,5–9 V | Гнездо не нужно, защищает стабилизатор платы | Защиты от переполюсовки нет |
| Пин 5V (VIN) на ESP32 | 5,0 V | Встроенный LDO-стабилизатор выдаёт 3,3 V | Никогда не подавай 5 V на пин 3V3 |
| Пин 3V3 на ESP32 | 3,30 V | Стабилизатор платы не участвует | Выше 3,6 V ESP32 может выйти из строя |
| Пин VSYS на Pico | 5,0 V | VSYS принимает 1,8–5,5 V | Если подключён и USB, добавь диод Шоттки |
Питание сервоприводов и моторов: считаем ток
Чаще всего LM2596 используют для питания сервоприводов. SG90 в движении потребляет 100–250 mA, а при старте и под нагрузкой ток подскакивает до 600–700 mA. MG996R при заторможенном валу на 6 V доходит примерно до 2,5 A. Выбирая модуль, считай не средний ток, а сумму токов всех сервоприводов, которые могут нагрузиться одновременно. От LM2596 без радиатора реально ожидать 2 A длительно: 3 сервопривода SG90 работают спокойно, а питать от одного модуля робот-манипулятор с 4–6 MG996R — верный путь к перезагрузкам и дрожанию. В таком случае ставь отдельный модуль на каждые один-два сервопривода или модуль на 5 A вроде XL4015.

Стоит посчитать и входной ток: если блок питания не справляется, выход проседает, каким бы хорошим ни был модуль. Формула: Iin = (Vout × Iout) / (Vin × η). Для 2 A при 5 V от 12 V с КПД 85% получается Iin = 10 W / (12 V × 0,85) ≈ 0,98 A, так что блока питания 12 V 2 A достаточно. Та же нагрузка от батарейного блока 2S на 7,4 V берёт около 1,6 A. Электролитический конденсатор на 470–1000 µF рядом с линией сервоприводов берёт пусковые токи на себя вместо модуля. Все способы победить перезагрузки из-за сервоприводов собраны в статье Arduino постоянно перезагружается, а о подключении сервоприводов — в статьях Что такое сервопривод и Сервопривод MG996R.
Ограничение тока, нагрев и радиаторы
Понижающий преобразователь эффективен, но не без потерь. Теряемая мощность примерно равна Pпотерь = Pвых × (1/η − 1) и делится между микросхемой, диодом Шоттки и катушкой. При выходе 5 V 2 A (10 W) и КПД 85% выделяется около 1,8 W тепла. LM2596S на модуле — это корпус TO-263, припаянный к небольшой медной площадке; по даташиту его тепловое сопротивление к воздуху составляет 30–50 °C/W в зависимости от площади меди. Поэтому при 2 A микросхема нагревается так, что палец долго не удержать, а при 3 A без маленького клеящегося алюминиевого радиатора и обдува не обойтись. Внутри закрытого корпуса эти пределы ещё ниже.
| Нагрузка (12 V → 5 V) | Выходная мощность | Оценка потерь | Состояние |
|---|---|---|---|
| 0,5 A | 2,5 W | ~0,4 W | Тёплый, радиатор не нужен |
| 1 A | 5 W | ~0,8 W | Горячий, но терпимо |
| 2 A | 10 W | ~1,8 W | Очень горячий, нужен обдув |
| 3 A | 15 W | ~3,5 W | Обязательны радиатор и вентилятор |
Ограничение тока LM2596 пользователь настроить не может. Когда пиковый ток ключа достигает примерно 4,5 A (3,6–6,9 A с учётом производственного разброса), микросхема укорачивает импульсы, при перегрузке снижает частоту, а при перегреве отключается. Эти защиты обычно спасают модуль при коротком замыкании, но предохранитель они не заменяют. Для задач, где нужно задавать ток, например для питания мощного светодиода или лабораторного источника с ограничением тока, есть модули LM2596 CC/CV (постоянный ток / постоянное напряжение) со вторым подстроечным резистором для тока. Если нужна линия, устойчивая к коротким замыканиям, поставь на вход ещё и предохранитель подходящего номинала.
КПД и сравнение с 7805
Если сравнить с стабилизатором напряжения 7805, который делает ту же работу, масштаб разницы становится очевиден. Отдавая 1 A при 5 V от 12 V, 7805 и от входа берёт 1 A, превращая в тепло (12 − 5) × 1 = 7 W; его КПД всего 42%, и ему нужен большой радиатор. LM2596 при той же нагрузке берёт от входа около 0,49 A и теряет меньше 1 W. В проектах с батарейным питанием эта разница напрямую превращается во время работы: если КПД удваивается, батарея служит примерно вдвое дольше.
Плата за импульсный преобразователь — шум. По даташиту пилообразные пульсации на выходе обычно составляют 0,5–3% выходного напряжения, то есть 25–150 mV при 5 V, а сверху добавляется шум переключения на 150 kHz. Для Arduino, сервоприводов, реле и светодиодов это не проблема, но заметно, если питать точные аналоговые измерения, микрофон или усилитель звука. В таких случаях сочетай оба варианта: сначала понизь напряжение до 7–8 V с LM2596, затем получи чистые 5 V с 7805 или LDO-стабилизатором — так выигрываешь и в КПД, и в тишине. Для небольших опытов с малым током на макетной плате удобен готовый модуль питания MB102 для макетной платы.
| Параметр | LM2596 (импульсный) | 7805 (линейный) | AMS1117-3.3 (LDO) |
|---|---|---|---|
| Принцип работы | Переключение на 150 kHz, энергия запасается в катушке | Превращает лишнее напряжение в тепло | Превращает лишнее напряжение в тепло |
| КПД от 12 V | 80–90% | ~42% при выходе 5 V | ~27% при выходе 3,3 V (вход макс. 15 V) |
| Максимальный ток | 3 A (на практике 2 A длительно) | 1–1,5 A | 0,8–1 A |
| Минимальная разница вход–выход | ~1,5–2 V | ~2 V | ~1,1–1,3 V |
| Шум на выходе | Пульсации в десятки mV | Очень низкий | Очень низкий |
| Настройка выхода | 1,25–35 V подстроечным резистором | Фиксированные 5 V | Фиксированные 3,3 V |
| Ток покоя | 5–10 mA | 3–8 mA | ~5 mA |
| Лучше всего подходит для | Большой разницы напряжений, большого тока, батарей | Малой разницы, малого тока, тихого питания | 3,3 V от 5 V, несколько сотен mA |




Измеряем выход LM2596 под нагрузкой с Arduino
Лучший способ понять, насколько проседает напряжение под нагрузкой, — измерить просадку, пока нагрузка работает. Код ниже непрерывно поворачивает сервопривод туда и обратно между 0 и 180 градусами и выводит в монитор порта наименьшее и наибольшее напряжение на выходе LM2596. Подключение такое: красный провод сервопривода идёт на OUT+, коричневый — на OUT−, сигнальный — на D9; между OUT+ и GND собирается делитель напряжения из резисторов 47 kΩ и 10 kΩ, а его средняя точка подключается к A0. Arduino питается по USB, а OUT− обязательно соединяется с GND на Arduino.
1// LM2596 yük testi: servo dönerken çıkış gerilimini izle / LM2596 load test: watch the output while a servo moves
2// Kart: Arduino Uno / Nano (ATmega328P) / Board: Arduino Uno / Nano (ATmega328P)
3#include <Servo.h>
4
5const int SENSE_PIN = A0; // OUT+ -> 47k -> A0 -> 10k -> GND
6const int SERVO_PIN = 9; // servo sinyal kablosu / servo signal wire
7const float R_TOP = 47000.0; // bölücü üst direnç / divider top resistor
8const float R_BOTTOM = 10000.0; // bölücü alt direnç / divider bottom resistor
9const float AREF_V = 1.1; // dahili referans, multimetreyle düzelt / internal reference, calibrate with a multimeter
10const float LOW_LIMIT = 4.6; // 5 V hat için uyarı sınırı / warning limit for a 5 V rail
11
12Servo servo;
13float vMin, vMax;
14
15float readOutput() {
16 long sum = 0;
17 for (int i = 0; i < 8; i++) {
18 sum += analogRead(SENSE_PIN); // 8 örneğin toplamı / sum of 8 samples
19 }
20 float vPin = (sum / 8.0) * AREF_V / 1023.0;
21 return vPin * (R_TOP + R_BOTTOM) / R_BOTTOM; // bölücüyü geri hesapla / undo the divider
22}
23
24void track() {
25 float v = readOutput();
26 if (v < vMin) vMin = v; // en düşük değer / lowest value
27 if (v > vMax) vMax = v; // en yüksek değer / highest value
28}
29
30void setup() {
31 Serial.begin(9600);
32 analogReference(INTERNAL); // 1,1 V referans, beslemeden bağımsız / 1.1 V reference, independent of the supply
33 for (int i = 0; i < 10; i++) { // referans otursun, ilk okumaları at / let the reference settle, drop first readings
34 analogRead(SENSE_PIN);
35 delay(5);
36 }
37 servo.attach(SERVO_PIN);
38}
39
40void loop() {
41 vMin = 99.0;
42 vMax = 0.0;
43 for (int a = 0; a <= 180; a += 2) { // 0 -> 180 derece / 0 -> 180 degrees
44 servo.write(a);
45 for (int k = 0; k < 5; k++) { track(); delay(2); }
46 }
47 for (int a = 180; a >= 0; a -= 2) { // 180 -> 0 derece / 180 -> 0 degrees
48 servo.write(a);
49 for (int k = 0; k < 5; k++) { track(); delay(2); }
50 }
51 Serial.print(F("Min: "));
52 Serial.print(vMin, 2);
53 Serial.print(F(" V Max: "));
54 Serial.print(vMax, 2);
55 Serial.print(F(" V Dusus / Drop: "));
56 Serial.print(vMax - vMin, 2);
57 Serial.println(F(" V"));
58 if (vMin < LOW_LIMIT) {
59 Serial.println(F("UYARI: gerilim cok dusuyor / WARNING: voltage sags too much"));
60 }
61 delay(1000);
62}Вместо собственного напряжения питания Arduino код использует внутреннее опорное напряжение ATmega328P 1,1 V (analogReference(INTERNAL)), поэтому результат не зависит от того, даёт USB 4,7 V или 5,1 V. С делителем 47k/10k можно измерить максимум около 6,2 V; на линии сервоприводов 6 V, чтобы учесть допуск опорного напряжения, поставь верхний резистор на 56 kΩ и измени константу R_TOP. Внутреннее опорное напряжение может отличаться от микросхемы к микросхеме примерно на ±10%, поэтому один раз измерь выход мультиметром и подправь AREF_V (например, 1.08), пока результаты не совпадут. Если при движении сервопривода просадка превышает 0,3 V, укороти провода, возьми провод потолще и добавь 470 µF на линию сервоприводов; если она меньше 0,1 V, питание в порядке.
ESP32: питание от аккумулятора 12 V и контроль его заряда
Питать ESP32 от аккумулятора на 12 V — частый сценарий для садовой станции датчиков или автомобильного трекера. Выставь LM2596 на 5,0 V и подключи к пину 5V (VIN) платы ESP32; 3,3 V выдаст собственный LDO-стабилизатор платы. Короткие всплески тока, которые ESP32 потребляет при передаче по Wi-Fi, LM2596 покрывает без труда; симптомы слабого питания подробно описаны в статье Ошибка brownout на ESP32. Код ниже читает напряжение аккумулятора на GPIO34 через делитель 100 kΩ / 22 kΩ и, когда напряжение опускается до безопасного нижнего предела свинцово-кислотного аккумулятора, отправляет ESP32 в глубокий сон на 10 минут.
1// ESP32: LM2596 ile 12 V aküden beslen, aküyü izle / ESP32: run from a 12 V battery via an LM2596, monitor the battery
2#include <Arduino.h>
3#include "esp_sleep.h"
4
5const int BAT_PIN = 34; // GPIO34: yalnız giriş, ADC1 / input-only, ADC1
6const float RATIO = (100.0 + 22.0) / 22.0; // 100k / 22k bölücü (~5,55) / divider (~5.55)
7const float LOW_V = 11.8; // kurşun asit akü alt sınırı / lead-acid low limit
8const uint64_t SLEEP_US = 10ULL * 60 * 1000000; // 10 dakika (mikrosaniye) / 10 minutes (microseconds)
9
10float batteryVolts() {
11 uint32_t mv = 0;
12 for (int i = 0; i < 16; i++) {
13 mv += analogReadMilliVolts(BAT_PIN); // kalibre edilmiş mV / calibrated mV
14 }
15 return mv / 16.0 / 1000.0 * RATIO; // bölücüyü geri hesapla / undo the divider
16}
17
18void setup() {
19 Serial.begin(115200);
20 delay(200);
21}
22
23void loop() {
24 float v = batteryVolts();
25 Serial.printf("Aku / Battery: %.2f V\n", v);
26 if (v < LOW_V) {
27 Serial.println("Aku zayif, 10 dk uyku / Battery low, sleeping 10 min");
28 Serial.flush();
29 esp_sleep_enable_timer_wakeup(SLEEP_US); // zamanlayıcıyla uyan / wake up by timer
30 esp_deep_sleep_start(); // derin uyku / deep sleep
31 }
32 delay(5000);
33}Делитель понижает даже зарядное напряжение 14,4 V примерно до 2,6 V, так что значение остаётся в пределах диапазона АЦП ESP32. Свинцово-кислотный аккумулятор в покое полностью заряжен примерно при 12,6–12,8 V; падение ниже 11,8 V приближает его к глубокому разряду и сокращает срок службы. Есть одна загвоздка: сам LM2596 даже без нагрузки потребляет 5–10 mA. Пока ESP32 в глубоком сне тратит лишь микроамперы, модуль расходует 120–240 mAh в сутки, и аккумулятор на 7 Ah только из-за этого садится за 1–2 месяца. Посчитать со своими значениями можно в калькуляторе времени работы от батареи. Для проектов, которые будут спать месяцами, нужен модуль с выведенным пином EN (ON/OFF), чтобы полностью отключать питание, или понижающий преобразователь с очень малым током покоя; техники сна подробно разобраны в статье Глубокий сон ESP32.
Помощник для настройки на Raspberry Pi Pico (MicroPython)
Если хочется следить за настройкой на экране компьютера, Pico можно использовать как простой вольтметр. АЦП Pico читает максимум 3,3 V, поэтому подключи выход LM2596 к GP26 через делитель 100 kΩ и 10 kΩ; при таком соотношении можно безопасно измерять до 36 V, так что Pico не пострадает, даже если ещё не настроенный модуль выдаёт напряжение, близкое ко входному. Pico питается по USB, земли соединены. В зависимости от цели код выводит «high» (выше) или «low» (ниже) и зажигает встроенный светодиод, когда выход попадает в пределы ±1%. Если Pico в новинку, начни со статьи Что такое Raspberry Pi Pico?.
1# Pico: LM2596 ayar yardımcısı / Pico: LM2596 adjustment helper
2from machine import ADC, Pin
3import time
4
5adc = ADC(26) # GP26 (ADC0): OUT+ -> 100k -> GP26 -> 10k -> GND
6led = Pin("LED", Pin.OUT) # dahili LED (Pico ve Pico W) / onboard LED (Pico and Pico W)
7RATIO = (100 + 10) / 10 # bölücü oranı 11, en fazla ~36 V / divider ratio 11, up to ~36 V
8VREF = 3.3 # ADC referansı (V) / ADC reference (V)
9CAL = 1.000 # multimetreyle düzeltme katsayısı / multimeter correction factor
10TARGET = 5.00 # hedef: 5.00 ya da 3.30 / target: 5.00 or 3.30
11
12def read_volts(n=64):
13 total = 0
14 for _ in range(n):
15 total += adc.read_u16() # 0-65535 ham değer / raw value
16 return total / n / 65535 * VREF * RATIO * CAL
17
18while True:
19 v = read_volts()
20 err = (v - TARGET) / TARGET * 100 # hedeften sapma (%) / deviation from target (%)
21 led.value(abs(err) <= 1.0) # ±%1 içinde LED yanar / LED on within ±1%
22 if err > 1.0:
23 hint = "yuksek, dusur / high, lower it"
24 elif err < -1.0:
25 hint = "dusuk, artir / low, raise it"
26 else:
27 hint = "tamam / OK"
28 print("{:.2f} V {:+.1f} % {}".format(v, err, hint))
29 time.sleep(0.3)АЦП Pico может ошибаться примерно на 1–2%, поэтому один раз подправь коэффициент CAL, сравнив показания с мультиметром; окончательную настройку всё равно лучше подтвердить мультиметром. Если потом захочется питать от LM2596 и саму Pico, подключи выход 5,0 V к пину VSYS через диод Шоттки 1N5819; диод не даёт двум источникам работать друг против друга, когда подключён USB. Никогда не подключай выход модуля к пину 3V3 на Pico.
Идеи проектов с LM2596
- Робот-машинка: сборка 2S из 18650 (7,4 V) питает моторы напрямую через L298N, а LM2596, выставленный на 5 V, — Arduino и датчики. Шаги описаны в статье Как собрать робот-машинку на Arduino.
- Робот-манипулятор: с LM2596, выставленным на 6 V, сделай для сервоприводов MG996R мощную линию питания, независимую от Arduino; подробности — в руководстве Робот-манипулятор на Arduino.
- Умная теплица на 12 V: один блок питания 12 V питает вентилятор и насос, а LM2596 от той же линии выдаёт 5 V для Arduino, реле и LCD; смотри проект умной теплицы.
- Регулируемый лабораторный блок питания: собери небольшой источник из LM2596, старого блока питания от ноутбука и цифрового вольтметра на Arduino, который показывает выходное напряжение на дисплее.
- Светодиодная лента WS2812B: 60 светодиодов на полном белом могут потреблять до 3,6 A; ограничь яркость и держись ниже 2 A с LM2596 на 5 V. Расчёт тока — в статье WS2812B NeoPixel.
- Устройство на ESP32 для автомобиля: понизь напряжение бортовой сети 12–14,4 V до 5 V; поставь на вход предохранитель, а от выбросов напряжения в машине — TVS-диод.
Частые ошибки и как их исправить
| Симптом | Вероятная причина | Решение |
|---|---|---|
| Выход почти равен входу (например, 11 V при 12 V) | Подстроечный резистор в крайнем верхнем положении или цель выше входного напряжения | Без нагрузки, измеряя, поверни на 10–20 оборотов в сторону уменьшения |
| Значение не меняется при вращении подстроечного резистора | Многооборотный подстроечный резистор прокручивается в крайнем положении | Поверни на 5–10 оборотов в обратную сторону; если ничего не меняется, модуль, возможно, неисправен |
| 5 V падают до 4,3 V при подключении нагрузки | Блок питания не тянет ток, мала разница вход–выход или провода слишком тонкие | Измерь вход под нагрузкой, оставь запас не меньше 2 V, используй короткие толстые провода |
| Arduino перезагружается, когда двигается сервопривод | Сервопривод и Arduino питаются от одной слабой линии | Отдельный модуль для сервоприводов, конденсатор 470–1000 µF и общая GND |
| Модуль через несколько минут отключается и снова включается | Срабатывает тепловая защита | Снизь нагрузку, добавь радиатор и обдув или перейди на модуль на 5 A |
| После переполюсовки на выходе 0 V или то же, что на входе | Сгорели микросхема и диод | Замени модуль и поставь на вход последовательный диод Шоттки |
| Шум в аналоговых измерениях или в звуке | Пульсации переключения на 150 kHz | Поставь на выход LC-фильтр или используй связку «импульсный + LDO», делай путь GND коротким |
| Настройка со временем уплывает | Вибрация провернула подстроечный резистор | Зафиксируй подстроечный резистор лаком для ногтей или силиконом либо используй постоянные резисторы |
Если LM2596 правильно настроен, разница между входом и выходом достаточна, а предел 2 A соблюдается, это одна из самых практичных деталей, чтобы питать проект от одного блока питания или аккумулятора. Запомни порядок: сначала настройка без нагрузки, затем измерение под нагрузкой и только в конце подключение платы. В приложении BlueGrays есть проекты, которым нужно отдельное питание, — «Машинка на L298N с управлением по Bluetooth», «Робот, объезжающий препятствия», проекты с сервоприводами, «Хореография сервоприводов по кругу — анимации на 32 сервоприводах», «Работа со светодиодной лентой WS2812B», «Цифровой вольтметр с LCD-дисплеем» и «Умная станция полива» — с пошаговыми схемами подключения и кодом.
Частые вопросы
Как настроить LM2596?
Подключи источник ко входу и, ничего не подключая к выходу, приложи щупы мультиметра к OUT+ и OUT−. Вращай винт синего подстроечного резистора маленькой отвёрткой и остановись, когда увидишь нужное значение (например, 5,00 V). В конце подключи нагрузку и повтори измерение под нагрузкой.
Какой ток может отдать LM2596?
Микросхема LM2596 рассчитана на 3 A, а её внутреннее ограничение тока срабатывает при пиковом токе около 4,5 A. Готовые модули спокойно работают примерно на 2 A длительно без радиатора; для 3 A нужны радиатор и обдув. Поддельные микросхемы на дешёвых модулях могут выдавать меньше, поэтому надёжнее всего рассчитывать на 2 A.
В какую сторону крутить подстроечный резистор LM2596, чтобы поднять напряжение?
Направление может отличаться от модуля к модулю — это зависит от того, как подстроечный резистор разведён на плате, поэтому не полагайся на память. Поверни винт на 2–3 оборота в одну сторону и посмотри на мультиметр; если напряжение падает, это направление его уменьшает. У подстроечного резистора около 25 оборотов и нет упора, поэтому в конце он просто прокручивается со щелчком.
Почему выходное напряжение LM2596 не понижается?
Чаще всего подстроечный резистор стоит в крайнем верхнем положении; у многооборотного резистора может понадобиться 10–20 оборотов, прежде чем напряжение начнёт меняться. Если выставленное значение выше входного, выход застревает на 1–2 V ниже входа. Если никакое вращение ничего не меняет, а выход равен входу, микросхема пробита внутри; замени модуль.
Как питать Arduino через LM2596?
Можно выставить на модуле 5,0 V и подключить выход к пину 5V на Arduino; это самый «холодный» способ, но плату тогда ничто не защищает. Безопаснее выставить на модуле 7,5–9 V и подключить его к гнезду питания (DC) или к пину Vin. В обоих случаях OUT− модуля обязательно соединяется с GND на Arduino.
LM2596 или 7805: что лучше?
Когда разница между входом и выходом велика, а ток большой, LM2596 намного лучше: при понижении с 12 V до 5 V на токе 1 A 7805 выделяет 7 W тепла, а потери LM2596 меньше 1 W. Если разница маленькая, ток малый и нужно тихое питание, 7805 проще. В чувствительных аналоговых схемах их можно ставить друг за другом.
Что собрать после прочтения
Все проекты
Цифровой вольтметр с LCD-дисплеем
Узнай, какое напряжение даёт батарейка или блок питания, с помощью измерителя, собранного своими руками. Делитель из двух резисторов понижает высокое напряжение до уровня, который может прочитать плат

Работа с сервоприводом
Рычаг маленького сервопривода по очереди поворачивается в три положения: до упора в начало, ровно на середину и до упора в конец, задерживаясь на каждой остановке на две секунды. Arduino сообщает мото

Машинка на L298N с управлением по Bluetooth
Преврати телефон в пульт и управляй своей машинкой-роботом. Arduino получает команды из приложения-пульта на телефоне через Bluetooth-модуль и вращает колёса через драйвер моторов; машинка едет вперёд

Робот, объезжающий препятствия
Как насчёт того, чтобы собрать умную машину, которая сама находит дорогу? Робот, объезжающий препятствия, постоянно осматривает всё вокруг благодаря ультразвуковому датчику спереди. Встретив препятств

Хореография сервоприводов по кругу — анимации на 32 сервоприводах
Визуальный анимационный проект на Arduino Mega с 32 сервоприводами, расставленными по кругу. Сервоприводы собраны в один массив и подключены к пинам 22–53 Mega; они показывают четыре движения: хаотичное дрожание на случайных углах, синхронный взмах всех сразу, плавную волну по кругу и, наконец, стрелку компаса, качающуюся влево и вправо. Эффект бегущей волны создаётся поворотом каждого сервопривода в зависимости от его расстояния до активного.

Управление лентой WS2812B NeoPixel на ESP32
Адресуемые светодиоды WS2812B (NeoPixel) — умные RGB-светодиоды, которыми управляют цепочкой через один пин данных. В этом проекте лента WS2812B из 8 светодиодов управляется библиотекой Adafruit_NeoPixel и показывает плавную радужную анимацию. Логика 3,3V у ESP32 работает с большинством WS2812B, но на случай нестабильности показано решение с последовательным резистором 470Ω и конденсатором 1000µF. Анимация получается сдвигом значения оттенка.

Умная станция полива
Садовник, который сам поливает растения, чтобы они не засохли, пока ты в отпуске. Датчик влажности почвы измеряет, насколько влажная земля; когда она сохнет, Arduino на несколько секунд включает водян
Другие статьи
Приложение BlueGrays
Собери эту схему шаг за шагом в телефоне
Схема подключения, код и список деталей на одном экране. 200+ проектов на Arduino, ESP32 и Pico готовы к сборке.
Наведи камеру телефона
Наведи камеру на код — откроется магазин приложений на телефоне.
или открыть магазин

