Interfacing (FSR) Force Sensing Resistor with Arduino

Are you looking for an easy and affordable way to measure force or pressure in your next Arduino project? Look no further than FSR!

In this tutorial, we’ll explore how to interface force sensing resistor with Arduino, including everything you need to know about FSR from what it is, and how it works, to the basic setup, and the code at the end of this tutorial.  

Whether you’re an Advanced or just starting out, this guide will help you get started with FSRs and take your projects to the next level

Are you ready?

What Is Force Sensing Resistor?

A force sensing resistor (FSR)  is a type of sensor used to measure the pressure or force that applies on its surface, by changing its resistance when any force is applied to the sensing area. It is also known as a (Force Sensor).

FSR Force Sensing Resistor
FSR Force Sensing Resistor

Force Sensing Resistor Sizes

There is a wide range of different sizes and shapes for Force sensing resistors (FSRs), from small circular or rectangular to larger strips or sheets. selecting an ideal size of FSRs depends on the application you will use and how accurate you needed to be.

Force Sensing Resistor Sizes
Force Sensing Resistor Sizes
SizeDimensions RangeApplications
Small-sizedA few millimeters in diameter or side lengthOften used in devices that require precise force measurements, such as touchscreens or buttons. 
Medium-sizedFrom a few centimeters to several inches in size.Commonly used in robotics, medical devices, and gaming controllers.
Large-sizedSheets or strips that can be several feet longfor industrial automation or automotive testing, where measuring the force of heavy machinery is required.
Force Sensing Resistor Sizes

The Basic Construction Of Force Sensing Resistor

An FSR consists of two conducting membranes with a spacer adhesive between them. One of the membranes has two woven traces that don’t touch, which are from the tail to the sensing area, while the other is coated with conducting ink. Pressure on the sensor causes the ink to short the traces, which decreases the resistance.

Force Sensing Resistor Construction
Force Sensing Resistor Construction

Force Sensing Resistor Specification

To know the technical specifications for the 402 Force Sensing Resistor (FSR), you can take a look at the table down below.

