INA125 amplifier not working correctly?

Thread Starter

elizea

Joined Nov 14, 2024
10
Hi, I am trying to setup a Wheatstone bridge with just strain gauges (full bridge type 3). I am attaching it to a carbon fibre rod, so the strain is very tiny. When I just measure the output of the bridge the values range from 0.5-0.1mV, therefore I want to amplify the signal. For amplification I use the INA125P instrumental amplifier. I use a gain of RG=10kOhm so the gain should be 10 (4+60kOhm/10kOhm). However in combination with the Wheatstone bridge it does not measure any changes when the rod is bent. The output voltage is constant at 2.5V.

To make sure the amplifier circuit is correct I proceed to use a constant voltage supply instead of the Wheatstone bridge. These are my measurements using a power supply as the input signal (VIN) and to power the system (constant 22V):

RG (kOhm)1010101010
Gain (theoretical)1010101010
VIN (V)10,50,250,10,05
Vo predict1052,510,5
Vo measured5,93,21,70,520,4
The output voltages are not what I expect and I have tried with a range of RG’s as well. Does anyone know what the problem could be? I use an oscilloscope to measure, and the readings do fluctuate more at lower input voltages, probably due to too much noise.

This is my circuit:
 

Attachments

ericgibbs

Joined Jan 29, 2010
21,390
hi eiz,
A dual supply has 3 terminals marked..
Positive Volts, 0 Volts and Negative volts,

A simple power supply with only two terminals is not usable for your project.
Do you follow OK?
E
 

Thread Starter

elizea

Joined Nov 14, 2024
10
hi eiz,
A dual supply has 3 terminals marked..
Positive Volts, 0 Volts and Negative volts,

A simple power supply with only two terminals is not usable for your project.
Do you follow OK?
E
Yes that makes sense, thank you. So to power the amplifier I cannot use a unipolar supply? I need dual?
 

ericgibbs

Joined Jan 29, 2010
21,390
hi,
I have used the HX711 many times.
This is a simple example of an Arduino Sketch.
E
C-like:
#include "HX711.h"

HX711 scale;

void setup() {
  Serial.begin(38400);
  Serial.println("HX711 Demo");

  Serial.println("Initializing the scale");
  // parameter "gain" is ommited; the default value 128 is used by the library
  // HX711.DOUT    - pin #A1
  // HX711.PD_SCK    - pin #A0
  scale.begin(A1, A0);

  Serial.println("Before setting up the scale:");
  Serial.print("read: \t\t");
  Serial.println(scale.read());            // print a raw reading from the ADC

  Serial.print("read average: \t\t");
  Serial.println(scale.read_average(20));      // print the average of 20 readings from the ADC

  Serial.print("get value: \t\t");
  Serial.println(scale.get_value(5));        // print the average of 5 readings from the ADC minus the tare weight (not set yet)

  Serial.print("get units: \t\t");
  Serial.println(scale.get_units(5), 1);    // print the average of 5 readings from the ADC minus tare weight (not set) divided
                        // by the SCALE parameter (not set yet)

  scale.set_scale(2280.f);                      // this value is obtained by calibrating the scale with known weights; see the README for details
  scale.tare();                        // reset the scale to 0

  Serial.println("After setting up the scale:");

  Serial.print("read: \t\t");
  Serial.println(scale.read());                 // print a raw reading from the ADC

  Serial.print("read average: \t\t");
  Serial.println(scale.read_average(20));       // print the average of 20 readings from the ADC

  Serial.print("get value: \t\t");
  Serial.println(scale.get_value(5));        // print the average of 5 readings from the ADC minus the tare weight, set with tare()

  Serial.print("get units: \t\t");
  Serial.println(scale.get_units(5), 1);        // print the average of 5 readings from the ADC minus tare weight, divided
                        // by the SCALE parameter set with set_scale

  Serial.println("Readings:");
}

void loop() {
  Serial.print("A= ");
  Serial.print(scale.get_units(), 1);
  Serial.print("  Avg= ");
  Serial.println(scale.get_units(10), 1);

 // scale.power_down();                    // put the ADC in sleep mode
  delay(1000);
 // scale.power_up();
}
 
Top