ESP32 - medir voltaje

En esta guía, aprenderemos cómo medir voltaje que va desde 0 V hasta 16,5 V utilizando un sensor de voltaje con un ESP32. Explicaremos los pasos con detalle.

Sensor de voltaje para ESP32

Hardware Requerido

1×Módulo de Desarrollo ESP32 ESP-WROOM-32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Voltage Sensor
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP32
1×(Recomendado) Breakout Expansion Board for ESP32
1×(Recomendado) Divisor de Alimentación para ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del sensor de voltaje

Un sensor de voltaje es un divisor de voltaje ya hecho que utiliza resistencias específicas para facilitar la medición del voltaje. Tiene dos resistencias: una es de 30 kΩ y la otra de 7,5 kΩ. Si la tensión de referencia del ADC es de 5 V, el sensor puede medir voltajes de 0 a 25 V CC. Cuando la tensión de referencia del ADC es de 3,3 V, puede medir voltajes de 0 a 16,5 V CC.

Diagrama de pines

Un sensor de voltaje viene con dos tipos de pines:

  • Interfaz de entrada (conecte donde desee medir el voltaje):
    • Pin VCC: Conecte este pin positivo al punto de voltaje más alto.
    • Pin GND: Conecte este pin negativo al punto de voltaje más bajo.
  • Interfaz de salida (conecte al ESP32):
    • Pin Vout (S): Conecte este pin de señal a un pin analógico en el ESP32.
    • Pin NC (+): No conecte este; no se utiliza.
    • Pin GND (-): Conecte este pin a GND (0 V) en el ESP32.
    Pinout de voltaje
    image source: diyables.io

Diagrama de Cableado

Diagrama de cableado del sensor de voltaje para ESP32

This image is created using Fritzing. Click to enlarge image

Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.

Código ESP32

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-measure-voltage */ #define ANALOG_IN_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to voltage sensor #define REF_VOLTAGE 3.3 #define ADC_RESOLUTION 4096.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

Pasos R\u00e1pidos

  • Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
  • Conecta el ESP32 al sensor de voltaje.
  • Conecta la placa ESP32 a tu PC mediante un cable USB.
  • Abre Arduino IDE en tu PC.
  • Selecciona la placa ESP32 adecuada (p. ej. ESP32 Dev Module) y el puerto COM.
  • Copia y pega el código anterior en el Arduino IDE.
  • Presiona el botón Upload en Arduino IDE para compilar y subir el código al ESP32.
  • Prueba midiendo 5V y 3.3V en el ESP32.
  • Comprueba las lecturas en el Monitor Serial.
COM6
Send
Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 4.93 Measured Voltage = 3.42 Measured Voltage = 3.42 Measured Voltage = 3.42 Measured Voltage = 3.42
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Puede que notes que el resultado de la medición sea incorrecto o significativamente diferente del valor real. No culpes al módulo de sensor de voltaje por esto. El código usa la función analogRead() para leer valores de un ADC (Convertidor Analógico-Digital) conectado a un sensor de voltaje. El ADC del ESP32 es adecuado para proyectos que no requieren alta precisión. Sin embargo, para proyectos que necesiten mediciones precisas, ten en cuenta:

  • El ADC del ESP32 no es perfectamente preciso y podría requerir calibración para obtener resultados correctos. Cada placa ESP32 puede variar ligeramente, por lo que la calibración es necesaria para cada placa individual.
  • La calibración puede resultar desafiante, especialmente para principiantes, y podría no proporcionar siempre los resultados exactos que deseas.

Para proyectos que requieren alta precisión, considere usar un ADC externo (p. ej., ADS1115) con el ESP32 o un Arduino, que tiene un ADC más confiable. Si aún desea calibrar el ADC del ESP32, consulte el ESP32 ADC Calibration Driver.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Tutoriales Relacionados

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!