Componentes · 20 min de lectura

Cómo ajustar el LM2596: convertidor reductor a 5 V y 3,3 V

Cómo ajustar el LM2596 paso a paso: 5 V o 3,3 V con el trimmer y el multímetro, alimentar Arduino y servos desde 12 V, límite de corriente, calor y el 7805.

Ajustar el LM2596 consiste en dar tensión a la entrada del módulo y girar el tornillo de latón del trimmer azul mientras mides la salida con un multímetro, hasta que marque el valor que quieres, por ejemplo 5 V o 3,3 V. El módulo reductor (step-down o buck) LM2596 es un convertidor barato y muy común que obtiene de forma eficiente una tensión más baja a partir de un adaptador de 12 V, la batería de un coche o un pack Li-ion 2S para alimentar Arduino, ESP32, servos y tiras LED. Admite de 4,5 a 40 V en la entrada, los baja a cualquier valor entre unos 1,25 V y 35 V y puede entregar hasta 3 A. La regla de oro cabe en una frase: ajusta y mide siempre la salida antes de conectar una carga.

En esta guía aprenderás cómo funciona un convertidor buck, cuáles son los pines y componentes del módulo, cómo ajustar 5 V y 3,3 V paso a paso con el trimmer y el multímetro y qué dice la fórmula Vout = 1,23 × (1 + R2 / R1) que fija la salida. Después veremos cómo alimentar Arduino y servos desde 12 V, el límite de corriente y el calentamiento, la eficiencia y la diferencia con el 7805 y los errores más comunes (polaridad invertida, caída de tensión con carga), y terminaremos con código que mide la salida con Arduino, ESP32 y Raspberry Pi Pico.

Módulo convertidor reductor buck LM2596
Módulo buck LM2596: entrada IN+ / IN−, salida OUT+ / OUT−, un trimmer azul multivuelta que fija la salida, una bobina grande que almacena energía y condensadores de entrada y salida en una sola placa.

¿Qué es el LM2596 y cómo funciona?

El LM2596 es un circuito integrado regulador reductor conmutado, desarrollado originalmente por National Semiconductor y fabricado hoy por Texas Instruments. Los reguladores lineales como el 7805 se deshacen del exceso de tensión convirtiéndolo en calor; el LM2596, en cambio, enciende y apaga su transistor de potencia interno unas 150.000 veces por segundo (150 kHz). Mientras el transistor conduce, la corriente pasa por la bobina hacia la carga y la bobina almacena energía en su campo magnético; cuando el transistor se corta, la bobina sigue entregando esa energía a la carga a través de un diodo Schottky. El condensador de salida suaviza esos pulsos. La fracción de tiempo que el transistor permanece encendido se llama ciclo de trabajo (duty cycle) y vale aproximadamente D ≈ Vout / Vin: para obtener 5 V a partir de 12 V, el interruptor está encendido cerca del 42 % del tiempo.

Como no se quema energía, la eficiencia ronda el 80–90 % y la corriente que se toma de la entrada es menor que la que se entrega a la salida: un módulo que da 2 A a 5 V desde 12 V consume solo alrededor de 1 A en la entrada. El pin FB (realimentación) mantiene estable la tensión de salida. El chip compara la tensión en FB con su referencia interna de 1,23 V y ajusta el ciclo de trabajo en consecuencia. En el módulo ya montado, una rama del divisor de tensión que llega al pin FB es un trimmer multivuelta; al girar el tornillo cambia la relación del divisor y, por tanto, la tensión de salida. También existen versiones fijas del LM2596 de 3,3 V, 5 V y 12 V, pero en el mundo Arduino lo más habitual es el módulo azul con la versión ajustable (ADJ).

CaracterísticaChip LM2596 (hoja de datos)Módulo listo (típico)
Tensión de entrada4,5–40 V (máximo absoluto 45 V)4,5–40 V; al menos 1,5–2 V por encima de la salida
Tensión de salidaADJ: 1,23–37 V; fija: 3,3 / 5 / 12 VUnos 1,25–35 V con el trimmer
Corriente de salida3 AUnos 2 A continuos sin disipador, 3 A con disipador
Frecuencia de conmutación150 kHz (127–173 kHz)150 kHz
Referencia de realimentación1,23 V1,23 V
Eficiencia73–90 % (según tensión y corriente)Típicamente 80–88 % de 12 V a 5 V
Corriente en reposoTíp. 5 mA, máx. 10 mA; 80 µA apagado con ON/OFF5–10 mA + LED de encendido (si lo tiene)
Límite de corrienteTíp. 4,5 A de pico (3,6–6,9 A)No ajustable (solo las versiones CC/CV tienen ajuste)
ProteccionesLimitación de corriente y apagado por temperaturaSin protección contra polaridad inversa

