El ESP32 opera con lógica de 3.3V y sus pines GPIO no son tolerantes a 5V. Conectar directamente una señal de 5V puede dañarlo permanentemente. El divisor de voltaje resistivo es la solución más económica y simple para adaptar estos niveles. En esta guía te mostramos cómo calcularlo y cuándo usarlo.
¿Qué es un Divisor de Voltaje?
Un divisor de voltaje es un circuito formado por dos resistencias en serie (R1 y R2) conectadas entre la señal de entrada y GND. La salida se toma entre las dos resistencias y entrega una fracción del voltaje de entrada:
Vout = Vin × R2 / (R1 + R2)
Cálculo para 5V → 3.3V (la Combinación Más Usada con ESP32)
Necesitamos que Vout = 3.3V con Vin = 5V. Despejando la relación R2/(R1+R2) = 3.3/5 = 0.66. La combinación más común que logra esto:
- R1 = 10 kΩ
- R2 = 20 kΩ
Vout = 5 × 20k / (10k + 20k) = 5 × 0.667 = 3.33 V ✓
También puedes usar R1=2.2kΩ y R2=4.7kΩ si necesitas menor impedancia (más corriente disponible en la salida).
Tabla de Combinaciones Comunes
| Vin | Vout deseado | R1 | R2 | Vout real |
|---|---|---|---|---|
| 5V | 3.3V | 10 kΩ | 20 kΩ | 3.33V ✓ |
| 5V | 3.3V | 2.2 kΩ | 4.7 kΩ | 3.40V ≈ |
| 12V | 5V | 10 kΩ | 5.6 kΩ | 4.30V ≈ |
| 12V | 3.3V | 10 kΩ | 3.3 kΩ | 2.97V ≈ |
Calculadora Online de Divisor de Voltaje
Ingresa Vin, R1 y R2 para obtener Vout, o ingresa el Vout deseado para que la calculadora encuentre el R2 necesario. Incluye presets 5V→3.3V, corriente de divisor y potencia disipada.
Calcular divisor de voltaje →¿Cuándo Usar Divisor de Voltaje vs Level Shifter?
| Situación | Divisor de voltaje | Level Shifter |
|---|---|---|
| Señal analógica o digital lenta | ✓ Ideal | Innecesario |
| I2C / SPI / UART rápido | ✗ No recomendado | ✓ Necesario |
| Comunicación bidireccional | ✗ Solo unidireccional | ✓ Bidireccional |
| Costo | ✓ Muy bajo (2 resistencias) | Módulo adicional |
Ejemplo de Conexión: Sensor HC-SR04 (5V) al ESP32
El sensor ultrasónico HC-SR04 funciona a 5V pero el pin ECHO devuelve señal de 5V — demasiado para el ESP32. La solución:
- Conectar el pin ECHO del sensor a un divisor con R1=10kΩ y R2=20kΩ
- El punto medio del divisor va al pin GPIO del ESP32
- Resultado: 5V × 20k/30k = 3.33V — seguro para el ESP32
El pin TRIG del ESP32 (3.3V) puede conectarse directamente al sensor — los 3.3V son suficientes para activarlo.
Corriente Consumida por el Divisor
Con R1=10kΩ y R2=20kΩ, el divisor consume: I = 5V / (10k+20k) = 0.167mA. Prácticamente despreciable para baterías. Si usas resistencias más pequeñas (1kΩ+2kΩ), el consumo sube a 1.67mA — válido para señales que necesitan más corriente de salida.
Código ESP32: Lectura de Sensor 5V con Divisor
// Señal de 5V reducida a 3.3V con R1=10kΩ, R2=20kΩ
// Pin ADC del ESP32 lee voltaje reducido
const int ADC_PIN = 34;
void setup() {
Serial.begin(115200);
}
void loop() {
int raw = analogRead(ADC_PIN);
// Convertir lectura a voltaje real (compensar divisor)
float vout = (raw / 4095.0) * 3.3;
float vin = vout * (10000.0 + 20000.0) / 20000.0;
Serial.print("Voltaje real: ");
Serial.print(vin, 2);
Serial.println(" V");
delay(500);
}
Conclusión
El divisor de voltaje es la forma más simple y económica de adaptar señales de 5V a 3.3V para el ESP32. Con solo dos resistencias (10kΩ y 20kΩ) puedes proteger los pines GPIO de tu ESP32 de voltajes que los dañarían. Para señales de alta frecuencia o comunicación bidireccional, opta por un level shifter dedicado.
Usa nuestra calculadora de divisor de voltaje para encontrar los valores exactos según tu aplicación.