Salida de 4-20mA de Arduino

3

Quiero controlar una válvula de velocidad de motor industrial que acepta una entrada de 4-20 mA.

Quiero usar Arduino Uno como el controlador de un dispositivo de este tipo, pero no sé cómo generar dicha señal desde Arduino.

He investigado un poco y descubrí que no hay una forma definitiva de hacerlo. En su lugar, se deben hacer algunos circuitos analógicos.

¿Puede alguien ayudarme sobre cómo empezar con esto? Muchas gracias.

    

6 respuestas

11

Aquí hay un fragmento de uno de mis proyectos actuales que requiere 8 canales de salida de corriente de 4-20 mA controlados por computadora:

V0 es una tensión analógica que controla la corriente que sale de CURR0 + y vuelve a CURR0-. En este caso, los resultados de 20 mA de V0 = 3.0 V. V0 pueden ir a 3.3 V, por lo que hay un 10% de capacidad de rango excesivo.

Q7 controla la fuente obtenida en CURR0 +. Eso es controlado por Q9, que a su vez es controlado por el opamp. El opamp ajusta la corriente a través de Q7 a lo que sea necesario para que aparezca el voltaje V0 en R34. Por la ley de Ohm, eso regula la corriente a través de R34.

Las distintas resistencias alrededor de Q9 y Q7 deben proporcionar un rango de ajuste de voltaje razonable fuera del rango operativo, y hacer que el mapeo de voltaje de salida opamp a CURR0 + sea razonablemente lineal e independiente de las ganancias de Q9 y Q7. C35 agrega estabilidad, y R31 proporciona la impedancia para que C35 trabaje en contra.

V0 proviene de un MCP4728 12 bit D / A controlado por un microcontrolador a través de un bus IIC. Sin embargo, puedes crear eso como quieras. El paso bajo que filtra una salida PWM, por ejemplo, podría funcionar para usted.

    
respondido por el Olin Lathrop
2

No hay una forma definida de utilizar un bucle de corriente de 4-20 mA. El bucle se usa principalmente en entornos industriales donde tenemos largos bucles de cables y el voltaje por lo general se reduce antes que el dispositivo final, lo que a su vez dificulta la lectura de Logic High y Logic Low de los datos de comunicación.

Aquí hay otra read de Analog Devices en utilizando opamps para este fin. También puede usar el bucle actual transmisor y receptor para sistemas de 4-20ma. Y se puede controlar con motor con 5.0V. Se puede encontrar un poco más de información sobre los bucles actuales en aquí .

    
respondido por el AKR
1

Como lo mencionó AKR, los bucles de 4 a 20 mA se definen mediante múltiples estándares internacionales. ISA-50 especifica 3 clases L, H y U siendo U más genérico y especificando que el transmisor debe poder generar 20 mA en hasta 800 ohmios con voltaje de suministro de hasta 32.7V. Otra norma (NAMUR NE 43) tendrá valores ligeramente diferentes

Ahora muy a menudo la resistencia de carga es típicamente de 250 ohmios. Por lo tanto, si solo está intentando que un prototipo funcione con un cable corto, es posible que con un suministro de 5 V genere los 20 mA necesarios (20 mA * 250R = 5 V). Dado que los pines Arduino son 3V, necesita tener un suministro de 5V para su escala completa. Sería una opción un duplicador de voltaje pasivo simple aquí . Al ajustar con precisión el ciclo de trabajo, podrá controlar su válvula.

Nota: esto supone que su válvula es de 3 o 4 cables, de lo contrario, es probable que 5V esté por debajo del voltaje de cumplimiento de su válvula.

Alternativamente, si desea una solución robusta, deberá generar un suministro de 24 V (IC de refuerzo) a partir de los 5 V a bordo, generar un voltaje con PWM, seleccionar la resistencia de ganancia para que su volage a gran escala sea la máxima escala la corriente y utiliza un convertidor de voltaje industrial a corriente como este uno .

    
respondido por el oberron
1

Este es un enfoque muy simple si no necesita alta precisión o exactitud:

simular este circuito : esquema creado usando CircuitLab

R1 actúa como un "convertidor de voltaje a corriente", y el amplificador operacional proporciona la polarización necesaria a M1 para asegurarse de que el voltaje a través de R1 sea igual a Vin.

Dado que la corriente de la compuerta a través de M1 y la corriente de polarización de entrada a U1 son despreciables, toda la corriente que fluye a través de la carga (su controlador de motor, en este caso) también debe fluir a través de R1. Por lo tanto, puede usar la ley de Ohm para convertir entre voltaje en Vin y corriente a través de la carga.

