Interfaz de un sensor de presión automotriz al circuito del microcontrolador

Esta es una continuación de Medición de la presión del agua en un tanque . He decidido intentar ir en una dirección diferente, así que estoy haciendo una nueva pregunta.

Tengo una aplicación en la que necesito medir electrónicamente la presión dentro de un filtro de piscina. Debido a que el sensor estará sujeto a agua clorada, no puedo usar un sensor de presión simple como el MPX5700 de Freescale.

Tengo un transductor de presión de 150 PSI barato de Ebay con los siguientes detalles técnicos:

Entrada: 0-150 psi. Salida: salida de voltaje lineal de 0,5 V - 4,5 V. 0 psi salidas 0,5 V, 75 psi salidas 2,5 V, 150 psi salidas 4,5 V.

Funciona para aceite, combustible, agua o presión de aire. Se puede utilizar en tanques de aceite, tanques de gas, etc.

Precisión: dentro del 2% de la lectura (escala completa).

Rosca: 1/8”-27 NPT.

Conector de cableado: desconexión rápida sellada con agua. El conector de acoplamiento está incluido.

Cableado: Rojo para +5V. Negro para suelo. Azul para salida de señal.

Lo probé en el banco usando un osciloscopio y un multímetro y medí lo siguiente:

  1. Cuando no se aplica presión, produce alrededor de 418 mV. Esto parece correcto basado en lo anterior.
  2. Cuando fuerzo un poco de aire con la boca, el voltaje sube como se esperaba.
  3. La resistencia entre 5V y GND es 42.7K ohm
  4. La resistencia entre 5V y la SALIDA de señal es de 120K ohm
  5. La resistencia entre GND y la señal de SALIDA es de 69K ohm

Conecté el cable de señal del sensor a mi microcontrolador LPC1768 en P17 (entrada analógica), el cable rojo del sensor a +5 V y el cable de tierra del sensor directamente a tierra.

Cuando leí la salida del convertidor AD de 12 bits, vi una salida muy variable, como la siguiente en la columna Presión:

Cycle   Level        Pressure
================================
[211]   W:[184]     F:[2200]
[212]   W:[184]     F:[2071]
[213]   W:[185]     F:[1279]
[214]   W:[184]     F:[418]
[215]   W:[184]     F:[1514]
[216]   W:[184]     F:[3002]
[217]   W:[185]     F:[1499]
[218]   W:[185]     F:[0]
[219]   W:[183]     F:[1430]
[220]   W:[184]     F:[2501]
[221]   W:[184]     F:[1965]
[222]   W:[185]     F:[1311]
[223]   W:[184]     F:[263]
[224]   W:[184]     F:[1509]
[225]   W:[183]     F:[3195]
[226]   W:[186]     F:[1518]
[227]   W:[184]     F:[74]
[228]   W:[185]     F:[1306]
[229]   W:[184]     F:[2037]
[230]   W:[184]     F:[2409]
[231]   W:[184]     F:[1478]
[232]   W:[184]     F:[30]
[233]   W:[184]     F:[1503]
[234]   W:[185]     F:[3254]
[235]   W:[184]     F:[1549]
[236]   W:[184]     F:[433]
[237]   W:[185]     F:[1025]
[238]   W:[184]     F:[1714]
[239]   W:[184]     F:[2691]
[240]   W:[185]     F:[1479]
[241]   W:[184]     F:[0]

Estoy usando la misma rutina de software para leer las columnas Nivel y Presión. La columna Nivel es muy estable a diferencia de la columna Presión.

Mis preguntas son las siguientes:

  • Si se supone que el sensor emite 0,5 V sin presión, ¿cómo es que estoy leyendo 0?
  • ¿Por qué tales variaciones entre cada lectura de ADC?
  • ¿Debo agregar algunos componentes a la interfaz del circuito debido a la resistencia mencionada anteriormente en los puntos 3, 4 y 5, como un búfer de ganancia unitaria? Si es así, ¿qué amplificador operacional recomendaría? Tenga en cuenta que no soy un ingeniero eléctrico, solo un aficionado nuevo en los amplificadores operacionales. Gracias Joe Hass por la idea del búfer de ganancia unitaria.

Búfer de ganancia unitaria

  • ¿Qué pasa con los condensadores de filtro de fuente de alimentación? ¿Deberían ser necesarios y, de ser así, tener mucho?
  • ¿Debo agregar resistencia pull-down o pull-up?
  • ¿Es posible hacer que esto funcione o necesitaría usar un elemento mucho más costoso como un sensor de presión industrial Honeywell ?

Nota: Esta es una pregunta tanto de electrónica como de software. Ahora mismo estoy trabajando en la interfaz eléctrica.

Actualización: Las cosas parecen por el momento haber sido resueltas. Tenía la señal del sensor conectada al LPC1768 P18 que se comparte como entrada analógica y salida analógica. La señal del sensor ahora está conectada a P17 (solo entrada analógica). Ese cambio y la adición de un límite de 0.1uF para filtrar la salida del sensor ha hecho que la salida a 0 PSI parezca correcta. Solo tengo que probarlo con un compresor de aire y ciertas configuraciones de PSI para asegurar que las lecturas de ADC sigan siendo correctas.

Le sugiero que consulte la hoja de datos del fabricante para ver qué conexiones se requieren, pero dado que la lista de eBay no proporciona el nombre del fabricante o el número de pieza, es posible que esto no sea posible, a menos que la información venga con el dispositivo. Sin esos datos, mediría la salida con un multímetro e intentaría relacionar las lecturas del medidor con las lecturas del ADC.
Conectó la tierra del suministro de 5V a la tierra del microcontrolador, ¿no es así? Sé que suena tonto, pero a menudo se pasa por alto.
@JoeHass Claro que lo hizo. :-)
El procedimiento normal aquí es que si encuentra que una respuesta en particular lo ayudó a resolver su problema, acepta oficialmente esa respuesta. Ayuda a los lectores posteriores a comprender lo que estaba pasando y evita que esta pregunta surja una y otra vez sin respuesta. Y, por supuesto, aumenta la reputación de la persona que le dio la respuesta útil.
@JoeHass Gracias Joe. Soy consciente de cómo funciona el sistema aquí. Aceptaré una respuesta cuando haya terminado con mi prueba. Siempre acepto la mejor respuesta en este foro, así como en los demás con los que estoy involucrado en el intercambio de pila. Actualicé mi pregunta solo para ser exhaustivo.
Tenga en cuenta que para un búfer de ganancia unitaria, no se "aísla" en absoluto en el sentido eléctrico. Sin embargo, proporciona una impedancia de entrada alta y una impedancia de salida baja, lo que se denomina adaptación de impedancia.

Respuestas (2)

Estos problemas son difíciles de diagnosticar. Lo primero que haría sería cambiar el nivel y presionar las entradas del ADC para asegurarme de que no haya algún tipo de problema de software. Incluso si has mirado el código mil veces, haría esto.

La impedancia de su sensor es bastante alta para alimentar directamente a la entrada ADC. Creo que debería agregar una ganancia unitaria, un búfer no inversor entre el sensor y la entrada ADC.

Es posible que se necesiten condensadores de derivación. No hay suficiente información para decir dónde deben agregarse o cuáles deben ser sus valores. Me aseguraría de pasar por alto el suministro de 5V para el sensor. También podría agregar un pequeño capacitor a la salida del sensor, suponiendo que la presión no cambie rápidamente.

También puede intentar reducir la velocidad del reloj del ADC para que el muestreo y la retención tengan más tiempo para cargarse. A veces, poner el procesador en reposo durante una conversión también puede reducir el ruido.

Gracias Joe, agradezco tu aporte. Entonces, ¿piensas que tal vez un amplificador operacional de ganancia unitaria simple podría ayudar? Supongo que necesito revisar la hoja de datos de LPC1768 y ver si puedo averiguar qué rango de impedancia pueden manejar las entradas analógicas.
Sugerí un amplificador operacional de ganancia unitaria bajo el supuesto de que la presión en el filtro de su piscina era lo suficientemente baja como para que el voltaje del sensor se mantuviera por debajo de 3.3V. Trabajo con las series LPC13xx y LPC11xx y recomiendan una impedancia de fuente máxima de 40 kilohmios para las entradas ADC, si mal no recuerdo.
En serio, cambie las entradas analógicas antes de empezar a preocuparse por los condensadores de derivación y demás. Si eso es demasiado difícil, reemplace el sensor de presión con un divisor de voltaje de baja resistencia, digamos dos resistencias de 1 kilohm, e intente medir ese voltaje de manera confiable. Debe asegurarse de que no haya un problema de software.
gracias Hoy cambiaré las entradas para descartar un problema de software.

Debido al hecho de que el rango de salida de su sensor excede el rango de entrada permitido del canal de entrada ADC LPC1768, Vdda/Vrefp máximo de 3.3V, tal vez sea mejor utilizar el opamp para escalar el rango de salida de la fuente/sensor y reducir el impedancia de salida de fuente/sensor.

Referencia: NXP AN10974 LPC176x/175x Pautas de diseño de ADC de 12 bits Analiza el filtrado efectivo de la fuente de alimentación, el uso de condensadores de derivación/desacoplamiento

Referencia: NXP LPC1769/68/67/66/65/64/63 Hoja de datos, página 62 y Fig. 27, página 65

Resistencia máxima de salida de fuente ~ Rvsi (resistencia de interfaz de fuente de voltaje) máximo de 7,5 kohm

Capacitancia máxima de salida de fuente ~ capacitancia de entrada analógica Cia) máximo de 15 pF

Gracias BigDogGuru. Agradezco las referencias! En realidad, el rango de PSI que espero medir es entre 0 y 60 como máximo. No necesito la capacidad de leer el rango de voltaje completo que el sensor puede generar. Simplemente lo elegí porque era barato y cubría el rango.
¿Está alimentando el sensor desde +5v y espera que nunca intente emitir una señal mayor a 3.3v?