Discussion in 'Microcontrollers, Programming and IoT' started by cathal, Nov 23, 2014.

1. ### cathal

11
0
Nov 23, 2014
Hi!

For my masters thesis i have to develop a scaled helicopter test bench. To test te lift force of the helicopter I use load cells. I found a solution online to make a load cell circuit with an arduino to process the measured forces. Everything works, but the precision of the circuit isn’t good enough.

In picture 1 you can see the circuit I used.
For a load of 20 kg I should get a value of 1023 after the arduino A/D converter. The maximum value I can get is 864.
So now I have a few questions that could help me get a more precise circuit.

1) Could anyone explain me what the capacitor does? I know HOW a capacitator works, but i don’t understand what it does here. Could it influence the precision?

2) I didn’t use a breadboard but made a pcb. I thought this would be better. Is this correct? I would test it by making a new circuit on a breadboard, but I’m out of components.

3) I used these load cells: http://www.phidgets.com/products.php?category=34&product_id=3134_0
I have problems with residual stresses, but I can solve this with my Arduino. Could it be that they aren’t precise enough?

2. ### Frenoy Osburn

64
24
Nov 20, 2014
Welcome to ElectronicsPoint.

1. If you are talking about the electrolytic capacitor sitting between 12V and GND then that's a reservoir capacitor. If your circuit consists of components that have low resistance, (eg. a coil) when these are activated, they draw a large amount of current initially and then stabilize to normal values.

This draw of current tends to drop the supply voltage. The capacitor is present to take care of this small current surge.

2. Well designed PCBs are usually better than breadboards.

3. What's the ADC reference voltage? To check why you are getting 864 instead of 1023, I would recommend you check the input voltage to the Arduino, (voltage at pin A0) and correlate this to the value obtained by the ADC. That way you will be able to tell if the problem lies with the Arduino or the load cell + IA.

Last edited: Nov 23, 2014
3. ### (*steve*)¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥdModerator

25,501
2,841
Jan 21, 2010
I would suspect that your instrumentation amplifier can't swing all the way to the supply rails. You may need to operate it from (say) a +/-9V rail.

The specs say that typically the maximum output voltage is 4.1V from a 5V (V+ - 0.9V) supply. You're seeing 4.22V, so it's a little better than average. You'll also have a problem zeroing it too because the minimum output voltage is around 0.4V (V- + 0.4V). This would be a count of around 81.

KrisBlueNZ likes this.
4. ### cathal

11
0
Nov 23, 2014

I haven't answered becaus my helicopter stopped spinning. So my attention shifted from measuring to get the helicopter to spin. Now everything is fine, but i'm still facing the same problem.

(*steve*) you said that the input voltage for the amplifier could be to low. My arduino (and thus my amplifier to) is powered by the usb and my laptop. Could that be the problem?
I don't understand how you came up with the 4.22v could you explain this?

For the capacitor: I'll probably have to make a new PCB. How do I know what capacitor to choose?

Cathal

Last edited by a moderator: Dec 15, 2014
5. ### KrisBlueNZSadly passed away in 2015

8,393
1,271
Nov 28, 2011
Maybe. Check the +5V rail voltage. If it's significantly less than 5V then you should power the circuit separately from a regulated power supply.
You said the highest raw value you get from your ADC is 864, not the expected full-scale value of 1023.

864/1023 * 5.0V = 4.22V.
If you're talking about the smoothing capacitor, I don't think you need to change it.

Here's the likely explanation for the limited range of ADC values you see. The instrumentation amplifier's data sheet tells you that when it is operated from a +5V supply, its output cannot swing all the way to either the positive or the negative rail.

The solution is to power the INA125 from wider supply voltages than +5V and 0V. The INA125 has a pretty low quiescent current consumption (although that can be affected by the external circuitry), so the ICL7660 (http://www.intersil.com/content/dam/Intersil/documents/fn30/fn3072.pdf) should be suitable for generating a higher positive rail and a negative rail for the INA125.

You should protect the ADC against the INA125 driving its output outside the 0V~+5V range of the ADC. You can do this by inserting a series resistor between the INA125 output and the ADC input - 10 kΩ for example. This increases the driving impedance for the ADC which may reduce the accuracy and repeatability of the conversion; a small capacitor (e.g. 10 nF) from the ADC input to 0V may help.

Post a schematic if you want more specific info.

6. ### cathal

11
0
Nov 23, 2014
Thanks a lot! I'm really struggling with the electronics so your help is much appreciated.

If I do this wouldn't that fix the problem I'm having? For example when i power the circuit with a 12v adapter?

Would this work?
A last question: I've read the datasheet of the ICL, but i Don't completely understand what it does. Does it convert the supply voltage (+5V) to -5V? I don't understand how that could help me. I thought I needed something that would convert the +5V to for example 10V

7. ### KrisBlueNZSadly passed away in 2015

8,393
1,271
Nov 28, 2011
The INA125 can't drive its output fully to either its positive or its negative supply voltages. If you want it to drive its output from 0V to 5V, its positive supply must be more than +5V and its negative supply must be less than 0V, i.e. negative. So you need a boosted positive supply, and a negative supply.

This circuit is shown in the ICL7660 data sheet in a diagram called a "combined negative voltage generator and positive voltage doubler". It uses an ICL7660, four capacitors, and two diodes, and it takes a single +5V supply and generates a higher positive rail, and a negative rail, which can be used to power the INA125.

Yes, you could power the circuit from a 12V adapter, with the INA125 powered from +12V and the Arduino powered from a 5V regulator or powered separately, but you would still need a negative supply rail, so you would need an ICL7660 or similar. It might be simplest to stick with a +5V supply and use the ICL7660 to generate the higher positive rail and the negative rail needed by the INA125.

You have the connection to the Arduino right, except that the 10 nF capacitor will not be polarised so you can remove the "+" and "-" markings.

8. ### cathal

11
0
Nov 23, 2014
Okay I think I understand now. My new schematic looks like this:

9. ### KrisBlueNZSadly passed away in 2015

8,393
1,271
Nov 28, 2011
Yes, that's the right idea.

10. ### cathal

11
0
Nov 23, 2014
Last question:
You said I should use a 10kΩ resistor and a 10nF condesator to protect the arduino. Did you choose these values by experience or is there a way to calculate this?

11. ### KrisBlueNZSadly passed away in 2015

8,393
1,271
Nov 28, 2011
Rule of thumb, i.e. "it's close enough". The relevant calculation is the input current into the protection network in the Arduino. This network clips the input pin voltage to about (VDD +0.6V) and (VSS - 0.6V). In the worst case, assuming no losses in the voltage rail generator and assuming that the INA125 pulls its output fully to its supply (which we know it can't do, but it's a conservative calculation), you will have abou 4.4V across the series resistor. With a value of 10 kΩ that corresponds to 440 µA which won't cause problems with the Arduino and won't load down the voltage rail generator much either.

I've assumed you're not measuring rapid changes. The R-C circuit will delay rapid changes. Those values give you a -3 dB frequency of 1600 Hz so as long as the input signal doesn't have any important frequency components above around 100 Hz the effect of the R-C circuit will be negligible.

12. ### cathal

11
0
Nov 23, 2014
Ok, thanks a lot for all the help!