Pines del módulo y componentes de la placa

El módulo azul LM2596 tiene cuatro puntos de conexión: IN+ e IN− son la entrada, OUT+ y OUT− la salida. IN− y OUT− están unidos en la placa; un convertidor buck no aísla la entrada de la salida, así que la fuente, el módulo y la placa que alimentas comparten la misma GND. En la placa encontrarás el chip LM2596S de cinco patillas (encapsulado TO-263: VIN, salida, GND, FB y ON/OFF), una bobina grande de 33–47 µH normalmente marcada 330 o 470, un diodo Schottky de 3 A como el SS34, un condensador electrolítico en la entrada y otro en la salida (normalmente de 100–220 µF) y un trimmer multivuelta marcado 103 (10 kΩ). Puedes descifrar la marca de la bobina con la calculadora de código de bobinas. En la mayoría de los módulos el pin ON/OFF del chip va a GND, así que el módulo empieza a funcionar en cuanto recibe tensión.

Pin del móduloFunciónSe conecta a
IN+Entrada positiva (4,5–40 V)Positivo del adaptador, la batería o el pack de pilas
IN−Entrada negativa (GND)Negativo de la fuente
OUT+Salida regulada positiva5V o Vin del Arduino, 5V del ESP32, VSYS de la Pico, cable rojo del servo
OUT−Salida negativa (misma GND que IN−)GND de la placa, cable marrón o negro del servo
Los módulos LM2596 no tienen protección contra polaridad inversa. Si conectas la entrada al revés aunque sea un instante, el chip y el diodo suelen morir en el acto; a veces el chip se queda en cortocircuito por dentro y, a partir de ahí, deja pasar la entrada directamente a la salida. Antes de conectar, lee dos veces las marcas IN+ e IN−, comprueba la polaridad de la fuente con el multímetro y, en circuitos permanentes, añade un diodo Schottky en serie con la entrada (por ejemplo un SS34 o un 1N5822, con unos 0,4–0,5 V de caída). Confundir entrada y salida y conectar la fuente al lado OUT también estropea el módulo.

Cómo ajustar el LM2596 paso a paso: 5 V o 3,3 V con el multímetro

  1. No conectes nada a la salida. El módulo se ajusta sin carga; el Arduino o el ESP32 solo se conectan cuando ya has visto la tensión correcta.
  2. Conecta a la entrada la fuente real que vas a usar en el proyecto (por ejemplo un adaptador de 12 V y 2 A): el positivo a IN+ y el negativo a IN−. Si la placa tiene un LED, se enciende.
  3. Pon el multímetro en tensión continua (escala de 20 V o automática); apoya la punta roja en OUT+ y la negra en OUT−. La primera lectura puede estar cerca de la tensión de entrada, porque el ajuste de fábrica es desconocido.
  4. Con un destornillador plano pequeño, gira el tornillo de latón del trimmer 2–3 vueltas en un sentido y mira la pantalla. Si la tensión baja, vas en el sentido correcto; si sube, gira al revés. El sentido puede cambiar de un módulo a otro según cómo esté cableado el trimmer.
  5. En un trimmer multivuelta de unas 25 vueltas, recorrer todo el rango puede llevar 20 vueltas o más. El tornillo no tiene tope; al llegar al final patina con un leve clic y la tensión deja de cambiar. Si te pasa, gira en sentido contrario.
  6. Cuando te acerques al objetivo, avanza en cuartos de vuelta y luego en pasos aún más pequeños. Para 5 V déjalo entre 5,00 y 5,10 V; para 3,3 V, entre 3,30 y 3,35 V. En placas de 3,3 V como el ESP32 y la Pico no superes nunca los 3,6 V.
  7. Conecta la carga, o prueba con una resistencia de 10 Ω / 5 W que consume unos 500 mA a 5 V, y repite la medida con carga. Si la tensión cae más de 0,1–0,2 V, revisa la fuente y los cables.
  8. Al terminar, pon una gota de esmalte de uñas o de silicona caliente en el tornillo del trimmer; en robots que vibran el ajuste puede moverse con el tiempo.
