Hello!
I'm building a device that is supposed to measure the (pulling) force from a hydraulic cylinder. It is partially working but it have some problems that I would appriciate som input on...

The major components is:

• S-shaped load cell with strain gauges in a full wheatstone bridge configuration. Datasheet (pdf)
• AD623 instrumentation amplifier Datasheet (pdf)
• Arduino Mega.

Right now it is wired like this:

However, the decoupling capacitors is not there yet and may be a source of error. I will add them as soon as I have them.

I want 0-16 kN to equal 0-5V (1024 on the analog input).
The loadcell gives a value of 2 mV/V (on the full range), so with 5 V and 2000 kg (19620 kN), the output will be 10 mV.
Which means that the input voltage to the instrumentation amplifier will be 1/1962 mV/N.
Maximum input voltage will be 1/1962*16000(My desired max load) = 8.15 mV.
8.15 mv should be amplified to 5 V, so the optimal gain is 5000/8.15 = 613.5.
The Rg resistor on the AD623 determines the gain with the formula Rg = (100000/G-1) where G = desired gain.
The optimal resistor is therefore 100000/613.5-1 = 163.2 Ohm.

The closest I got with the resistors I had was 168 Ohm, which equals a gain of 596.2.
16kN will then equal a voltage of 4.85 V which is close enough.

The whole setup works fine until the output from the amplifier reaches 3.6 V (around 740 on the analog "steps" and roughly 11 kN), then it just stops and refuses to go any higher even though the force from the hydraulic cylinder is well above.

I have been able to test the setup with known weights up to 350 kg and that gives stable, linear values.
The error appears even with a simple analog read code in the arduino
I have tried different AD623 amplifiers with the same result
(Edit: I have a correct input voltage of around 8 mV at max load so the loadcell is working.)

Can something raise the potential on the REF pin?
Is the missing capacitors the problem?
Any other rookie mistakes?

Appriciate all help and ideas.

I do not fully understand the working of your wheatstone bridge. Normally you have 3 known resistor values in the bridge and based on the voltage of between the two measuring points you can calculate the last resistor value. In your case I see 4 strain gauges. The weight goes on all four of them ? Or just one ?

So if you're stressing the four gauges with the same load, you're actually measuring the difference in measurement between the four of them and maybe that's not linear at all given a certain weight.

Besides that the output of the instrumentation amplifier can swing between both rails, in your case I assume it's 5V and GND. If something happens to that 5V, let's say it drops to 4.8 V. The maximum output of the amplifier will be 4.8V regardless of what difference you put at the input.

As a last remark, look at the datasheet of the AD623 on page 14 fig.40. I'm not sure what that graph means, but if the output voltage drops that dramatically because you draw 1.5 mA,. You'll need to add a buffer, but I might be misinterpreting this graph.

I would split the circuit in blocks and do some tests. Replace the wheatstone bridge by two trimpots and reproduce the input voltage difference and see how the amplifier reacts. Add some load to the output and see how it reacts. Measure the voltage differential on the wheatstone bridge with a multimeter and see if it's coherent with your calculations. Finally measure what happens with the voltage rail when you see the issue occur.

What's the common voltage of your bridge? If it's around 2.5 V, the calculator will not go beyond the 3.6 V output voltage

An op-amp with a 5V supply is not normally going to be able to actually output 5V, unless it is some kind of special one.

unless it is some kind of special one.

This is a special one.

The decoupling capacitors are absolutely essential, or the amplifier will oscillate. The inputs are limited to 3.5 volts in this particular circuit. Pay close attention to the circuit design notes and limitations in the AD623 data sheet, and keep in mind that plug-in breadboards are notorious for circuit instabilities when used with op amps.

See this thread, especially the last couple of posts. http://forum.arduino.cc/index.php?topic=248765.0

There are rather severe limitations on the output voltage range, depending on the power supply configuration and common mode input voltage. In your circuit you cannot expect to get the full range on output (see Figure 23 of the AD623 data sheet).

cdacunha71:
I do not fully understand the working of your wheatstone bridge. Normally you have 3 known resistor values in the bridge and based on the voltage of between the two measuring points you can calculate the last resistor value. In your case I see 4 strain gauges. The weight goes on all four of them ? Or just one ?

