Marcio Cunha

Cómo leer sensores industriales 4-20mA con ESP32 con seguridad

Descubra cómo conectar sensores industriales de corriente de 4 a 20 miliamperios a microcontroladores ESP32 de forma segura mediante circuitos de adaptación de señal y amplificadores operacionales.

Marcio Cunha•7 min
También disponible en:PortuguêsEnglish
Resumen
  • El bucle de corriente de cuatro a veinte miliamperios es estándar en la industria por ser inmune al ruido en cables largos.
  • El convertidor analógico-digital del microcontrolador solo lee voltaje, requiriendo la conversión de corriente mediante una resistencia.
  • Los amplificadores operacionales ayudan a aislar y escalar el rango de voltaje para proteger el pin sensible del chip.
  • Las resistencias de alta precisión evitan desviaciones de lectura causadas por variaciones térmicas y envejecimiento.
  • Un correcto aislamiento eléctrico previene que picos severos de voltaje industrial destruyan el microcontrolador.

Por qué el estándar de corriente de cuatro a veinte miliamperios domina la industria

En la automatización industrial, el mundo real es ruidoso, lleno de motores grandes encendiéndose y apagándose, generando chispas electromagnéticas invisibles. Si intentáramos enviar el voltaje puro de un sensor a través de decenas de metros de cables finos hasta una sala de control, la señal llegaría completamente distorsionada por las interferencias a lo largo del recorrido. Por eso la industria prefiere trabajar con una corriente eléctrica que varía de cuatro a veinte miliamperios. A diferencia del voltaje, que sufre caídas y ruidos fácilmente, la corriente eléctrica se mantiene estable incluso cuando el cableado es largo o atraviesa entornos cargados de ruido.

En la práctica, esto significa que una señal de cuatro miliamperios representa el valor cero o el inicio de la escala de medición del sensor, como cero grados Celsius o cero bar de presión. Por su parte, el valor máximo de veinte miliamperios representa la parte superior de la escala, como cien grados Celsius o diez bar. Si el sensor cae exactamente a cero miliamperios, el sistema de automatización sabe de inmediato que el cable se rompió o el equipo falló, lo cual sería imposible de detectar si el límite inferior fuera cero voltios. Para comprender mejor cómo proteger los sistemas electrónicos contra interferencias electromagnéticas severas en el entorno físico, vale la pena revisar nuestros consejos sobre por qué se cae el Wi-Fi y cómo rastrear interferencias en redes de radiofrecuencia y cableado de datos.

El gran desafío al conectar sensores industriales a microcontroladores

Aunque los sensores industriales operan en bucles de corriente robustos, los microcontroladores modernos como el ESP32 son dispositivos delicados que operan con voltajes bajos y circuitos lógicos de 3.3 voltios. El convertidor analógico-digital de la placa —el componente interno que traduce magnitudes eléctricas en números comprensibles por el código— no entiende de corriente eléctrica directamente. Solo mide la diferencia de potencial eléctrico, es decir, el voltaje en sus pines de entrada. Por lo tanto, para leer una señal de corriente industrial, el ingeniero debe resolver un problema clásico de traducción física.

La forma más directa de realizar esta traducción es insertar un componente llamado resistencia de carga o resistencia de precisión en el camino de la corriente. Cuando la corriente pasa por esta resistencia, crea una caída de tensión de acuerdo con la famosa Ley de Ohm. El gran secreto aquí radica en elegir el valor correcto de esta resistencia y su tolerancia, ya que cualquier componente barato o inestable térmicamente puede generar lecturas falsas en el proceso productivo. Para quienes buscan construir una central de monitoreo completa en casa o en una fábrica, este proyecto complementa perfectamente los sistemas de medición de energía, tal como discutimos en nuestro artículo sobre cómo medir energía con ESP32 y PZEM en tiempo real.

Calculando la resistencia de precisión ideal para el circuito

Para convertir el rango de corriente de cuatro a veinte miliamperios en un rango de voltaje que el ESP32 pueda leer sin sufrir daños, necesitamos hacer un cálculo matemático sencillo. El ESP32 acepta normalmente voltajes analógicos entre cero y 3.3 voltios. Si diseñamos el circuito para que el flujo máximo de veinte miliamperios genere exactamente 3.0 voltios sobre nuestra resistencia, tendremos un margen de seguridad contra saturaciones no deseadas.

Aplicando la fórmula física donde la resistencia es igual al voltaje dividido por la corriente, dividimos tres voltios entre cero punto cero veinte amperios, lo que resulta en ciento cincuenta ohmios. Una resistencia de ciento cincuenta ohmios de alta precisión —preferiblemente con una tolerancia de cero punto uno por ciento y bajo coeficiente de temperatura— hará que la señal de cuatro miliamperios genere cero punto seis voltios, mientras que veinte miliamperios generarán tres voltios redondos en la entrada del microcontrolador.

