Load cells (force sensors)
ITLL load cell inventory (note- this isn't updated with what is currently checked out)
So you want to measure force?
Load cells come in various form factors based on what type, magnitude, and direction of load you are interested in quantifying.
Ask yourself these questions when choosing a load cell (if you do, when you go to Electronics Center to check out a load cell from the DAQ engineer they will be very happy if you have already considered the following):
Am I measuring a compression or tension force?
Am I measuring a static or dynamic force?
Is one axis of measurement sufficient, or do I need a multi-axis load cell?
What is the maximum force I expect to measure?
Need help answering the questions above?
Compression vs tension
Compression load cells are perhaps more common; they measure a force that is pushed down into the load cell. Think of a bathroom scale.
Tension load cells measure a force that is pulled away from the body of a load cell. Think of a hanging scale for measuring the weight of luggage or a fish.
Static vs dynamic
An unchanging or very slowly changing force is a static force. Once again, the bathroom scale is a good example. A dynamic force is a transient or quickly changing load, such as a force from an impact or a vibration. Typically we use different load cells for static vs dynamic force measurements, and this is because the operational principle underlying each type of load cell differs. Static load cells comprise of strain gauges, which do not have a particularly fast response time, but they give a stable linear signal over time, whereas dynamic load cells often comprise of piezo-resistive elements which are capable of fast responses but offer a tradeoff with linearity over time.
Uniaxial vs multi-axial
If you only need to measure compression or tension along one axis (once again, think of standing on a bathroom scale, the only acceleration we are concerned with here is due to gravity, so F=ma is only along one vector), a standard uniaxial load cell will do just fine. However, if you are interested in measuring forces along multiple axes in a structure or a robot, a multi-axial load cell might eliminate a complicated set-up involving mounting multiple load cells along different axes.
Range
Load cells come in a wide span of ranges, from less than 1lbf (pound force) to over 2,000 lbf! If you use too high of a load cell, all of your data will be compressed down to the lower end of the range of your sensor, and you aren't maximizing the resolution of your DAQ. A good rule of thumb is to choose a sensor whose range is around 10% higher than your maximum expected force.
Often we use "pancake style" or "button" load cells to measure a uniaxial compression force.
S-type load cells look like this:
Single-point (you measure force at the center of the "dumbbell") load cells look like this:
Tension (and some dual tension/compression) load cells look like this:
...and there are many more kinds of load cells!
Enter the Wheatstone Bridge Circuit
All of the load cells pictured above contain four strain gauges internal to the load cell. The working principle is that the resistance values of the strain gauges change in response to an applied force. A change in resistance value is something we can measure electrically, and this electrical response is directly proportional to the applied mechanical force.
The circuit inside a load cell looks like this, and it has a name - it's a Wheatstone Bridge circuit:
Each of the resistors depicted above is a strain gauge; you do not need to build the circuit, the resistors (strain gauges) are already in your load cell! You just need to apply an excitation voltage (VEX) and measure the voltage difference between the two parallel voltage divider circuits (VCH -/+ in circuit diagram above).
A little more detail, for curious minds
I include the information below so you understand how a load cell converts a physical force to voltage (which we can measure with a data acquisition (DAQ) device).
(Source: Pulled straight from NI-MAX by Claire)
Bridge-based sensors operate by correlating a physical phenomena, such as strain, temperature, or force, to a change in resistance in one or more legs of a Wheatstone bridge. The general Wheatstone bridge, shown in the following figure, is a network of four resistive legs with an excitation voltage, VEX, that is applied across the bridge. One or more of these legs can be active sensing elements.
A physical phenomena, such as a temperature shift or a change in strain applied to a specimen, changes the resistance of the sensing elements in the Wheatstone bridge. You can use the Wheatstone bridge configuration to help measure the small variations in resistance that the sensing elements produce corresponding to a physical change in the specimen. [Claire note - when the bridge is "balanced". it reads zero voltage when no load is applied]
[Claire note: the circuit depicted above is a full bridge circuit, where all four resistors (R1-R4) are strain gauges. If only two resistors are strain gauges, that would be a half bridge, and in a quarter bridge configuration only one of the resistors is a strain gauge. In a half or quarter bridge configuration, the remaining resistors are static resistors. Why would we ever do this? Sometimes a load cell isn't practical for our measurement, and we are more interested in analyzing strain along the skin of an aircraft, for example]
Cool, so how do I wire it up?
Most load cells have four wires. You will need to connect the four wires correctly to a data acquisition (DAQ) module to generate data measured by the load cell.
- Black and red wires: this is where you apply the excitation voltage to VEX+ and VEX - of the Wheatstone bridge circuit shown earlier
- Where you plug in the red and black wires depends on what data acquisition device you are using (Arduino, USB DAQ, NI 9219, NI 9237, etc). I've never seen an exception to the excitation voltage wires being red and black, so if you come across one, please let me (claire.porter@colorado.edu) know
- 5V is common for many load cells, but check your load cell's datasheet for "Excitation" to verify this value
- Where you plug in the red and black wires depends on what data acquisition device you are using (Arduino, USB DAQ, NI 9219, NI 9237, etc). I've never seen an exception to the excitation voltage wires being red and black, so if you come across one, please let me (claire.porter@colorado.edu) know
- Other two wires: you will use your DAQ/Arduino to measure the voltage across these two wires to determine the force measured by the load cell ( VCH(+/-) nodes in the Wheatstone bridge circuit shown above)
- Where you plug in the yellow and white (or other color, depends on your load cell) wires depends on what data acquisition device you are using (Arduino, USB DAQ, NI 9219, NI 9237, etc)
- Check your datasheet to see which is positive/negative. Or apply trial and error, and if the voltage decreases instead of increasing when you apply a load, swap em
But wait! You haven't told me where to connect the wires, just what they do
You're absolutely right. I want you understand how a load cell works, to make you a stronger engineer. If you can explain how the four wires of a load cell relate to the Wheatstone Bridge circuit, you understand the basic fundamentals of force sensing using a load cell. Congratulations!
At this point you understand that we need to apply an excitation voltage (red and black wires), and measure the voltage difference between the other two wires produced when the load cell experiences strain.
Choosing between Arduino orvs other DAQDAQs to read your force data
You have several options for measuring the voltage response from your load cell, but note that the voltage produced by a load cell is small enough (sometimes as low as a single mV for small loads) that we either need to amplify the voltage or use a high enough resolution DAQ to provide meaningful results.
| 1. NI USB DAQ (NI 6001, 6002, 6008, 6009) | Pros: Very easy to wire up. No need to amplify |
Cons: You must know LabVIEW or Python (use nidaqmx library) |
| 2. Arduino | Pros: You might already familiar with Arduino | Cons: You need to amplify the voltage to read it |
| 3. NI 9237 or NI 9219 | Pros: Fairly easy to wire up. No need to amplify | Cons: You must know LabVIEW or Python (use nidaqmx library) |
| Other GPIO hardware not currently available for checkout from the ITLL | Pros: Presumably there is some good reason why you are using it |
Cons: ITLL staff may or may not be able to help you, certainly worth an ask |
1. NI USB DAQ (NI 6002, 6003, 6008, 6009)
This is the easiest way to go, assuming you know LabVIEW or Python (Python: use nidaqmx library).
Note on sample rate: these USB DAQs sample incredibly fast, making them useful for either static or dynamic force measurements. The USB 6002 measures 50 kS/sec!
Step by step instructions
Step 1: Find the datasheet for your load cell
Step 2: Identify the range of excitation voltages that your load cell accommodates.
Step 3: Verify that 5VDC is within that acceptable range you found in Step 2.
Step 4: Wire the two EX+/EX- (might be labeled as something else on the load cell data sheet, but the leads that correspond to the excitation voltage) leads to the 5V and GND on your USB DAQ.
If you're using a FX1901-0001-0010-L , you can follow the color schematic below (V is excitation voltage and O is output voltage):
Step 5: Wire the V+/V- leads to analog inputs on your DAQ. For example, you might wire V+ to A0+ and V- to A0-. These wires are where you actually measure the changing voltage generated in response to your applied load; see wires labeled "CH-" and "CH+" in the NI graphic above if you are confused.
Step 6: Launch LabVIEW or NI MAX and click through to "Acquire Signals"; you are simply measuring a voltage from A0 (or whatever channel you chose). This is a differential, not an RSE measurement.
Step 7: To understand your data, you need to perform this calculation:
V_EX * span [mV/V] = max voltage (voltage corresponding to max rated load of your load cell)
So for our cute little 10lbf load cells, the span is 20 mV/V and I applied a 5VDC excitation voltage (V_EX). Therefore, my max voltage should be 0.1 volt, or 5V * 20mV/V = 100 mV. If I know the voltage at zero load, I can construct a linear relationship y = m*x + b where b is my zero offset and m relates force to voltage measured. I will add units for clarity: y [lbs] = m [lbs/mV] * x [mV] + b [lbs]. You'd want to solve for b by recording the voltage at zero load, and multiplying by the appropriate span to convert from mV to lbs.
2. Arduino (e.g., Uno, Nano)
You will need to get a load cell amplifier (we have one or two available for checkout at the Electronics Center, or else they are fairly cheap to buy from Sparkfun) or construct your own amplifier circuit so that the voltage is large enough to read on the Arduino.
I bought an amplifier
Step 1: Find the datasheet for your load cell by googling the part number
Step 2: Verify that 5 VDC or 3.3V is an acceptable excitation voltage for your particular load cell
Step 3: Wire the corresponding colors of your load cell wires to the load cell amplifier. You might want to solder in header pins or sockets if the load cell amplifier comes bare like the image below. If you are using a load cell checked out from the Electronics Center, please ask an engineer how to make connections from your load cell to the amplifier (some of our load cells have header pins already soldered on, and some have bare wires for connection to a screw-terminal. Please don't start soldering to our load cells without discussing with us first).
The "YLW" hole is for a shield wire to protect against stray electromagnetic radiation that might influence your measurement; your load cell might have bare foil instead of a yellow wire, or it might have no shield wire at all. If so, that's fine, leave it bare!
Step 4: Wire up the other side of the load cell as follows:
VDD and VCC: 5V (unless your microcontroller operates on 3.3V logic, then use 3.3V for digital data (VDD) and 5V to power your load cell
DAT: Pin 3
CLK: Pin 2
GND: Arduino GND
Step 5: Download Arduino code from here: HX711 arduino library
- There are useful calibration sketches at the link above, which you will want to run in order to get accurate readings from your load cell.
Have fun - and reach out to an engineer in the Electronics Center with any questions you may have!
I want to build the amplifier circuit
IN PROGRESS! Talk to an engineer in the Electronics Center if you choose to go this route
Step 1: Build the amplifier circuit activate this link when tutorial is complete (https://itll-wiki.colorado.edu/bookstack/books/electronics-engineering-tutorials/page/using-an-op-amp-to-amplify-a-signal-eg-from-a-load-cell)
Step 2: Wire up
3. NI 9219 or NI-9237 DAQ
The NI-9219 sample rate is pretty slow (2 Samples/second per channel) so this is ok for static load measurements, but not for dynamic measurements. You can change from High Resolution to High Speed mode for a slight improvement in acquisition speed. This particular DAQ isn't designed for speed; it's a well-rounded workhorse of a DAQ that can measure input from load cells, thermocouples, RTD's, and more on a single DAQ.
The NI-9237 is much faster (50 kS/s per channel) than the NI-9219, but it is dedicated strain/bridge module. Maybe you want to measure other things, like temperature?
NI-9219 instructions (general purpose NI DAQ)
You will need:
- load cell
- a small flathead screwdriver
- NI-9219(DAQ)
- NI cDAQ-9171 (chassis)
- Computer with LabVIEW
- USB A- USB B cable to interface with cDAQ
Step 1: Determine the excitation voltage and bridge resistance for your load cell
Step 2: Pick a channel. Wire the red and black wires of your load cell into 3 and 5 (respectively) on your selected channel, and V_high and V_low into 4 and 6, respectively. The numbers are on the DAQ, but kind of hard to see.
If you've never used this DAQ before, the way to get the wires into the holes is to insert a small flathead screwdriver into the adjacent square, along the midline of the DAQ. Align the screwdriver so the blade of the screwdriver is parallel with the long (up and down if you're holding it like in the image below) axis of the DAQ. Now, stick the screwdriver directly into the square to release the spring on the adjacent hole, allowing you to slide the wire into the hole. Release the screwdriver, and the spring terminal will clamp down on the wire. Verify that you made a good connection by performing a gentle tug test on the wire. Does it fall out? No? Great! If the wire comes out when you tug on it gently, try the steps again. If you need help, ask an engineer in the Electronics Center. Claire- add a video
Step 3: If you haven't already, install the DAQ into a chassis.
Step 4: Plug the chassis into your computer using a USB cable.
Step 5: Start up a VI and insert a DAQ Assistant block. Double click on the DAQ Assistant and choose Acquire Signals-->Analog--> Force(Bridge)
Step 6: The max excitation voltage you can provide with this DAQ is 2.5 V (Claire- verify) . You will need to check the bridge resistance of your load cell and update the boxed field below. Finally, you will need to click "Configure Scale" and input values relevant for your load cell so that the DAQ outputs force, not just voltage.
Step 7: You should be correctly reading force at this point. This guide assumes that you are already comfortably building VI's in LabVIEW. If you have any issues, please reach out to the DAQ engineer.
Have fun, and happy measuring!
NI-9237 instructions (strain/bridge NI DAQ)
Overview of test setup:
You will need:
- load cell
- NI breakout (RJ-50 [looks like an ethernet but has 10, not 8 pins] to screw terminal)
- RJ-50 cable (see note above about resemblance to ethernet cable)
- NI-9237 (DAQ)
- NI cDAQ-9171 (chassis)
- Computer with LabVIEW
- USB A- USB B cable to interface with cDAQ
Step 1: Determine the excitation voltage and bridge resistance for your load cell
Step 2: Wire the red and black wires of your load cell into 6 and 7 (respectively) of the screw terminal block, and the remaining two wires into 2 and 3. See images below:
Step 4: Connect DAQ to chassis, and RJ-50 cable between DAQ and screw terminal block. Finally, connect chassis to computer with USB cable
Step 5: Start up a VI and insert a DAQ Assistant block. Double click on the DAQ Assistant and choose Acquire Signals-->Analog--> Force(Bridge)
Step 6: The max excitation voltage you can provide with this DAQ is 2.5 V (Claire- verify) . You will need to check the bridge resistance of your load cell and update the boxed field below. Finally, you will need to click "Configure Scale" and input values relevant for your load cell so that the DAQ outputs force, not just voltage.
Step 7: You should be correctly reading force at this point. This guide assumes that you are already comfortably building VI's in LabVIEW. If you have any issues, please reach out to the DAQ engineer.
Have fun, and happy measuring!