So if you're stressing the four gauges with the same load, you're actually measuring the difference in measurement between the four of them and maybe that's not linear at all given a certain weight.

Besides that the output of the instrumentation amplifier can swing between both rails, in your case I assume it's 5V and GND. If something happens to that 5V, let's say it drops to 4.8 V. The maximum output of the amplifier will be 4.8V regardless of what difference you put at the input.

As a last remark, look at the datasheet of the AD623 on page 14 fig.40. I'm not sure what that graph means, but if the output voltage drops that dramatically because you draw 1.5 mA,. You'll need to add a buffer, but I might be misinterpreting this graph.

I would split the circuit in blocks and do some tests. Replace the wheatstone bridge by two trimpots and reproduce the input voltage difference and see how the amplifier reacts. Add some load to the output and see how it reacts. Measure the voltage differential on the wheatstone bridge with a multimeter and see if it's coherent with your calculations. Finally measure what happens with the voltage rail when you see the issue occur.

cdacunha71:
What's the common voltage of your bridge? If it's around 2.5 V, the calculator will not go beyond the 3.6 V output voltage

The Strain gauge setup should be correct, it is a full bridge instead of the quarter bridge you are describing. I have a hard time myself to wrap my head around how the full bridge is working, but all gages are active and two are compressed and two expanded. That gives a good sensitivity and also other benefits like linearity and automatic compensation for thermal expansion.

Regarding the graph (fig. 40). It is not crystal clear as you said, but do the analog input on the Arduino draw 1.5 mA? Thats all the AD623s output pin is connected to... Better measure it..

That calculator was however a very good find! Common mode voltage was a new concept to me. My common mode voltage should be 2.5 Volts. That means that the maximum output is 3.6 V which is exactly what I get.
I think that was the issue. Thank you!

jremington:

unless it is some kind of special one.

This is a special one.

The decoupling capacitors are absolutely essential, or the amplifier will oscillate. The inputs are limited to 3.5 volts in this particular circuit. Pay close attention to the circuit design notes and limitations in the AD623 data sheet, and keep in mind that plug-in breadboards are notorious for circuit instabilities when used with op amps.

jremington:
See this thread, especially the last couple of posts. http://forum.arduino.cc/index.php?topic=248765.0

There are rather severe limitations on the output voltage range, depending on the power supply configuration and common mode input voltage. In your circuit you cannot expect to get the full range on output (see Figure 23 of the AD623 data sheet).

Yes the capacitors will be installed soon. And every wire and component is soldered on a prototype board so that should be ok. I learned about breadboards limitations the hard way Figure 23 in the AD623 datasheet says that a CMV of 1.9 V gives the largest output (5V) which would be ideal for me.
Just a fast thought, if I connect the loadcell to the 3.5 V supply instead of the 5 V (but keep the AD623 feed at 5V, My CMV would drop to 1.75 V instead of 2.5 V. Is that correct or am i missing something?

However, if the common mode voltage can't be altered in any way, I think a simple solution to the problem is to chose the gain so that max load = 3.6 volts. It will be a lower resolution but still acceptable.

Just a fast thought, if I connect the loadcell to the 3.5 V supply instead of the 5 V (but keep the AD623 feed at 5V, My CMV would drop to 1.75 V instead of 2.5 V.

Good idea -- that should work well.

jremington:
Good idea -- that should work well.

Thanks, I can confirm that it worked. I remembered wrong though, it's 3.3 not 3.5 V so the CMV became 1.65 V. But I still get almost 4.4 V output instead of 3.6, so it was a big improvement.

cdacunha71:
What's the common voltage of your bridge? If it's around 2.5 V, the calculator will not go beyond the 3.6 V output voltage

1.5 years later this is still valuable - was solving exactly the same problem with my current monitoring setup with AD623N. Thanks a LOT!

A solution would be to run the Mega's A/D converter on 2.56volt Aref.

Put this in the setup.

analogReference(INTERNAL2V56);

Max A/D value of 1023 is now reached at ~2.56volt
It also doubles the sensitivity.
Leo..

It seems the AD623 reaches the upper limit of saturation voltage.
It has a simple solution.
Increase the supply power of AD623 to 7 volt or grater.

good luck!