¿Por qué tanto cuidado? Conectar una salida que sigue en 12 V al pin 5V del Arduino o al pin 3V3 del ESP32 destruye la placa en segundos. Si estás empezando a medir, echa un vistazo a la guía cómo usar un multímetro. Incluso en los módulos LM2596 con una pequeña pantalla de voltímetro de 3 dígitos, comprueba el primer ajuste con el multímetro; esas pantallas pueden desviarse unos 0,1 V.

La fórmula de salida: Vout = 1,23 × (1 + R2 / R1)

El LM2596 ajusta su salida para que en el pin FB haya 1,23 V. Si llamamos R2 a la resistencia entre la salida y FB, y R1 a la que va de FB a GND, la salida es Vout = 1,23 × (1 + R2 / R1). En el módulo, el trimmer de 10 kΩ ocupa el lugar de R2 y R1 es una pequeña resistencia fija de la placa. De la fórmula salen dos consecuencias importantes: aunque R2 se acerque a cero, la salida no puede bajar de 1,23 V; y por mucho que crezca R2, la salida no puede superar la entrada. Si subes demasiado el trimmer, el chip deja el interruptor encendido de forma permanente y la salida se queda atascada unos 1–2 V por debajo de la entrada. Esa es la causa más habitual de la queja "mi módulo no baja la tensión".

Si en un proyecto con vibraciones o de larga duración prefieres resistencias fijas en lugar del trimmer, sigue la hoja de datos y elige R1 entre 240 Ω y 1,5 kΩ. Con R1 = 1 kΩ, para 5 V sale R2 = 1 kΩ × (5 / 1,23 − 1) ≈ 3,07 kΩ; con una de 3,09 kΩ al 1 % la salida es de 5,03 V. Para 3,3 V sale R2 ≈ 1,68 kΩ, y con una de 1,69 kΩ al 1 % obtienes 3,31 V. En el fondo es un divisor de tensión; puedes comprobar las relaciones con la calculadora de divisor de tensión.

Salida objetivoEntrada mínima recomendadaUso típico
3,3 V5 VPin 3V3 del ESP32 o de la Pico, sensores de 3,3 V
4,0–4,1 V6 VMódulo GSM SIM800L
5,0 V7 VPin 5V del Arduino, pin 5V del ESP32, servos SG90, LED WS2812B
6,0 V8 VServos MG996R (límite superior para SG90 y MG90S)
7,5–9 V10–11 VConector DC o pin Vin del Arduino
12 V14–15 VVentiladores, relés y tiras LED de 12 V desde un sistema de 24 V

Los valores mínimos de la tabla son para una carga de 2–3 A: el interruptor del LM2596 tiene una caída típica de 1,16 V a 3 A, y la bobina y los cables añaden unos cientos de milivoltios. Con poca carga (alrededor de 1 A) la diferencia baja a unos 1,5 V. Un pack Li-ion 2S de 7,4 V cae a unos 6,4 V al descargarse; sigue bastando para una línea de 5 V a 1 A, pero no para una línea de servos de 6 V. Para ajustar un módulo GSM que necesita 4 V, consulta el artículo sobre el SIM800L.

Alimentar Arduino desde un adaptador o una batería de 12 V

Hay dos formas correctas de alimentar un Arduino con un LM2596. La primera es ajustar el módulo a 5,0 V y conectar la salida directamente al pin 5V. Como así se salta el regulador propio de la placa, casi no genera calor y es la opción más eficiente; pero ya no queda nada que proteja la placa. Si el trimmer se mueve o el módulo falla y deja pasar la entrada a la salida, los 12 V llegan directamente al microcontrolador. Si con esta conexión enchufas también el cable USB, la alimentación USB del ordenador y la salida del módulo quedan unidas; lo más seguro es desconectar el módulo mientras subes el código.

La segunda forma es ajustar el módulo a 7,5–9 V y conectarlo al conector DC o al pin Vin. Entonces el regulador de la placa hace el ajuste final y el diodo del conector DC protege contra la polaridad inversa. Meter 12 V directamente por el conector también funciona, pero con una carga de 200 mA el pequeño regulador de la placa genera (12 − 5) × 0,2 = 1,4 W de calor; si ajustas el LM2596 a 7,5 V, esa pérdida baja a (7,5 − 5) × 0,2 = 0,5 W. Tienes todas las opciones de alimentación en el artículo alimentar Arduino y la ubicación de los pines en pines del Arduino Uno.

