enquiry as to why my analog output values only spans from 50-500 and not 0-1023

hi I would like to as to why when i connect my load cell to the INA125P based on this circuit diagram:

Load Cell with an Arduino (this circuit should be correct no worries)

and when i used a resistor of 33 ohms for amplification purpose and tested it with the arduino, the arduino only registers values from 55 to 510 and does not span the full range of 0-1023 on the analog output port. the load cell capacity is 200 pounds which is 90kg and when me (77kg) and my sister (60kg) stood on the load cell, the analog output was stuck at 510 for both of us.

How do i make it such that when a 90kg person stand on my load cell it registers 1023 and when nothing is placed it registers close to 0? i am using this load cell:

your help is much appreciated and cherished!

Check the voltage supplied to the Arduino with a DMM.
Only if it goes from 0..5.0V you will get 0..1023
otherwise it will be less.

As 510 equals half of 1023 you could use the analogReference and supply a 2.5V to the AREF pin, to double its range. Check - analogReference() - Arduino Reference -

That should give you a reading between 110 and 1023 so twice the accuracy...

@robtillaart thanks for your advice. but simply linking a 2.5V to the aref only doubles the range but it will not address the problem of producing the same analog output for a load of 60kg, 77kg, 90kg right?

how about changing the resistor value i am using for amplification? currently i am using 33ohms. since my load cell is 2mV/V and the excitation voltage is 10V so the signal output is 2 * 10 = 20mV. Thus to scale or amplify this value of 20mV to 5V in the arduino to match the '1023', i need to use a resistor that scale EXACTLY by 5/(20*10^-3) = 250 times am i right?

i used 6ohms and this allows for scaling of 10000 which is too high thus it will be accurate. what is the resistor that i should to get about 250 times amplification? can't seem to get this information online? perhaps i should use a 100ohm or 330ohm resistor? any recommendations?

i used the formula from this website (HTTP 301 This page has been moved):

G = 4 + 60kilo ohm / Resistor value to calculate the resistor value i need for a certain gain (amplification)

as for the gain/amplification, i calculate it using the sensitivity of the load cell 2mV/V multiplied by the excitation voltage of the load cell which is 10V to get 20mV. Following which i used the 5V supply from the arduino to divide by 20mV to get 250. Thus for a G of 250, i need a resistor value of 244 ohms thereabouts

however i found from another website that i should use the 2mV/V to multiply instead by the 5V supplied by the arduino to get 10mV and then use the arduino's 5V to divide by 10mV to get a G of 500. Using the formula above: G = 4 + 60kilo ohm / Resistor value i get a resistor value of 121ohms

can someone advise me which is the correct working?

my next issue is that why a resistor value of 33ohms or 6 ohms will not give me the full analog output from 0-1023 considering that 33ohms and 6 ohms are smaller than the supposedly correct 121ohms or 244 ohms for that matter? isit more of choosing the right resistor for amplification (sweet spot) rather than choosing a low valued resistor for amplification to play safe?

please advise. thanks!

It's an analog input, not an analog output.

To be useful, your measurement device needs to have an output which is, in some way, linear.

But that doesn't necessarily mean linear and also resulting in a zero voltage output with zero weight applied.

The device I have, with its amplification circuit, outputs 2 volts with zero force applied, up to about 3.5 volts when loaded. That results in an analog input count between 500 and about 670.

If you actually needed to, you could build additional electronics to convert this 2 to 3.5 volt output into a 0 to 5 volt output. To do so, well, is rather complicated and tricky and generally requires a negative power supply.

It is far more straightforward to solve the problem with a line of code in software than to mess around trying to become an expert in instrumentation amplifiers.

i used the term analog output as i was referring to the output from arduino on the pc serial monitor. isn't that an output?

oh and i believe that when i buy the load cell which max at 200lbs, i actually do intend to maximize the range of load i apply on the load cell. i think i shall not touch the negative power supply thing due to lack of expertise. i believe my output should be linear already as i tried exerting more and more force of gradually increasing magnitude on the load cell and the analog output showed a gradual increase too on the serial monitor.

