PIC - 4-20mA (fórmula del ciclo de trabajo)

0

Estoy implementando un bucle de corriente de 4-20 mA a mi PIC. Tengo todo funcionando. Estoy midiendo la distancia de un objeto. Cuando codifiqué la distancia como 300, el voltaje de salida es 4V y cuando la distancia es 12 cm, el voltaje de salida es 0.8V. Estos valores se obtienen porque la corriente debe ser 200uA antes de ingresar al bucle actual. El bucle de corriente tiene una ganancia de 100, por lo que da 20 mA en la salida. La resistencia que uso es 20K.

(300cm) \ $ Current = \ dfrac {4} {20K} = 200uA \ times 100 = 20mA \ $

(12cm) \ $ Current = \ dfrac {0.8} {20K} = 40uA \ times 100 = 4mA \ $

El problema es que tengo que encontrar una fórmula para que el ciclo de trabajo obtenga estos valores. La fórmula que estoy usando es D.C = \ $ 300 \ veces 2.2 + 158 = 818 \ $ que da 4V, pero si sustituyo 12 por 300 obtengo 184 que no corresponden a 0.8V, que es lo que necesito. ¿Puede alguien ayudarme en esto, si estoy yendo por el camino equivocado o de qué manera necesito acercarme a esto? Gracias

enlace

    
pregunta Gooner1990

1 respuesta

3

Dado su único punto de datos, que 818 le da 4V, puedo aplicar un poco de trabajo de detective y supongo que está utilizando el PWM en modo de 10 bits y su voltaje de referencia de suministro / PWM es de 5V.

Editar: Eso significa que la tensión de salida después del filtrado de paso bajo es

Vout = Vref * count / 1024

así que la cuenta debe ser 1024 * Vout / Vref.

El recuento para 4V (20 mA escala completa a 300 cm) es 819.

El recuento para 0.8V (4mA escala mínima @ 12cm pulg.) es 164.

Editar: Comience por determinar el multiplicador para el cambio de 'ganancia' en la cuenta para el cambio en la entrada cm. Llamamos al cambio en la entrada o salida de un instrumento de un extremo al otro el "intervalo". Ya que esto es lineal, podemos ignorar la intersección del cero por ahora y calcular la pendiente; luego sumaremos o restaremos un número para obtener el 'cero' correcto.

El intervalo de su voltaje de salida debe ser 4-0.8V = 3.2V para un cambio de entrada de (300-12) = 288cm, que corresponde a un intervalo de conteo de 819 (a 20mA fuera o 300cm in) - 164 ( a 4 mA fuera o 12 cm adentro) = 655 cuentas.

(Tenía 818 correspondientes a 654 conteos, lo que podría deberse a que su Vref de 5 V es un toque superior a 5 V).

Entonces el multiplicador debe ser 654 o 655 dividido por el cambio de entrada 288 = 2.274.

Ahora corrija el intercepto cero:

A 12 cm, desea un voltaje de salida de 0.8 V, o un conteo de 164. Si multiplicamos 12 * 2.274 obtenemos 27 conteos, que es menor que los 164 conteos deseados por 137 conteos, así que agregue 137 al resultado.

Entonces, si x es el número de cm, debe multiplicarlo por 654/288 = 137/144 (o 655/288 con 5V Vref exacto) y agregar 137.

12 cm le daría 164 conteos para 0.802V y 300 cm le daría 818 conteos para 3.994V (o 819 para 3.999V).

Tenga en cuenta que la multiplicación de enteros de 16 bits es inadecuada para multiplicar 137 x 300 sin desbordamiento, pero si está usando un punto flotante, no hay problema.

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas