Pressure/ Force Sensor...

Good Evening,

I am working with an uno and an analog Honeywell NSC Pressure/ Force Sensor. I am having trouble getting the pressure readings into something that are useful. The project is medical in nature; I am creating an interactive airway simulator for measuring a specific procedure competency. I have attempted a couple approaches without meaningful results. This is my first time using a pressure/ force sensor.

Project Specifics:
-Sensor Mtg P/N: NSCDANN001PGUNV Safety and Productivity Solutions | Honeywell
-Sensor is 1.8-5v, 0-1 psi, sensitivity +-25%
-No pressure/ force analogRead value is 518
-Desired output is 0-60 cmH20

Any help would be greatly appreciated!

Regards,

Dom

From that data sheet it looks as if the sensor should produce zero output voltage at zero pressure, up to 20mV at 100 psi.

Are you saying that your sketch is getting an analog read result of 518 with no pressure applied? That makes me think it isn't wired up correctly. I suggest you post a wiring diagram and your code that shows the problem.

PeterH:
From that data sheet it looks as if the sensor should produce zero output voltage at zero pressure, up to 20mV at 100 psi.

The "001PG" model has a range of 0 PSI to 1 PSI.

The nominal sensitivity is listed as 6.5 mV/V so I think Full Scale at 5V would produce (nominally) 32.5 mV. The range of sensitivity is shown as 4.5 to 8.5 mV/V so that will need calibration.

There is also an output offset of -8.5 to 3.5 mV/V. That means the zero point with a 5V supply can be -42.5 mV to 17.5 mV. That will also need to be characterized.

You might want to consider a pressure gage with an SPI or I2C digital interface. They are usually characterized and calibrated at the factory.

The sensor is ratiometric, so the output and offset is proportional to the power supply (1.8-5), so at 1psi and 5V the max value is 5V * 6.5mV/V
It seems it has an offset (also ratiometric), but most probably "zero point" based on what analogread=518 shows is somewhere in the middle at 5V with that offset mV/V coeficient (there is output+ and output-).

PG - Output is proportional to the difference between applied pressure and atmospheric (ambient)
pressure. Reference pressure is atmospheric pressure. 1psi =0.07atm so it is very small range however..
Spirometry??

Thank you everyone for the feedback. Given the responses I am considered purchasing a new gage sensor with a digital interface. I was initially going to go this route, however, I thought the code for the analog sensor would have been more straight forward.

johnwasser et al,

What do you think of HSCDANT001PG3A5 Safety and Productivity Solutions | Honeywell. From looking at the datasheet this sensor appears to be calibrated and characterized. Could you give me an example of what the code should look like to output the psi and convert it to cmH2O? I have not done much with I2C.

pito,

I am a flight paramedic; on rare occasions we are requested to urgently transport small infants that are too small for our mechanical ventilator (<50mL tidal volume) and too old for NICU transport. To ventilate these patients we use an "anesthesia bag" connected to constant flow (oxygen) and regulated with an adjustable pressure release value. The continued competency required to use this device safely is very narrow; thus my colleagues and I practice with this device every shift, however, there is no way to measure performance during this practice. This is what brought me to this project...an interactive self-simulator that provides real-time feedback to the practitioner and clinical educator on his/ her performance. Sorry for the long winded explanation.

Thanks again for everyone's help!

Dom

Dom:
What do you think of HSCDANT001PG3A5 Safety and Productivity Solutions | Honeywell. From looking at the datasheet this sensor appears to be calibrated and characterized. Could you give me an example of what the code should look like to output the psi and convert it to cmH2O? I have not done much with I2C.

Looks like an excellent choice! You'll get a nice clean number from 1638 (0 PSI) to 14746 (1 PSI). I2C and SPI are both fairly easy.

The current interface spec is: Safety and Productivity Solutions | Honeywell If that link fails, try a Google search for "I2C Communication with Honeywell Digital Output Pressure Sensors" This will turn up the Honeywell I2C manual for pressure sensors. Use SPI in place of I2C for the SPI version.

The important parts of the code should look something like this:

#include <Wire.h>
const int psiAddress = 0x38;  // This is the address for the ...PG3A5. You get other addresses like ...PG4A5

void setup()
    {
    Serial.begin(9600);
    Wire.begin();
    }

void loop()
    {
    Serial.println(getCMHG());
    delay(2000);
    }

float getCMHG()
    {
    int reading;
    byte MSB, LSB;

    Wire.requestFrom(psiAddress, 2);
    MSB = Wire.read();
    LSB = Wire.read();

    If (MSB & 0xC0 != 0x00)
        {
        // ERROR CONDITION
        return -10.0 * (MSB>>6);  // -10.0=COMMAND MODE, -20.0=STALE DATA, -30.0=DIAGNOSTIC ERROR
        } 

    reading = ((MSB & 0x3F) << 8) | LSB;

    float psi = (reading-1638) / (14746.0-1638.0);

    float cmhg = psi * 5.17149326;

    return cmhg;
    }

Thank you sir! New sensors on order, I will post how I make out. Thanks again.

Dom