Con R1 = 100 ohmios, necesita Vin de 0,4 a 2 voltios. Puede obtener eso de una salida DAC o mediante el filtrado de paso bajo de una salida digital PWM.

Necesitará un amplificador operacional que funcionará con un voltaje de entrada de modo común tan bajo como 0.4V. Un TL072 común, por ejemplo, no cumple con estos requisitos, pero un tipo moderno de riel a riel como OPA342 sí lo hace. Alternativamente, puede conectar el suministro negativo de U1 a un voltaje negativo.

Tenga en cuenta la resistencia de carga, que debe ser especificada por el controlador de su motor. Debe asegurarse de que V2 sea lo suficientemente alto como para que la caída de voltaje combinada en la carga, M1 y R1 no sea mayor que V2 a 20 mA.

    
respondido por el Phil Frost
0

Aquí hay un artículo que explica cómo puede utilizar arduino y un transmisor de bucle de corriente de 4-20 mA para generar una señal de 4-20 mA. Está utilizando un generador de corriente DAC y 4-20mA. enlace Esta placa tiene un DAC, XTR (generador de señal actual), aislador de potencia, aislador de señal. Puede enviar comandos i2c para generar la salida deseada de 4-20mA. Para cualquier aplicación del mundo real, es altamente recomendable que use aisladores entre el transmisor / receptor actual y el arduino o cualquier otro dispositivo.

    
respondido por el bruce
0

Dependiendo de la válvula, puedes falsificarla con PWM. Por experiencia, muchos PLC no proporcionan salidas analógicas, pero sí proporcionan PWM; Eso, combinado con las resistencias correctas y el voltaje de la fuente, suele ser lo suficientemente bueno. (No es preciso). (en absoluto). (pero funciona). (por lo general).

Como dijo Oberonn, los dispositivos de 4-20 mA tienden a seguir uno de los pocos circuitos. Si puede medir la resistencia (o, alternativamente, encontrar una hoja de datos con la información), puede calcular lo que necesita para hacer una salida de 4-20 mA de psuedo.

simular este circuito : esquema creado usando CircuitLab

Para una entrada de 4-20 mA basada en la resistencia básica, tome la tensión de la fuente (12V en la anterior), divida por la corriente máxima (12V / .02A) = 600 ohmios, reste su resistencia de entrada (por ejemplo, 250 ohmios) y obtendrá 350 ohmios para limitar 12V a un máximo de 20mA. Use eso para limitar la corriente, por lo que un PWM de 0-100% será una salida de 0-20mA. En la práctica, debido a la pérdida de voltaje en MOSFET, no obtendría un 100% / 20mA completo, por lo que puede disminuir un poco el valor límite.

Otras notas:

  • Si la carga es literalmente de 250 ohmios, puede conducirla directamente desde un Arduino PWM, como 5V / .02A = 250ohm; no se requieren circuitos adicionales ni fuentes de voltaje. Si es menos de 250 ohmios, puedes hacer una resistencia en línea desde Arduino.
  • Para la frecuencia PWM, es probable que desee más de 100Hz. Creo que, de forma predeterminada, Arduino ejecuta PWM a 1 khz, por lo que estará bien.
  • El MOSFET podría reemplazarse con un transistor, pero los cálculos se vuelven complicados debido a la adición de la corriente de fuente Gate > y es necesario tener en cuenta el parámetro de amplificación actual (h_FE). Sin embargo, harías bien en calibrar eso.
  • Es importante que la tensión de alimentación sea relativamente estable; si cambia de 11V a 13V, la señal también cambiará de 18.3mA a 21.6mA,
respondido por el CoderTao

Lea otras preguntas en las etiquetas

Comentarios Recientes

Un conector DB8-UAX88BD8DA10 serie sobre A / V Convertidor serie (requiere una placa adaptadora de puerto serie con una tira de alimentación de tapa adicional (R2N22N30) Conecte la entrada de A / V desde el teclado Medidas de voltaje 3,3 V aproximadamente 85 mA Conector de entrada de 4 posiciones Diodos de corriente constante CC externa de 50 mA 6 entradas o 4 salidas para ayudar a los controles digitales (Wi-Fi, Bluetooth, etc.) Dos puertos de entrada / salida (1 externo, 1 RS-232) Par de cobre a la placa sobre soldadura... Lees verder