ConexiónAjuste del LM2596VentajaCuidado
Pin 5V del Arduino5,0–5,1 VLa opción más fría y eficienteSin protección; no conectes el USB a la vez
Conector DC del Arduino7,5–9 VLo protegen el diodo antiinversión y el regulador de la placaEl diodo baja unos 0,7 V
Pin Vin del Arduino7,5–9 VNo hace falta conector, lo protege el regulador de la placaSin protección contra polaridad inversa
Pin 5V (VIN) del ESP325,0 VEl LDO de la placa genera los 3,3 VNunca metas 5 V por el pin 3V3
Pin 3V3 del ESP323,30 VSe salta el regulador de la placaPor encima de 3,6 V el ESP32 puede dañarse
Pin VSYS de la Pico5,0 VVSYS admite 1,8–5,5 VSi también hay USB, añade un diodo Schottky
Elijas la conexión que elijas, el OUT− del módulo debe unirse a la GND de la placa; en un sistema con GND separadas las señales pierden su referencia y los sensores leen valores aleatorios. Si pasas un módulo ya ajustado a otro proyecto, vuelve a medir la salida: puede que la semana pasada estuviera ajustado para una tira LED de 12 V.

Alimentar servos y motores: cálculo de la corriente

El uso más frecuente del LM2596 es la línea de servos. Un SG90 consume 100–250 mA mientras se mueve y sube a 600–700 mA al arrancar y cuando se le fuerza. Un MG996R llega a unos 2,5 A bloqueado a 6 V. Al elegir el módulo, no cuentes la media: suma la corriente de todos los servos que pueden estar forzados a la vez. Esperar 2 A continuos de un LM2596 sin disipador es realista: 3 SG90 funcionan sin problemas, pero alimentar un brazo robótico con 4–6 MG996R desde un solo módulo es buscarse reinicios y temblores. En ese caso usa un módulo aparte para cada uno o dos servos, o un módulo de 5 A como el XL4015.

Servomotor MG996R
Servo MG996R: funciona con 4,8–7,2 V y consume hasta 2,5 A cuando se le fuerza; con un LM2596 ajustado a 6 V, lo seguro es una línea aparte para cada uno o dos MG996R.

También debes calcular la corriente de entrada, porque si el adaptador no da abasto, la salida cae por muy bueno que sea el módulo. La fórmula es Iin = (Vout × Iout) / (Vin × η). Para 2 A a 5 V desde 12 V con un 85 % de eficiencia, Iin = 10 W / (12 V × 0,85) ≈ 0,98 A, así que basta un adaptador de 12 V y 2 A. La misma carga consume unos 1,6 A de un pack de baterías 2S de 7,4 V. Colocar un condensador electrolítico de 470–1000 µF junto a la línea de servos hace que las corrientes de arranque las cubra el condensador en lugar del módulo. Para todas las soluciones a los reinicios causados por servos, consulta Arduino se reinicia solo, y para conectar servos, qué es un servomotor y servo MG996R.

Límite de corriente, calentamiento y disipador

Un convertidor buck es eficiente, pero no está libre de pérdidas. La potencia perdida es aproximadamente Ppérdida = Psalida × (1/η − 1) y se reparte entre el chip, el diodo Schottky y la bobina. Con una salida de 5 V y 2 A (10 W) y un 85 % de eficiencia se generan unos 1,8 W de calor. El LM2596S del módulo va en un encapsulado TO-263 soldado a una pequeña superficie de cobre; según la hoja de datos, su resistencia térmica al aire es de 30–50 °C/W según el área de cobre. Por eso a 2 A el chip se calienta tanto que no puedes mantener el dedo encima, y a 3 A son obligatorios un pequeño disipador de aluminio adhesivo y flujo de aire. Dentro de una caja cerrada estos límites bajan aún más.

Carga (12 V → 5 V)Potencia de salidaPérdida estimadaEstado
0,5 A2,5 W~0,4 WTibio, sin disipador
1 A5 W~0,8 WCaliente pero sin problema
2 A10 W~1,8 WMuy caliente, necesita flujo de aire
3 A15 W~3,5 WDisipador y ventilador obligatorios