i think i am just going to use the resistor values i calculated in my most recent post to see if i can obtain values between 510-1023 on the serial monitor. my circuit configuration should be correct as it is the same as most other posts you can find on google. so i guess the problem lies with the resistor. this shouldn' be too complicated i hope.

You have a load cell with an amplifier circuit, which produces an analog voltage, which you are reading with the Arduino's analog-to-digital converter.

That is an analog input.

It is probably unwise to aim for getting an actual 1023 reading from your analog to digital converter.

In order to do so, you would have to arrange for your load cell amplifier circuit to output a full five volts.

The problem then is, if the temperature changes tomorrow, or you put 105 kg on your 100 kg load cell, or the power supply voltage for the load cell circuit changes, then you might get more than 5 volts on the analog input pin of your arduino, which might damage it.

how does the negative power supply work?

the thing is that when i placed a multimeter with positive end at the a0 pin of arduino and negative end at the ground port of the arduino, the multimeter showed a gradually increasing value from 0mV to 400mV before restarting to 0 and the cycle repeats itself

to make sure that my multimeter did not spoil, i connect the positive end of the multimeter to the 5V port of the arduino and the negative end (black) of the multimeter to the ground and it showed 5V so i am sure there is something wrong with my a0 analog pin on the arduino. Aren't a0 or even a5 port supposed to produce a maximum voltage of 2.5V?

i suspect this is the reason why i can only get analog input values of 0-500 and not 500-1023 on the serial monitor.

@robtillaat you suggest to me that 'As 510 equals half of 1023 you could use the analogReference and supply a 2.5V to the AREF pin, to double its range. Check - analogReference() - Arduino Reference'

can i check with @michinyon whether this will work and allow me to tap on the maximum load that the load cell can operate? ie at 200 lbs when the analog input value is CLOSE to 1023? i need help @robtillaat as to what you mean by using the analogreference and supply a 2.5V to the AREF pin? where do i get the 2.5V? from battery? or do u mean i shd connect use the Vref2.5 instead of the Vref5 port of the INA125P ? thanks!

Hi, what model arduino do you have or are planning in getting?
The UNO does not have an analog output, the DUE does but it is limited in span.

Also connect the neg of your DMM to arduino gnd and the pos to the analog input.
Tell us what digital values you get on your monitor for the various voltages on the analog input pin.

Can you please post a copy of your sketch, using code tags?
Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png or pdf?

Thanks Tom......... :slight_smile:

Two things that don't seem to have been mentioned yet - input offsets and output range.

The INA125P is a top-flight performer for input offset, +/-0.25mV maximum, but note that
a strain guage / load cell will have an output offset that may dwarf this - once you amplify
the offset (whatever the source of the offset) by large amounts you get a large voltage
offset at the output. This generally means taking care not to over-do the gain setting.
You may want to consider a trimmer pot to adjust the input offset.

The output range of the INA125P is guaranteed from 0.3V to 3.8V only when operated
from a 5V supply, so you can't expect to see analogRead values outside the range 61..780
anyway... If your circuit runs from 3.3V it will be worse.

oh no help! my load cell can't work when i drop an object on it.
before dropping the object i put the object on the load cell to see the analog output value and it showed 55 for e.g. and when i dropped the object on the load cell, it also showed 55. i think it only measures weight and not impact force

Maybe it's not designed to. Impact lasts for fractions of a second.

Maybe it's specifically designed to damp the impact out?

Check the maker's datasheet.

Hi,

Can you please post a copy of your sketch, using code tags?
Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png or pdf?

We have no way of knowing how you have the load-cell connected.
A picture of your project will help as well.

DO NOT DROP items onto the cell, they acquire kinetic energy as they fall, it is coverted to potential energy when it hits the cell, this energy is many times larger that the energy from just resting the item on the cell.

Please........
Tom..... :slight_smile: