Industrial pressure sensor with Uno and SGS

Hi there,

I am trying to interface a strain-gauge based pressure sensor with Arduino Uno and an SGS shield.

However, I have an issue with reading proper output values.

Here is my logic - please advise if you notice an error.

  • Sensor sensitivity is 20.1 mV/V, excitation is 5VDC -->5000psi translates to 100.5mV.
  • Using the Uno and the SGS, 3.3V is applied
  • Using an external PMU, I am applying 3000psi to the transducer
  • Simple math dictates that the output from the transducer (i.e. also shield input) should be 100.5mV * (3.3V/5.0V) * (3000psi/5000psi) = 39.8mV
  • Without the SGS, analogRead() should result in a reading of 8
  • I was advised SGS’s effective gain is 45, so it should output 1.8V, or analog reading of 360
  • With the SGS, I am getting an analogRead() reading of only 15.

Also, I have tried a similar transducer with 10V excitation, and did not get any legible results at all. Not enough current?

I’ve attached the simple sketch and the sensor calibration sheet for reference.

Thanks in advance.
PX329-5000 111208D091.pdf (46.4 KB)
2017_10_04_Pressure_Sensor_Bench.ino (708 Bytes)

Hi,

The SGS Load Cell/Transducers excitation pins (E+ and E-) are connected to the Arduino’s 3.3V and GND. Therefore, when you connect your transducer to the shield, it will be 3.3V excited.
The calibration sheet of your transducer indicates an excitation of 5V.
Please try the following :

]Adjust the reference voltage potentiometer of the appropriate channel (Strain 1 or 2) to obtain near 0 of raw ADC value when no load is attached on the transducer./:m]
]Bend slightly the 3.3V pin of the Load Cell Shield./:m]
]Stack the Load Cell Shield on top of your Arduino Board (without the 3.3V pin connected to the Arduino)./:m]
]Connect the 3.3V pin of the **Load Cell Shield **to a 5V supply making sure you have a common ground with the 5V supply and the Arduino/Shield./:m]
If you still don’t have proper values at the output of the shield (A0 or A1 depending on the channel you are using), please follow the attached testing procedure and let us know what are the results.
RB-Onl-38ABE-01-Testprocedure.pdf (1.13 MB)

Thank you Brahim.

The transducer provides proportional output, i.e. its sensitivity is independent of the excitation voltage.

I have tried exciting it with Arduino’s 5V and external 9V, keeping GND the same. The results from the shield gain remain the same - about 1.9 times higher voltage than without the shield.

I tried the testing procedure and passed steps 5-9. However, even according to the procedure, the shield gain is only ~2: applying 3.3V on one of pins provides a raw ADC change of ~330, i.e. 3300/330=10, opposed to Arduino’s native resolution of 5000/1023=5.

Since you better know the way the SGS works, please advise if using a smaller gain resistor would provide better resolution and higher gain (and how much higher).

Thank you again,
Ivan

The Load Cell Shield uses the AD8426 Rail-to-Rail Output Instrumentation Amplifier. As indicated in the datasheet, a gain resistor of 100Ohms should provide a gain of 495. A gain resistor of 49.9Ohms should increase the gain to 991.
However, the shield saturates at 1.8V with a gain of about 45 and that is due to the low pass filters for 1000Hz. There are two solutions:

  1. remove the resistors and sort circuit them (which means no filter at all). Which will bring out some incorrect noisy data.
  2. Read directly from pins 15 (channel 1) or pin 14 (channel 2) and and there will not be saturation. Which will be a dirty alteration to the board.
    In your case, we are not sure why the maximum gain you were able to achieve with the shield is only 2.
    Please contact us through our Support Center by submitting a ticket referring to this post and we will exchange the shield for you as the one you have might be defect.