El límite de corriente del LM2596 no lo puede ajustar el usuario. Cuando la corriente de pico del interruptor llega a unos 4,5 A (3,6–6,9 A según la dispersión de fabricación), el chip acorta los pulsos, baja la frecuencia en sobrecarga y se apaga si se sobrecalienta. Estas protecciones suelen salvar el módulo en un cortocircuito, pero no sustituyen a un fusible. Para trabajos en los que necesitas fijar la corriente, como alimentar un LED de potencia o montar una fuente de pruebas con corriente limitada, existen módulos LM2596 CC/CV (corriente constante / tensión constante) con un segundo trimmer para la corriente. Si quieres una línea robusta frente a cortocircuitos, añade además un fusible adecuado en la entrada.

Parte de los módulos baratos del mercado llevan chips falsos o reetiquetados. Algunos funcionan a una frecuencia mucho más baja que 150 kHz, generan más rizado y se calientan y bajan la tensión mucho antes de llegar a 3 A. No te fíes de los 3 A de la etiqueta: diseña para 2 A continuos y, si necesitas más, reparte la carga entre dos módulos o pasa a un módulo más potente como el XL4015.

Eficiencia y comparación con el 7805

Al compararlo con el regulador de voltaje 7805, que hace el mismo trabajo, la diferencia queda clara. Para dar 1 A a 5 V desde 12 V, el 7805 también toma 1 A de la entrada y convierte (12 − 5) × 1 = 7 W en calor; su eficiencia es solo del 42 % y necesita un disipador grande. El LM2596 toma unos 0,49 A de la entrada con la misma carga y pierde menos de 1 W. En proyectos con baterías esta diferencia se nota directamente en la autonomía: si la eficiencia se duplica, la batería dura aproximadamente el doble.

El precio del buck es el ruido. Según la hoja de datos, el rizado en diente de sierra de la salida suele ser del 0,5–3 % de la tensión de salida, es decir, 25–150 mV a 5 V, más el ruido de conmutación de 150 kHz. Para Arduino, servos, relés y LED no es un problema, pero se nota al alimentar mediciones analógicas precisas, un micrófono o un amplificador de audio. En esos casos combina las dos cosas: baja primero a 7–8 V con el LM2596 y luego obtén 5 V limpios con un 7805 o un LDO; así ganas eficiencia y silencio. Para pequeños experimentos de poca corriente en la protoboard, un módulo de alimentación MB102 para protoboard es una opción práctica.

CaracterísticaLM2596 (buck)7805 (lineal)AMS1117-3.3 (LDO)
FuncionamientoConmutación a 150 kHz, energía almacenada en una bobinaConvierte el exceso de tensión en calorConvierte el exceso de tensión en calor
Eficiencia desde 12 V80–90 %~42 % con salida de 5 V~27 % con salida de 3,3 V (entrada máx. 15 V)
Corriente máxima3 A (en la práctica 2 A continuos)1–1,5 A0,8–1 A
Diferencia mínima entrada-salida~1,5–2 V~2 V~1,1–1,3 V
Ruido de salidaDecenas de mV de rizadoMuy bajoMuy bajo
Ajuste de salida1,25–35 V con el trimmerFija a 5 VFija a 3,3 V
Corriente en reposo5–10 mA3–8 mA~5 mA
Ideal paraGran diferencia de tensión, mucha corriente, bateríasPoca diferencia, poca corriente, alimentación silenciosa3,3 V desde 5 V, unos cientos de mA
LM2596 buck
LM2596 buck
LM7805
LM7805
AMS1117-3.3
AMS1117-3.3
MB102
MB102

Medir la salida del LM2596 con carga usando Arduino

La mejor forma de saber cuánto cae la tensión con carga es medir la caída mientras la carga funciona. El código siguiente mueve un servo sin parar entre 0 y 180 grados y, mientras tanto, muestra en el Monitor Serie la tensión más baja y la más alta vistas en la salida del LM2596. El cableado es así: el cable rojo del servo va a OUT+, el marrón a OUT− y el de señal a D9; entre OUT+ y GND montas un divisor de tensión de 47 kΩ y 10 kΩ y conectas su punto medio a A0. El Arduino se alimenta por USB y OUT− debe unirse a la GND del Arduino.

C++ (Arduino IDE)
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}

