Sensirion SDP610-500Pa Differential Pressure Sensor - Wind Tunnel Project

I am currently commissioning and characterizing a small scale subsonic wind tunnel which requires the implementation of a differential pressure sensor. We are using an Arduino Uno R3 with and SDP610-500Pa. I have attached the code we are using to return the pressure reading and then convert it to a flow velocity and a print screen of the results

The issue we seem to be having is that when using the readPa() function it is returning a value of 65535 when it should be returning a value of 32767 at zero differential pressure . This appears to be an overflow problem. The sensor should return a pressure between +/-500Pa when there is a differential pressure present.

Does anyone have any idea how we can get the sensor to return a physical value in Pascals within the +/- 500Pa range. It is essential that we do to return the correct flow velocity.

Any help would be greatly appreciated. :slight_smile:

SDP6xx.cpp (4.12 KB)

SDP6xx.h (2.88 KB)

pressure_sensor_trial_2.ino (432 Bytes)

The code in SDP6xx.cpp is not okay.

Is there a datasheet with registers for the SDP6xx ?

softReset(): not okay, there is no Wire.endTransmission, the I2C transaction will not be executed.

readUserRegister(): The while-loop is not needed. Two bytes are requested, only one byte is read.

readMeasurement(): The timeout and while-loop don't work. Three bytes are requested, only two bytes are used.

There are many integer and float calculations. It should be in the datasheet how to deal with the data from the registers.