LM-2596 Module Without LED
Details
Summary
The LM-2596 Buck Converter Module (Without LED) is an adjustable step-down regulator based on the LM2596S. It efficiently converts a higher DC input to a lower DC output using a trimmer potentiometer. Common uses include powering microcontrollers, LED strips, and low-voltage devices from a 12 V or battery supply.
Tip: Always set the desired voltage with a multimeter before connecting sensitive electronics.
Terminals & Adjustments›
- VIN+ / VIN−: DC input (observe polarity).
- VOUT+ / VOUT−: Regulated DC output.
- ADJ: Trimmer potentiometer to set output voltage.
- Ground: VIN− and VOUT− share a common ground.
Tip: For high currents, use thicker wires and keep leads short to minimize losses.
Wiring Diagram›
Arduino Code›
Measure VOUT (Voltage Divider)
// Example: Monitor LM2596 output voltage via divider to A0
const byte SENSE = A0;
const float R1 = 100000.0; // top resistor (to Vout)
const float R2 = 33000.0; // bottom resistor (to GND)
const float VREF = 5.0;
void setup(){ Serial.begin(115200); }
void loop(){
int raw = analogRead(SENSE);
float vA0 = raw * (VREF / 1023.0);
float vOut = vA0 * ((R1 + R2) / R2);
Serial.print("Vout: "); Serial.print(vOut, 2); Serial.println(" V");
delay(500);
}
ESP Code (Arduino Core)›
ESP32/ESP8266: Sense VOUT through a divider to keep the ADC pin ≤ 3.3 V at worst case.
ESP32: ADC Read + Divider
// ESP32 dev board — divider from Vout to GPIO34 (input-only ADC)
// Keep Vadc ≤ 3.3 V at max Vout.
const int PIN_ADC = 34;
const float R1 = 100000.0; // to Vout
const float R2 = 33000.0; // to GND
void setup(){
Serial.begin(115200);
analogReadResolution(12); // 0..4095
}
void loop(){
int raw = analogRead(PIN_ADC);
float vadc = (raw / 4095.0) * 3.3;
float vout = vadc * ((R1 + R2) / R2);
Serial.printf("ADC:%d Vout:%.2f V\n", raw, vout);
delay(300);
}
ESP8266: ADC Read (A0)
// Many ESP8266 boards scale A0 to ~1.0 V. Check your board's reference.
// If needed, change 'vadc' scale or add your own divider to keep A0 ≤ reference.
const float R1 = 100000.0, R2 = 33000.0;
void setup(){ Serial.begin(115200); }
void loop(){
int raw = analogRead(A0); // 0..1023
float vadc = raw * (1.0 / 1023.0); // if 1.0 V ref on your board
float vout = vadc * ((R1 + R2) / R2);
Serial.printf("ADC:%d Vout:%.2f V\n", raw, vout);
delay(300);
}
Espressif Code (ESP-IDF)›
ESP-IDF example reading ADC1 with 11 dB attenuation (~0–3.3 V). Convert to Vout using your divider ratio.
ESP32 (ESP-IDF C): ADC + Calibration
#include "driver/adc.h"
#include "esp_adc_cal.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include
#define ADC_CH ADC1_CHANNEL_6 // GPIO34
#define SAMPLES 16
void app_main(void){
adc1_config_width(ADC_WIDTH_BIT_12);
adc1_config_channel_atten(ADC_CH, ADC_ATTEN_DB_11); // ~0..3.3 V
esp_adc_cal_characteristics_t cal;
esp_adc_cal_characterize(ADC_UNIT_1, ADC_ATTEN_DB_11, ADC_WIDTH_BIT_12, 1100, &cal);
const float R1 = 100000.0f; // to Vout
const float R2 = 33000.0f; // to GND
while (1) {
uint32_t sum = 0;
for (int i=0; i
Never exceed the ADC pin’s max input. Pick R1/R2 for your highest expected Vout.
Raspberry Pi›
Read Voltage via MCP3008 ADC
# pip install adafruit-circuitpython-mcp3xxx
import time
import board, busio
from digitalio import DigitalInOut
from adafruit_mcp3xxx.mcp3008 import MCP3008
from adafruit_mcp3xxx.analog_in import AnalogIn
spi = busio.SPI(clock=board.SCK, MISO=board.MISO, MOSI=board.MOSI)
cs = DigitalInOut(board.CE0)
mcp = MCP3008(spi, cs)
chan = AnalogIn(mcp, MCP3008.P0)
R1 = 100000.0
R2 = 33000.0
while True:
va0 = chan.voltage
vout = va0 * ((R1 + R2) / R2)
print(f"Vout: {vout:.2f} V")
time.sleep(1)
Drivers›
No specific drivers are required for the LM-2596 module. USB-serial adapters may need bridge drivers.
Resources›
Arduino
Raspberry Pi
Espressif
- ESP-IDF Programming Guide (Official)
- ESP-IDF “Get Started”
- Espressif Technical Docs / Datasheets
- Espressif Docs (ReadTheDocs)
- ESP-IDF on GitHub
- ESP-IDF Examples
- ESP8266 RTOS SDK Docs
- ESP8266 RTOS SDK (GitHub)
- ESP-Matter Docs
- ESP-Matter (GitHub)
- PlatformIO + ESP-IDF
- Arduino Core for ESP32 (GitHub)
Drivers / Other
Specifications›
| Regulator IC | LM2596 (switch-mode buck converter) |
|---|---|
| Input Voltage | 4–40 V DC (typical) |
| Output Voltage | 1.25–35 V adjustable |
| Max Output Current | 2 A (continuous typical), 3 A peak |
| Efficiency | Up to 90 % |
| Switching Frequency | ~150 kHz |
| Adjustment | Multi-turn potentiometer |
| Protection | Over-temp / current / input-polarity (varies by board) |
| Dimensions | ≈ 45 × 21 mm (typical) |
Note: Specs vary by vendor/board revision; verify on your PCB silkscreen.
FAQ›
Output voltage wrong? ›
Overheating? ›
Safe for powering logic boards? ›
Safety & Compliance›
Important Notice: For educational, prototype, experimental, laboratory and R&D use only. (non-RoHS)
WEEE
Not subject to WEEE marking; obligations apply to final equipment.
Manufacturer
Little Muffins Things Limited
166 River Heights, 90 High Street
London E15 2GQ
littlemuffinsthings.com
EU Responsible Person
eucomply OU
Parnu mnt. 139b–141
13117 Tallinn, Estonia
hello@eucompliancepartner.com