En lugar de la tensión de alimentación del propio Arduino, el código usa la referencia interna de 1,1 V del ATmega328P (analogReference(INTERNAL)), así que la medida no se ve afectada por que el USB dé 4,7 V o 5,1 V. Con el divisor 47k/10k puedes medir como máximo unos 6,2 V; en una línea de servos de 6 V, para cubrir la tolerancia de la referencia, pon 56 kΩ como resistencia superior y cambia la constante R_TOP. Como la referencia interna puede variar alrededor de un ±10 % de un chip a otro, mide la salida una vez con el multímetro y corrige AREF_V (por ejemplo 1,08) hasta que los dos resultados coincidan. Si la caída supera 0,3 V mientras gira el servo, acorta los cables, usa cable más grueso y añade 470 µF a la línea de servos; por debajo de 0,1 V, tu alimentación está sana.

ESP32: alimentarlo desde una batería de 12 V y vigilar la batería

Alimentar un ESP32 desde una batería de 12 V es un caso habitual para una estación de sensores en el jardín o un localizador en el coche. Ajusta el LM2596 a 5,0 V y conéctalo al pin 5V (VIN) de la placa ESP32; el LDO de la propia placa genera los 3,3 V. El LM2596 cubre sin esfuerzo los picos cortos de corriente que el ESP32 consume al transmitir por Wi-Fi; los síntomas de una alimentación débil se explican en detalle en el artículo error brownout del ESP32. El código siguiente lee la tensión de la batería en GPIO34 a través de un divisor de 100 kΩ / 22 kΩ y manda el ESP32 a sueño profundo durante 10 minutos cuando la tensión llega al límite inferior seguro de una batería de plomo-ácido.

C++ (Arduino IDE)
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}

El divisor reduce incluso una tensión de carga de 14,4 V a unos 2,6 V, así que te mantienes dentro del rango de medida del ADC del ESP32. Una batería de plomo-ácido en reposo está llena a unos 12,6–12,8 V; bajar de 11,8 V la acerca a la descarga profunda y acorta su vida. Hay un detalle a tener en cuenta: el propio LM2596 consume 5–10 mA incluso sin carga. Mientras el ESP32 gasta solo microamperios en sueño profundo, el módulo consume 120–240 mAh al día, y una batería de 7 Ah se agota en 1–2 meses solo por eso. Puedes hacer la cuenta con tus propios valores en la calculadora de duración de batería. En proyectos que van a dormir durante meses necesitas un módulo con el pin EN (ON/OFF) accesible para cortar la alimentación del todo, o un reductor con una corriente en reposo muy baja; las técnicas de sueño se explican en detalle en el artículo ESP32 deep sleep.

Asistente de ajuste con Raspberry Pi Pico (MicroPython)

Si quieres seguir el ajuste en la pantalla del ordenador, puedes usar la Pico como un voltímetro sencillo. Como el ADC de la Pico lee como máximo 3,3 V, conecta la salida del LM2596 a GP26 a través de un divisor de 100 kΩ y 10 kΩ; con esa relación puedes medir con seguridad hasta 36 V, así que aunque el módulo todavía sin ajustar dé una tensión cercana a la de entrada, la Pico no sufre daños. La Pico se alimenta por USB y las GND van unidas. Según el valor objetivo, el código muestra "high" o "low" y enciende el LED de la placa cuando la salida entra en el margen de ±1 %. Si eres nuevo con la Pico, empieza por ¿Qué es la Raspberry Pi Pico?.

MicroPython
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)

Como el ADC de la Pico puede equivocarse alrededor de un 1–2 %, corrige una vez el factor CAL comparando con el multímetro; aun así, lo mejor es confirmar el ajuste final con el multímetro. Si después quieres alimentar también la Pico desde el LM2596, conecta la salida de 5,0 V al pin VSYS a través de un diodo Schottky 1N5819; el diodo evita que las dos fuentes se peleen cuando el USB está conectado. Nunca conectes la salida del módulo al pin 3V3 de la Pico.

Ideas de proyectos con el LM2596

  • Coche robot: un pack 2S de 18650 (7,4 V) alimenta los motores directamente a través del L298N, y un LM2596 ajustado a 5 V alimenta el Arduino y los sensores. Los pasos están en el artículo cómo hacer un coche robot con Arduino.
  • Brazo robótico: con un LM2596 ajustado a 6 V, monta una línea potente para los servos MG996R independiente del Arduino; los detalles, en la guía del brazo robótico con Arduino.
  • Invernadero inteligente de 12 V: un solo adaptador de 12 V alimenta el ventilador y la bomba, y el LM2596 saca de la misma línea 5 V para el Arduino, los relés y la LCD; mira el proyecto de invernadero inteligente.
  • Fuente de laboratorio ajustable: con un LM2596, un viejo cargador de portátil y un voltímetro digital hecho con Arduino, monta una pequeña fuente de laboratorio que muestre la salida en pantalla.
  • Tira LED WS2812B: 60 LED en blanco a tope pueden llegar a 3,6 A; limita el brillo y quédate por debajo de 2 A con un LM2596 de 5 V. El cálculo de corriente está en el artículo WS2812B NeoPixel.
  • Dispositivo ESP32 para el coche: baja los 12–14,4 V de la batería a 5 V; añade un fusible en la entrada y un diodo TVS contra los picos de tensión del vehículo.

