¿Cómo obtener una señal de corriente de 4-20mA de un ESP32?
Supongamos que tienes un sistema de control de velocidad de un motor hidráulico. La señal de control de 4-20 mA, generada por un controlador, se envía a la válvula proporcional. Si el controlador envía una señal de 4 mA, la válvula está casi cerrada, permitiendo solo un flujo mínimo de fluido y, por lo tanto, una velocidad baja del motor. Si la señal es de 20 mA, la válvula está completamente abierta, permitiendo el flujo máximo y una velocidad alta del motor. Las señales intermedias ajustan la posición de la válvula proporcionalmente, permitiendo un control preciso de la velocidad del motor. Existen muchos dispositivos que realizan esta función, pero su costo es alto. Aquí te voy a mostrar un circuito muy sencillo que permitirá controlar este tipo de válvulas con dispositivos de bajo costo.
El circuito de la figura constituye un bucle de corriente que permite controlar desde un ESP32 la apertura de una válvula proporcional, en especifico desde el pin del convertidor digital a análogo (DAC), el cual se encuentra en el pin 9 (GPIO25) o el pin 10 (GPIO26), como se muestra en el diagrama de pines del ESP32. Como la salida máxima de este dispositivo son 3V, se puede controlar este voltaje desde los 0V que corresponderían a 4mA hasta los 3V que correspondería a 20 mA.
El transistor Q2 controla la corriente de origen en el terminal I-OUT. Este a su vez está controlado por el transistor Q1, que a su vez está controlada por la amplificador operacional . Este amplificador operacional ajusta la corriente a través de Q2 a lo que sea necesario para que el voltaje V0 aparezca a través de R3, la resistencia R1 retroalimenta los valores de salida, que se miden en el terminal I-IN, para mantener la corriente a un valor fijo cuando se conecte la carga, eso regula la actual a R3.
Las diversas resistencias alrededor de Q1 y Q2 son para proporcionar un rango de ajuste de voltaje razonablemente lineal e independiente de las ganancias de Q1 y Q1. C1 añade estabilidad.
Entre los terminales I-OUT e I-IN, estarían conectados los terminales del motor que controla la apertura de la válvula. En la siguiente figura se modela la carga con una resistencia, con una resistencia de 800 Ohmios, debido a que la norma internacional ISA-50 especifica 3 clases L, H y U con U siendo el más genérico y especifica que el bucle de corriente necesita ser capaz de obtener 20mA en hasta 800 ohmios con tensión de alimentación de hasta 32,7V. Otros estándares (NAMUR NE 43) tendrán valores ligeramente diferentes. En la simulación la circuitería análoga (transistores y opam) se alimenta con una fuente análoga de 24V, que es la más comúnmente usada para alimentar el motor de la válvula proporcional.
Este circuito también
se puede utilizar con tarjetas Arduino, como se muestra en la siguiente figura,
las cuales no tienen convertidor análogo a digital, pero utilizando las salidas
PWM y un filtro pasabajos RC se puede obtener un voltaje análogo que depende
del ciclo ON de la señal PWM. El valor de R y C del filtro depende de la
frecuencia de la señal PWM generada, generalmente con una frecuencia de corte mínimo
de 50 veces por debajo de la frecuencia configurada en el PWM. Si se usa un
Arduino tener en cuenta que el voltaje del PWM debe tener un máximo de 3V,
debido a que en el caso de estos dispositivos el voltaje pude ser máximo de 5V.