Actuation Force0.1N
Force Sensitivity Range(0.1 – 10.0)N
Force Repeatability (Single part± 2%
Force Resolutioncontinuous
Force Repeatability (Part to Part)±6%
Size  18.28mm diameter
Thickness Range(0.2 – 1.25) mm
Stand-Off Resistance>10M ohms
Switch Travel (Typical)0.05 mm
Hysteresis+10% 
Force Sensing Resistor Specification

How Does A Force Sensor Work?

A force sensor works by using a material that changes shape or size when a force is applied to it. This change is converted into an electrical signal that can be measured and analyzed.

Most force sensors use a strain gauge, which is a thin metal foilthat changes resistance when it is stretched or compressed. This change in resistance is proportional to the force applied to the sensor

Then the electrical signal produced by the strain gauge is amplified and calibrated to provide an accurate measurement of the force.

The resistance is inversely proportional to the force applied as you can see on the graph down below, which indicates the relationship between resistance and the force applied for the (FSR 402). This graph used the logarithmic scales to represent the data. 

402 FSR Force vs Resistance Curve
402 FSR Force vs Resistance Curve

How To Read An FSR?

To read the output of a force sensing resistor (FSR), the simplest method is to create a voltage divider with a static resistor as you can see in the picture down below. This produces a variable voltage that can be read by a microcontroller’s analog-to-digital converter. 

How To Read An FSR By Voltage Divider
How To Read An FSR By Voltage Divider

As you can see, we won’t measure the voltage drop across the FSR, we will measure it for the pull-down resistor.

The output voltage (Vo) can be calculated using this equation, also you need to know that the output voltage is directly proportional to the applied force.

Reading An FSR 1

For instance, when the power supply is (5V) and the pull-down resistor is (10k) in our case, the FSR resistance is very high (approximately 10M) when no pressure is applied, resulting in a particular output voltage that is almost 0 as you can see: 

Reading An FSR 2

Let’s say we applied very high pressure to the FSR, in this case, the resistance decreases to (around 250Ω), leading to a different output voltage as you can see which is almost 5V: 

Reading An FSR 3

After these calculations, you can notice that the range of the output voltage (Vo) is between (0 – 5)V depending on the applied force, as shown in the table, you can see the analog voltage expected from an FSR at different applied forces.

Force (lb)Force (N)FSR Resistance (Ω)Voltage across R (V)
NoneNoneInfinite0
0.040.230K1.3
0.2216K3.1
2.2101K4.5
221002504.9

Force Sensing Resistor Datasheet

For more technical details, download the (FSR) force sensing resistor datasheet down below.

(FSR) Force Sensing Resistor With Arduino

Connecting (FSR) force sensing resistor with Arduino is a straightforward process, nevertheless, it is crucial to identify all the required partsbefore that.

Parts Requirement

  • Arduino Uno
  • Force Sensing Resistor (402 FSR)
  • 10k ohm resistor
  • Breadboard
  • Hook-up wires

Interfacing Force Sensing Resistor With Arduino

To interface force sensing resistor with Arduino you need to connect one end of the FSR to the 5V pin on the Arduino, and connect the other end of the FSR in series with the 10kΩ pull-down resistor then to the GND, finally, connect the A1 ADC pin for Arduino between the FSR and the resistor.

Interfacing FSR Force Sensing Resistor with Arduino
Interfacing FSR Force Sensing Resistor with Arduino

Force Sensing Resistor Fritzing

This is the (FSR) force sensing resistor Fritzing file for the connection, you can download it.

Force Sensing Resistor arduino code

Now it’s time to start coding. You may use this Arduino code for a force sensing resistor (FSR) in your project.

This Arduino code is used to read the analog signal from the FSR and categorize the pressure level into one of five categories: “No pressure,” “Light touch,” “Light squeeze,” “Medium squeeze,” or “Big squeeze.” then it delays for 2 seconds before repeating the process.

int FSR_Pin = A1;   // connect the FSR and the 10K resistor to the A1 pin
int FSR_Reading;    // for the analog reading that comes from the FSR
 
void setup(void) {
  Serial.begin(9600);   
}
// The function of this loop is to print the analog reading and categorize the pressure level into one of five categories
void loop(void) {
  FSR_Reading = analogRead(FSR_Pin);  
 
  Serial.print("Analog reading = ");
  Serial.print(FSR_Reading);   // print the raw analog reading
 
  if (FSR_Reading < 10) {
    Serial.println(" | No pressure");
  } else if (FSR_Reading < 200) {
    Serial.println(" | Light touch");
  } else if (FSR_Reading < 500) {
    Serial.println(" | Light squeeze");
  } else if (FSR_Reading < 800) {
    Serial.println(" | Medium squeeze");
  } else {
    Serial.println(" | Big squeeze");
  }
  delay(2000);
}

this is the out that you will see in your serial monitor.

FSR Serial Monitor Output
FSR Serial Monitor Output

FSR Frequently Asked Questions

What Is The Disadvantage Of FSR?

The Disadvantages Of FSRs are their slow response time compared to other types of sensors, and their low accuracy, in which the error rate can be reached 10% which is relatively a very high percentage for sensors.

How Do You Test An FSR Sensor?

The easy and simple way to test if your FSR works well is by connecting the two ends of the sensor with the multimeter and (setting it to measure resistance) and Applying a different force level, if you see changing in resistance as you apply more or less force, then the FSR is working well. Otherwise, there may be some issues with it.

What Are FSRs Used For?

Force Sensitive Resistor (FSR) sensors are used to measure the force or pressure applied to a surface. They are commonly used in applications such as human-machine interfaces, touch screens, and robotics to detect the presence and intensity of physical touch.

How Accurate Is An FSR?

The accuracy of a Force Sensitive Resistor (FSR) sensor depends on various factors, such as the sensor’s manufacturing quality, the magnitude of force applied, and the environmental conditions. In general, FSR sensors have a nonlinear response, and their accuracy can vary from around 5% to 20% depending on the sensor’s quality and application. However, calibration and signal conditioning can improve the accuracy of FSR sensors to within a few percentage points, making them suitable for many applications, including robotics, touch screens, and medical devices.

We want to express our appreciation for reading this article on interfacing force sensing resistor with Arduino. We hope that this tutorial provided you with all the necessary information about FSR.

At ROBOSENS, our mission is to simplify information by providing concise Arduino tutorials that get straight to the point.

If you want to expand your knowledge about sensors, you can take a look at the following articles.

Interfacing TTP223B Capacitive Touch Sensor with Arduino

HC-SR04 Ultrasonic Sensor Interfacing With Arduino

DHT11 Humidity and Temperature Sensor with Arduino

Digital Temperature Sensor with Arduino

LDR  photoresistor with Arduino

Sources:

arduino.cc

wikipedia.org

Scroll to Top