3 wire load sensor connection to INA125P

arduinocinstrumentation-amplifierload cellwheatstone-bridge

I am trying to use a 3 wire load sensor, connect it to INA125 for voltage amplification and then use the amplified output to be fed to ADC of Arduino.

I had used below configuration with INA125.
enter image description here

Where S+ and S- are Sense + and Sense -. I tried all the configuration i.e single load cell, half wheat-stone bridge, full weat-stone bridge but nothing worked. I only keep on getting some random ADC value 14-16 and even on pressing the load sensor upside down, nothing changed. Basically i followed the below configuration while trying with single load cell.

enter image description here

And a simple arduino code, just to read ADC value in order to check , whether i am getting things right. As per code, the ADC value must change, but they didn't. Below is the sample code.

#include<stdio.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int sensorValue = 0;
int sensorPin = A0;


void setup()
{

  Serial.begin(9600);
  Serial.println("Weight sensor reading");
  lcd.begin(16, 2);

}

void loop()
{
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.print("Weight measurement");
  sensorValue = analogRead(sensorPin);
  Serial.print(sensorValue);
  lcd.setCursor(0,1);
  lcd.print(sensorValue);
  delay(200);
}

Now with respect to the single load cell, i connected black to GND, white to +5V and Red to S+ at pin 6 of INA125 and i connected PIN7 that is S- to GND. But this didn't worked.

When i used 2 load sensors, i connected the white wires of both load sensors to +5V, Black wire to GND, RED wire of 1st load sensor to S+ and RED wire of other load sensor to S-. But even that didn't work and readings remain same i.e. 14-16 volts and didn't change even on applying sufficient amount of pressure.

Now with respect to the full wheat-stone bridge configuration, i used this pic based configuration given on this link.But even it didn't worked.

I am not able to understand what i am doing wrong.Can any one suggest me

Important : I am using 10k resistance between PIN8 an PIN9, which provide me a gain of 10. Is that sufficient for arduino to read ? Or i must use some other resistance which must provide me a higher gain. But i think even with 10k resistance i must see some change in the value of the ADC, but i am not even getting that. In my earlier question also, i asked a similar type of question, but at that time i wasn't having INA125 with me.

Below is the pic for the configuration which i am using.

enter image description here

Best Answer

I am quite a noob (I'm actually a programmer, not an electrical engineer!) - but I'm doing something similar and maybe my discoveries will help you out.

Firstly, I suggest you read this: http://www.instructables.com/id/Arduino-Load-Cell-Scale/

Yes - it's for a 4-wire load cell, but it's very similar.

Also, read this: http://airtripper.com/1626/arduino-load-cell-circuit-sketch-for-calibration-test/

FIRSTLY: The big difference between these two articles, is the latter shows exciting the load cell from the INA125 voltage reference... NOT the arduino supply. I would strongly suggest doing this - as my readings significantly stabilised (improved from 50g fluctuation to only 5g!).

SECONDLY: In your particular circuit, you cannot use pin 15 for your voltage reference (5v) - Page 11 (section "Precision Voltage Reference") of the specification says "Positive supply voltage must be 1.25V above the desired reference voltage."

http://www.ti.com/lit/ds/symlink/ina125.pdf

This means that because your circuit supply is 5v, you can only use a voltage reference pin that is less than 5v-1.25v=3.75v. (Why? It appears that the IC uses 1.25v to generate those reference voltages, meaning that the 5v and 10v pins will not actually be producing 5v and 10v for you!). That leaves only the 2.5v reference pin as a candidate. Unfortunately, that also means that if you use the same voltage reference as E+, you will be running your load sensor at 2.5v - which may not be enough excitation - you will need to read your load cell spec - but they usually want around 10v to really work well.

I originally made the same mistake, and used the 5v reference pin, with a circuit supply of 5v, but then I saw this on my scope:

enter image description here

That spike is a 100mV pulse every 200ms. With my calibrations, it resulted in 200g worth of error!! When I switched to the 2.5Vref, that spike went away.

SECONDLY: Why is your VrefOUT (pin 4) connected to your 5v supply? This pin should ONLY be connected to your VrefIN (pin 14 for 2.5v, pin 15 for 5v, pin 16 for 10v) AND your load cell E+. Here is my understanding of what it's for... The amplifier needs to have a consistent voltage reference, as the circuit supply may fluctuate throughout its life (i.e. depleting battery etc), so you need to give the INA125 a known voltage reference - luckily the INA125 produces 3 of them! (2.5, 5, and 10).

THIRDLY: your amplifier gain... I don't use Arduinos, but my analog inputs are referenced against 3.3v. My load cell produces about 4.1mv when loaded with 5kg - I needed to amplify that to near 3.3v, so my required gain was around 800!! If your cell output and Arduino requirements are anywhere near mine - then your gain resistor is FAR too big. Mine was 75 ohms. With such a huge resistor, I would expect you to see no change on your analog input.

So, to summarise:

  1. Feed your load-cell E+ from your INA125P pin 4 - not your circuit supply. Pin 4 will be much smoother and more consistent.
  2. Don't connect your pin4 to your circuit supply (marked as 5v in your diagram). I don't know why you did this.
  3. You amplifier gain is probably too small, as a result of your gain resistor being far too large. If you can't be bothered calculating what resistor you need, grab a potentiometer in the range of 200R and play with it.