Amplifying and Increasing Sensor output resolution, cost-effective fashion

I have a general question. How can one amplify the signal and increase the resolution of things such as thermocouples, load cells, or series shunt resistors, and measure them with an Arduino?

Specifically, I've been attempting to get decent resolution output (0.5g accuracy) from a load cell which outputs 3.5 mV for 5 kg of load, or temperature output from an RTD which again outputs in decimals of millivolts. For both of these, I've been using an instrumentation amplifier (INA125P) to amplify the signal and then a 24 bit ADC to put this into higher resolution. However, the addition of these two drives up the monetary cost of reading every single sensor input.

Am I doing it in a necessarily expensive fashion, when I could have used cheaper ADCs/IAs? Or is that something that comes to mass-manufacturers only with scale?

(not a completely related post, but in the interest of transparency, I'd asked this question earlier - http://forum.arduino.cc/index.php?topic=331903.0)

0.5g/5Kg is 10,000 steps.

A 14-bit A/D (16,384 steps) would cover that. Arduino's 10-bit A/D (1024 steps) would not.

So a more common/cheap 16-bit A/D would be good enough.
Display, with a 16-bit A/D, could even be upgraded to 0.1g/5Kg

Tell us what you have done so far.
Leo..

analog signal has to be amplified to a useable value.
an instrument op-amp is needed, a Wheatstone bridge is needed for the load cell as well.

you can amplify one section of the range to increase resoluton, but you need to understand that resolutionn is not accuracy

OP is using the INA125P. http://www.ti.com/lit/ds/symlink/ina125.pdf

The use of a 24-bit A/D is just silly, unless you want to weigh molecules.
Leo..

I am trying something similar with Load Cells right now and first tried using the INA125P. I was able to read the load cell once I used about a 6 ohm resistor to increase the amplification but it would not read very accurately and would not read the range I needed. I just ordered the hx711. Anyone have experience with this? would it work for say .1g over a range of 40 kg?

My bad - here is where I had a brain freeze moment - the calculation I had made was that I needed to measure up to 3.5 mV/10,000 (since 10,000 is the number of steps needed for 0.5 g of accuracy) = 3.5e-7 V. So when you divide 4 V of available range by 3.5e-7, you get the smartass answer I reached. :o

I'm reattempting the INA125p/AD7705 bridge again in the next twenty four hours (getting the 2MHZ crystal), and I'll post results and schematics if anyone is interested. Thanks so much for bearing with me on this :frowning:

Asherflynt - I'm getting the HX711 by the end of this week, will post results of INA125p/HX711 once I am done.

I have no hands-on experience with these chips and load cells, but I have used other INA-type chips in microphone preamp designs/builds.
A good layout, shielding, supply decoupling, star grounding etc. was crucial.
How high is your supply voltage. Dual, equal. What Vref on the INA for your load cell. Are you using INA's Vref for the A/D.
I would like to see a schematic diagram of your attempts.
Leo..

Wawa:
I have no hands-on experience with these chips and load cells, but I have used other INA-type chips in microphone preamp designs/builds.
A good layout, shielding, supply decoupling, star grounding etc. was crucial.
How high is your supply voltage. Dual, equal. What Vref on the INA for your load cell. Are you using INA's Vref for the A/D.
I would like to see a schematic diagram of your attempts.
Leo..

I set mine up based on this instructables other than I had to use a 6 ohm resistor rather than th 10k suggested on this site. It worked but not well. Do you have a wiring diagram or a way to improve it?

Where does the 24-bit A/D fit in.

Most Arduinos have a 10-bit A/D. 1024 digital values.

I had a quick look at the instructables example sketch, and see they use 400 values of that.

All added up, 12.5 gram/step resolution on your 5Kg scale.
Whatever you do to the amplifier part.
Leo..

Hi,
The problem you are going to have to look out for is noise, as you amplify, unless you have good shielding, you will be amplifying noise as well.
This would destroy any chance of increased resolution.

In the case of the loadcell, you would need stable base to mount the assembly on, even movement on the base surface will cause noise and or unstable readings.

Thermocouples, 0.1DegC is about as good as it gets, and sometimes at a price.

Tom.... :slight_smile:

Wawa:
Where does the 24-bit A/D fit in.

Most Arduinos have a 10-bit A/D. 1024 digital values.

I had a quick look at the instructables example sketch, and see they use 400 values of that.

All added up, 12.5 gram/step resolution on your 5Kg scale.
Whatever you do to the amplifier part.
Leo..

How so? If you are referring to the section of code below then this is only used for calibration. This does not mean that only 400 of the 1024 are being used. In the example those values are meant to be placeholders that would be replaced when one actually calibrates the scale with know weights.

// Enter you own analog values here
float loadA = 10; // kg
int analogvalA = 200; // analog reading taken with load A on the load cell

float loadB = 30; // kg
int analogvalB = 600; // analog reading taken with load B on the load cell

As said, I had a quick look...
Still the problem of only 1024 digital steps with most Arduinos. 1gram per Kg.
Post a complete schematic diagram and the code you use.
Leo..