¡Tu carrito está actualmente vacío!
Leer Batería 16.8V Con ESP32

📌Sevilla 🇪🇸 España | Para leer el voltaje de una batería de 16.8V con un ESP32 usando un divisor de voltaje con resistencias de 30kΩ y 7.5kΩ, primero debemos calcular el voltaje que leerá el ESP32 y asegurarnos de que esté dentro del rango aceptable para el ADC del ESP32 (0-3.3V).
Divisor de Voltaje
El divisor de voltaje reduce el voltaje de la batería a un nivel seguro para el ADC del ESP32. La fórmula para un divisor de voltaje es:
Vout=Vin×R2R1+R2V_{out} = V_{in} \times \frac{R2}{R1 + R2}Vout=Vin×R1+R2R2
Donde:
- VinV_{in}Vin es el voltaje de entrada (16.8V en este caso).
- R1R1R1 es la resistencia conectada a la batería (30kΩ).
- R2R2R2 es la resistencia conectada al suelo (7.5kΩ).
Cálculo del Voltaje de Salida
Aplicamos los valores a la fórmula:
Vout=16.8V×7.5kΩ30kΩ+7.5kΩV_{out} = 16.8V \times \frac{7.5kΩ}{30kΩ + 7.5kΩ}Vout=16.8V×30kΩ+7.5kΩ7.5kΩ
Vout=16.8V×7.537.5V_{out} = 16.8V \times \frac{7.5}{37.5}Vout=16.8V×37.57.5
Vout=16.8V×0.2V_{out} = 16.8V \times 0.2Vout=16.8V×0.2
Vout=3.36VV_{out} = 3.36VVout=3.36V
El resultado es 3.36V, lo cual está ligeramente por encima del máximo permitido por el ADC del ESP32 (3.3V). Para evitar daños al ESP32, es recomendable ajustar el divisor de voltaje para que la salida máxima sea ligeramente menor a 3.3V.
Ajuste del Divisor de Voltaje
Para ajustar el divisor, podemos cambiar una de las resistencias. Si usamos una resistencia de 32kΩ en lugar de 30kΩ para R1, el cálculo sería:
Vout=16.8V×7.5kΩ32kΩ+7.5kΩV_{out} = 16.8V \times \frac{7.5kΩ}{32kΩ + 7.5kΩ}Vout=16.8V×32kΩ+7.5kΩ7.5kΩ
Vout=16.8V×7.539.5V_{out} = 16.8V \times \frac{7.5}{39.5}Vout=16.8V×39.57.5
Vout=16.8V×0.18987V_{out} = 16.8V \times 0.18987Vout=16.8V×0.18987
Vout≈3.19VV_{out} \approx 3.19VVout≈3.19V
Ahora, el voltaje está dentro del rango seguro.
Código para Leer el Voltaje
C{odigo para leer el voltaje ajustado:
cppCopiar códigoconst int analogPin = 34; // Pin ADC en el ESP32
const float R1 = 32000.0; // 32kΩ
const float R2 = 7500.0; // 7.5kΩ
float voltage = 0.0;
void setup() {
Serial.begin(115200);
}
void loop() {
int adcValue = analogRead(analogPin);
float adcVoltage = adcValue * (3.3 / 4095.0);
voltage = adcVoltage * ((R1 + R2) / R2);
Serial.print("Voltaje de la batería: ");
Serial.println(voltage);
delay(1000);
}
En este código:
- Lectura del ADC:
analogRead(analogPin)
lee el valor del ADC. - Conversión del valor ADC a voltaje:
adcVoltage = adcValue * (3.3 / 4095.0)
convierte el valor ADC a voltaje. - Cálculo del voltaje de la batería:
voltage = adcVoltage * ((R1 + R2) / R2)
ajusta el valor leído para obtener el voltaje real de la batería.
Etiquetas:
Deja una respuesta