El papel esencial de los amplificadores operacionales en la adaptación

Simplemente colocar una resistencia en la entrada del ESP32 resuelve el problema básico, pero deja el circuito vulnerable a sobretensiones y problemas de impedancia. Aquí es donde entran en juego los amplificadores operacionales, conocidos popularmente en electrónica como op-amps. Funcionan como barreras inteligentes y protectoras entre el mundo industrial violento y el microcontrolador sensible, ajustando la ganancia y filtrando ruidos de alta frecuencia no deseados.

El amplificador operacional se puede configurar como un seguidor de voltaje o un circuito acondicionador de señal. En la práctica, garantiza que la impedancia de entrada del ESP32 no robe corriente del bucle del sensor, lo que causaría errores graves en la medición. Además, si ocurre un cortocircuito en la línea externa, el amplificador actúa como un escudo, sacrificándose o cortando el pico antes de que llegue al puerto analógico del microcontrolador. Si encuentra problemas de cortocircuitos en placas al ensamblar estos circuitos de protección, puede consultar la guía práctica sobre cómo hallar cortocircuitos en placas con cámara térmica para salvar sus prototipos en el banco de trabajo.

Montaje del circuito de protección y etapa de lectura analógica

Construir un circuito seguro requiere seguir una secuencia lógica de ensamblaje para evitar errores de polaridad o cortocircuitos accidentales en la protoboard o placa de circuito impreso definitiva. Siga los pasos necesarios para estructurar la interfaz con seguridad:

  1. Desconecte por completo todas las fuentes de alimentación y el bus industrial antes de iniciar cualquier soldadura o conexión física en el banco de trabajo.
  2. Conecte la resistencia de precisión de ciento cincuenta ohmios en serie con el retorno negativo del sensor industrial y la tierra común del circuito.
  3. Inserte un amplificador operacional alimentado por una fuente estable para aislar y acondicionar la señal generada sobre la resistencia de precisión.
  4. Agregue diodos de protección tipo Zener en la entrada analógica del ESP32 para limitar cualquier voltaje que supere accidentalmente el límite de 3.3 voltios.
  5. Realice una prueba de banco inyectando corrientes conocidas en el bucle con una fuente ajustable y valide los valores leídos por el código en el monitor serial.

Código funcional para lectura y conversión en el ESP32

Tras garantizar la seguridad física del circuito con las resistencias y amplificadores, el siguiente paso es escribir el código en el entorno de desarrollo Arduino. El código a continuación lee el puerto analógico, aplica un promedio móvil simple para estabilizar el ruido digital y convierte el valor en bruto a la unidad física real del sensor.

const int pinSensor = 34; // Pin analógico del ESP32 conectado al circuito de adaptación
const float voltajeMaximo = 3.0; // Voltaje máximo calculado sobre la resistencia de precisión
const int lecturaMaxima = 4095; // Resolución de 12 bits del convertidor del ESP32

void setup() {
Serial.begin(115200);
pinMode(pinSensor, INPUT);
}

void loop() {
long sumaLecturas = 0;
int muestras = 50;

// Recolecta múltiples muestras para suavizar el ruido eléctrico
for (int i = 0; i < muestras; i++) {
sumaLecturas += analogRead(pinSensor);
delay(2);
}

float promedioBruto = (float)sumaLecturas / muestras;
float voltaje = (promedioBruto * voltajeMaximo) / lecturaMaxima;

// Convierte el voltaje medido a corriente en miliamperios (4-20mA)
// Considerando una resistencia de 150 ohmios: V = I * R => I = V / R
float corrienteMa = (voltaje / 150.0) * 1000.0;

// Mapea la corriente a la unidad física del proceso (ej: 0 a 100 grados)
float valorProceso = (corrienteMa - 4.0) * (100.0 / 16.0);

Serial.print("Voltaje: ");
Serial.print(voltaje, 2);
Serial.print(" V | Corriente: ");
Serial.print(corrienteMa, 2);
Serial.print(" mA | Proceso: ");
Serial.print(valorProceso, 2);
Serial.println(" C");

delay(1000);
}

Consideraciones finales sobre la robustez de los proyectos industriales

Integrar el ESP32 en entornos industriales utilizando el estándar de corriente de cuatro a veinte miliamperios es una excelente alternativa para reducir costos sin sacrificar la confiabilidad operativa. Sin embargo, el éxito del proyecto depende directamente del cuidado tomado con la electrónica analógica de entrada, priorizando resistencias de alta estabilidad térmica y amplificadores operacionales bien dimensionados.

Al implementar barreras de protección adecuadas contra sobretensiones y ruidos eléctricos, se garantiza que un microcontrolador de bajo costo funcione durante años en entornos hostiles sin bloqueos ni quemaduras prematuras. Probar exhaustivamente el hardware en el banco de trabajo antes de la instalación definitiva en el campo es el diferencial que separa un prototipo amateur de un sistema de automatización robusto y profesional.