Strain Gauge Amplification Circuit
Clarus Goldsmith, June 2024
Last updated
Was this helpful?
Clarus Goldsmith, June 2024
Last updated
Was this helpful?
This page will go into how to design a strain gauge amplification circuit that can be balanced in software using a digital potentiometer, using the circuit found here as an example.
<Purpose of wheatstone bridge goes here>
The digipot allows us to balance the Wheatstone bridge in software on data collection startup instead of manually turning a potentiometer. Particularly useful when you have a ton of temperature and humidity sensitive sensors (i.e., the strain gauges) you want to read from across multiple days.
The circuit schematic for the Wheatstone bridge with a digipot included is below. By adjusting the wiper, we adjust the resistance difference between the two arms.
Note that for this schematic the potentiometer is wired in rheostat mode. This involves "floating" (i.e., not connecting) one of the terminals, and allows the digipot to act as a variable resistor rather than a voltage divider. Digipot manufacturers typically sell versions of their components already wired as a rheostat in the package, meaning you don't have to do anything extra to get it to behave as such.
Additionally, we need to choose a resistance value of the digipot for which the bridge will be balanced. For this circuit we'll first the resistance at a tap ~1/4 of the way through the digipot's range, 1753Ω. Thus, our balance equation becomes:
To satisfy our first condition regarding a single tap, we can create a second equation:
Thus, for my PCB the Wheatstone bridge schematic becomes:
The instrumentation amp takes the signal from the Wheatstone and amplifies it by a gain value set using a gain resistor put between two of the ports.
The instrumentation amplifier manual will include an equation for calculating the resistor value for a chosen gain. The example circuit uses the INA821D instrumentation amp, which has the gain equation:
Past experimentation to design this circuit has shown that we want gains between 56 and 77 to allow for a nice range of adjustment from the digipot without completely overloading the inst amp. These gains are produced by resistors between 898Ω and 649Ω, respectively. Anything in that range can be used, depending on the use case for the circuit.
The instrumentation amp has two input pins: +IN and -IN. Which arm of the Wheatstone bridge connects to which pin matters. You'll notice that I marked the outputs of the Wheatstone accordingly in the above figures. From my experience:
The arm including the digipot needs to go into +IN
The arm including the strain gauge needs to go into -IN
If your design ends up being substantially different than this example, I would build the circuit on a breadboard first to double check the inputs to the instrumentation amp are oriented correctly.
The digipot is controlled using the I2C bus, so will need to be connected to pins D24 and D25 on the OpenCM. Because I2C relies on pulling voltage down to communicate, we need to supply voltage to these connections before they get into the digipot. As covered in the I2C communication page, a 2kΩ resistor is sufficient for standard I2C speed. Thus, we'll connect a pair of 2kΩ resistors between power and connections from pins D24 and D25.
The manual for the instrumentation amp recommends placing a 0.1uF capacitor between the voltage source and the voltage pin, as close to the voltage pin as possible on the physical board.
To help with analysis, we will create a variable to represent the total resistance of the two parallel resistors. The equation to balance this Wheatstone bridge is:
For our example circuit, the grid resistance of a MMF402103 strain gauge is 350Ω, so = 350Ω. 350Ω resistors are weirdly expensive, so we'll instead use a 352Ω resistor. As our equation becomes:
The digipot we'll use for our example is the MCP4532, a digital rheostat with a total resistance of 5kΩ. At startup, the digipot wiper will be at its halfway point, so 2.5kΩ.
Ideally we want the resistance of one tap of the digipot, , to be approximately 0.1% of the total resistance of the arm to give us enough fine enough precision when adjusting the digipot. From the manual of the digipot:
Solving each equation in parallel for :
We can then set the two equations as equal to find :
I also generalized this equation for to make it easier to pick values:
Where is the desired tolerance and is the desired digipot resistance when the Wheatstone bridge is balanced.
At this point, check the available resistor values on Digikey to see if this resistance is feasible. 80.6Ω resistors are available, so we'll set . If resistors for the calculated value aren't available or are too pricey, simply use the next closest one and solve for in our generalized equation for to find where the bridge will now balance.
Now that we've selected , we can use one of the equations for to find :
Similarly as for , we next check if this is a feasible value resistor value. The closest resistor value is 84.5Ω, so we set .
This whole process can be highly iterative, depending on the performance you want from the whole circuit. In the final version of the PCB I designed, and , yielding a tolerance of 0.0013 with a balance resistance of 1521Ω.