No está muy claro lo que estás haciendo, así que vamos paso a paso.
Entonces, el sensor da una corriente, donde 0-25 Bar corresponden a 4-20mA.
$$ I_ {sens} = 16mA \ cdot \ frac {p} {25 Bar} + 4mA $$
Ahora, el propio ADC tiene un rango de entrada, por ejemplo, 0-5V y lo convierte en un número entero. No sé cómo obtienes 16348, el siguiente valor coincidente sería 16383, que es binario 111111'11111111. (Ese es el valor máximo de un ADC de 14 bits)
Entonces, necesita una resistencia como R = 250 Ohmios conectada a la salida de su sensor (a tierra), que convierte la corriente a 1-5 V
Ahora, la fórmula es
$$ V_ {ADC} = 4V \ cdot \ frac {p} {25 Bar} + 1V $$
y esto se asigna al rango ADC
$$ N_ {ADC} = \ frac {16383 \ cdot 16} {20} \ cdot \ frac {p} {25 Bar} + \ frac {16383 \ cdot 4} {20} $$
y su reverso
$$ p = \ left (N_ {ADC} - \ frac {16383 \ cdot 4} {20} \ right) \ cdot \ frac {20 \ cdot 25Bar} {16383 \ cdot 16} $$
o después de limpiar:
$$ {p = {\ frac {125 \ cdot N_ {ADC} -409575} {262128}} Barra} $$
Esto es lo mejor que puedes obtener, sin embargo, la resolución es de solo 1 barra, porque p es un entero. Y como se dijo en los comentarios, es importante hacer la división como el último paso.
La resolución es deficiente, aunque el rango dinámico es 16383/20 * 16 = 13106 (Ese es el número de pasos a los que ADC asigna el rango de entrada). Para una mejor resolución, puede ir por milli-Bar:
$$ {p = {\ frac {1000 \ cdot (125 \ cdot N_ {ADC} -409575)} {262128}} millibar} $$
De nuevo, haz la multiplicación primero. Y: El mayor valor del numerador es 1,638,300,000, que ocupa 31 bits. Por lo tanto, debe asegurarse de que su microcontrolador realice este cálculo con valores enteros de 32 bits.
Algunas ideas:
-
Si no te gustan estos números grandes, puedes usar 16384 en lugar de 16383. Esto es solo una pequeña desviación, pero puede permitir más cancelaciones en la fracción. Además, si nunca va a medir 25 Bar, pruebe una resistencia que proporcione el voltaje máximo ya a 24 bar. Este valor también permite más cancelaciones.
-
Algunos microcontroladores, p. desde el microchip, permita dar voltajes de referencia mín. / máx. Puede conectar dos voltajes que definen los límites superior e inferior del ADC. Con 1V y 5V, esto asignará el 1-5V desde la resistencia hasta los 14 bits completos del ADC, brindándole los 16384 pasos completos, no solo el 80% del mismo.
-
El último punto también se puede lograr con un amplificador de operación.
EDIT:
Como los valores necesitan un máximo de 31 bits, debe usar un valor entero de 32 bits con signo (que es 1 bit para el signo y 31 para el número). Si no se conecta ningún sensor / el ADC recibe menos de 1 V, obtendrá un valor negativo para la presión que se puede decir que no es válido.
Si usa enteros de 32 bits sin signo, en este caso obtendrá algo de basura y no podrá distinguir entre valores válidos e inválidos.