Errores comunes y cómo solucionarlos

SíntomaCausa probableSolución
Salida casi igual a la entrada (p. ej. 11 V con 12 V)Trimmer al máximo u objetivo mayor que la entradaSin carga, mide mientras giras 10–20 vueltas en el sentido que baja
El valor no cambia al girar el trimmerEl trimmer multivuelta patina en su extremoGira 5–10 vueltas al revés; si sigue igual, el módulo puede estar averiado
Con carga, los 5 V caen a 4,3 VEl adaptador no da la corriente, poca diferencia entrada-salida o cables finosMide la entrada con carga, deja al menos 2 V de margen, usa cables cortos y gruesos
El Arduino se reinicia cuando se mueve el servoServo y Arduino comparten la misma alimentación débilMódulo aparte para los servos, condensador de 470–1000 µF y GND común
El módulo se corta y vuelve tras unos minutosSalta la protección térmicaReduce la carga, añade disipador y flujo de aire o pasa a un módulo de 5 A
Tras invertir la polaridad, la salida da 0 V o igual a la entradaChip y diodo quemadosCambia el módulo y añade un diodo Schottky en serie con la entrada
Ruido en lecturas analógicas o en el audioRizado de la conmutación a 150 kHzAñade un filtro LC a la salida o usa buck + LDO, con un camino de GND corto
El ajuste se desplaza con el tiempoLa vibración ha girado el trimmerFija el trimmer con esmalte o silicona, o usa resistencias fijas
Cuando busques una avería, haz tres medidas: la entrada con carga, la salida con carga y la diferencia entre ambas. Si la diferencia es menor de 2 V, el problema está en la fuente; si la entrada está bien pero la salida es baja, la culpa es del módulo o del cableado. Una resistencia total de 0,1–0,2 Ω entre cables y contactos de la protoboard provoca una caída de 0,2–0,4 V a 2 A; puedes verlo con la calculadora de la ley de Ohm. No hagas pasar más de 1 A por los raíles de una protoboard. Si sospechas que la placa se ha dañado, sigue las comprobaciones de ¿Se ha quemado mi Arduino?.

Bien ajustado, con suficiente margen entre entrada y salida y sin pasar de su límite de 2 A, el LM2596 es una de las piezas más prácticas para alimentar un proyecto desde un único adaptador o batería. Recuerda el orden: primero ajusta sin carga, luego mide con carga y, por último, conecta la placa. En la app BlueGrays encontrarás proyectos que necesitan una alimentación aparte, como el coche Bluetooth con L298N, el robot que esquiva obstáculos, los proyectos con servos, la coreografía de 32 servos, el control de tiras WS2812B, el voltímetro digital con LCD y la estación de riego inteligente, con esquemas de circuito y código paso a paso.

Preguntas frecuentes

¿Cómo se ajusta un LM2596?

Conecta la fuente a la entrada y, sin nada conectado a la salida, apoya las puntas del multímetro en OUT+ y OUT−. Gira el tornillo del trimmer azul con un destornillador pequeño y para cuando veas el valor que quieres (por ejemplo 5,00 V). Por último, conecta la carga y repite la medida con carga.

¿Cuántos amperios da un LM2596?

El chip LM2596 está diseñado para 3 A y su límite interno de corriente actúa con un pico de unos 4,5 A. Los módulos montados funcionan sin problemas con unos 2 A continuos sin disipador; para 3 A hacen falta disipador y flujo de aire. Como los chips falsos de los módulos baratos pueden dar menos, lo más seguro es diseñar para 2 A.

¿Hacia qué lado se gira el trimmer del LM2596 para subir la tensión?

El sentido puede cambiar de un módulo a otro según cómo esté conectado el trimmer, así que no te fíes de lo que recuerdes. Gira el tornillo 2–3 vueltas en un sentido y mira el multímetro; si la tensión baja, ese es el sentido que la reduce. El trimmer tiene unas 25 vueltas y no tiene tope, así que al llegar al final patina con un clic.

¿Por qué no baja la tensión de salida de mi LM2596?

Lo más habitual es que el trimmer esté al máximo; en un trimmer multivuelta pueden hacer falta 10–20 vueltas antes de que la tensión empiece a cambiar. Si el valor ajustado es mayor que la entrada, la salida se queda 1–2 V por debajo de la entrada. Si por mucho que gires no cambia nada y la salida es igual a la entrada, el chip está en cortocircuito por dentro; cambia el módulo.

¿Cómo se alimenta un Arduino con un LM2596?

Puedes ajustar el módulo a 5,0 V y conectar la salida al pin 5V del Arduino; es el método más frío, pero no queda nada que proteja la placa. La opción más segura es ajustar el módulo a 7,5–9 V y conectarlo al conector DC o al pin Vin. En los dos casos, el OUT− del módulo debe ir a la GND del Arduino.

¿Qué es mejor, el LM2596 o el 7805?

Si la diferencia entre entrada y salida es grande y la corriente es alta, el LM2596 es muy superior: de 12 V a 5 V con 1 A, el 7805 genera 7 W de calor mientras que el LM2596 pierde menos de 1 W. Si la diferencia es pequeña, la corriente baja y necesitas una alimentación silenciosa, el 7805 es más sencillo. En circuitos analógicos sensibles se pueden usar los dos uno detrás de otro.

Ver todos los proyectos
Voltímetro digital con pantalla LCD
#56Intermedio
Premium

Voltímetro digital con pantalla LCD

Descubre cuánto voltaje da una pila o un adaptador con un medidor hecho por ti. Un divisor de dos resistencias baja la tensión alta a un nivel que la placa puede leer, y el Arduino calcula el valor re

4.5(27)
36
Uso del servomotor
#35Principiante
Premium

Uso del servomotor

El brazo de un pequeño servomotor gira por turnos a tres posiciones: al principio del todo, justo al centro y al final del todo, esperando dos segundos en cada parada. El Arduino le dice al motor en q

4.7(48)
67
Coche controlado por Bluetooth con L298N
#80Avanzado
Premium

Coche controlado por Bluetooth con L298N

Convierte tu móvil en un mando y conduce tu propio coche robot. El Arduino recibe por un módulo Bluetooth las órdenes de una app de control remoto en el móvil y mueve las ruedas con un controlador de

5.0(38)
65
Robot para evitar obstáculos
#81Avanzado
Premium

Robot para evitar obstáculos

¿Qué le parece construir un vehículo inteligente que encuentre su propio camino? El Robot Evitador de Obstáculos explora constantemente su entorno gracias al sensor ultrasónico que lleva delante. Cuan

5.0(38)
49
Coreografía de servos en círculo - Patrones animados con 32 servos
#102Avanzado
Premium

Coreografía de servos en círculo - Patrones animados con 32 servos

Un proyecto de animación visual que utiliza 32 servomotores dispuestos en círculo en un Arduino Mega. Los servos se gestionan en una única matriz y se conectan a los pines 22-53 de Mega para mostrar cuatro secuencias de movimiento diferentes: una vibración caótica en la que todos los servos se mueven en ángulos aleatorios, un barrido síncrono en el que todos se mueven al mismo tiempo, una onda que gira suavemente alrededor de un círculo y, por último, una aguja de brújula que oscila a izquierda

4.5(40)
62
Control de la tira NeoPixel WS2812B con ESP32
#126Intermedio
Premium

Control de la tira NeoPixel WS2812B con ESP32

Los LED direccionables WS2812B (NeoPixel) son LED RGB inteligentes que se pueden controlar en cadena a través de un único pin de datos. En este proyecto, controlaremos una tira de 8 LED WS2812B con la biblioteca Adafruit_NeoPixel para crear una animación fluida de arcoíris. Aunque el nivel lógico de 3,3 V del ESP32 funciona sin problemas en la mayoría de los componentes WS2812B, mostraremos la solución de una resistencia en serie de 470 Ω y un condensador de 1000 µF en caso de inestabilidad. La

4.9(19)
30
Estación de riego inteligente
#83Avanzado
Premium

Estación de riego inteligente

Un jardinero que riega solo tus plantas para que no se sequen mientras estás de vacaciones. Un sensor de humedad mide lo mojada que está la tierra; cuando se seca, el Arduino enciende la bomba de agua

5.0(42)
57