The Force Sensor is a two terminals passive resistive components, its resistance decreases when pressure is applied on the surface. Force Sensing Resistors, or FSRs, are robust polymer thick film (PTF) devices that exhibit a decrease in resistance with increase in force applied to the surface of the sensor. This force sensitivity is optimized for use in human touch control of electronic devices such as automotive electronics, medical systems, and in industrial and robotics applications.
FSR400 is the 38mm Pressure Sensor or Force Sensor.
The Force sensor terminal resistance decreases when pressure is applied on the surface of the sensor. So force sensor is basically a variable resistor whose terminal resistance depends of surface pressure. With higher pressure the terminal resistance will be low and for low pressure resistance will be high. For convenience we convert this Resistance into voltage.
In this resistive network we have two resistances. One is constant resistance (R1) and other is variable resistance (RV1). Vo is the voltage at midpoint of voltage divider circuit and is also the output voltage. Vo is also the voltage across the variable resistance (RV1). So when the resistance value of RV1 is changed the output voltage Vo also changes. So we will have resistance change in voltage change with voltage divider circuit.
Here R1 here is a constant resistance and FORCE SENSOR acts as a variable resistance. Vo being output voltage and also the voltage across the FORCE SENSOR.
Here, Vo = VCC (Rx/ (R1+Rx)).
Rx – FORCE SENSOR resistance
Now, when there is no pressure applied on FORCE SENSOR the terminal resistance will be very high. This resistance also appears in VOLTAGE DIVIDER circuit. So the total voltage VCC appears across sensor. With that Vo will be high as it is the voltage across sensor.
When the pressure is applied on the surface of sensor the terminal resistance decreases considerable. With this decrease the voltage drop across sensor in the voltage divider circuit also decreases. So Vo also goes down. If pressure further increased the Vo further decreases.

1. HC-05 – Bluetooth
2. Mpu 6050 accelerometer-gyroscope- -module
3. Flame-sensor
4. Rotary-encoder
5. Force-sensor-fsr400
6. Current-sensor-acs712
7. Flex-sensor
8. IR-sensor-tcrt5000
9. Pulse-sensor-pin
10. Color-sensor-tcs230
11. SD-card-module
12. Oled-with-arduino
13. Addressable-rgb-led-strip-ws1812
14. Relay-module
15. TFT-1-8-display-st7735r
16. 8×8-dot-matrix-display-max7219
17. Smoke-sensor-mq-2
18. Ultrasonic-sensor-HC-sr04
19. PIR-motion-sensor-hc-sr501
20. Tilt-sensor-sw-520d
21. Microphone-sound-sensor
22. Reed-switch-reed-sensor
23. Rfid-reader-Em18
24. Rfid-tag
25. RTC-real-time-clock-ds1307
26. Temperature-sensor-ds18b20
27. Moisture-sensor
28. Rain-sensor
29. Pressure-sensor
30. Accelerometer
31. MOC-3021-circuit
32. DHT11-DHT22-temperature-and-humidity-sensor
1. Actuation Force as low as 0.1N and sensitivity range to 10N.
2. Easily customizable to a wide range of sizes.
3. Highly Repeatable Force Reading.
4. As low as 2% of initial reading with repeatable actuation system.
5. Cost effective.
6. Ultra thin; 0.35mm.
8. 7. Robust; up to 10M actuations.
9. Simple and easy to integrate.
1. Robotics.
2. Detect motion or position.
3. Medical Devices.
4. Detect and qualify press.
5. Find center of force.
6. Detect pressure.
7. Detect liquid blockage.
Copy and paste below given code or download bottom given link.
// is an automatic generator of schematics and code.
//Copyright (C) 2016 Roboplan Technologies Ltd.
// Include Libraries
#include “Arduino.h”
#include “FSR.h”
#include “LiquidCrystal.h”
// Pin Definitions
#define FSR_PIN_1 A3
#define LCD_PIN_RS 7
#define LCD_PIN_E 6
#define LCD_PIN_DB4 2
#define LCD_PIN_DB5 3
#define LCD_PIN_DB6 4
#define LCD_PIN_DB7 5
// Global variables and defines
// object initialization
FSR fsr(FSR_PIN_1);
// define vars for testing menu
const int timeout = 10000; //define timeout of 10 sec
char menuOption = 0;
long time0;
// Setup the essentials for your circuit to work. It runs first every time your circuit is powered with electricity.
void setup()
// Setup Serial which is useful for debugging
// Use the Serial Monitor to view printed messages
while (!Serial) ; // wait for serial port to connect. Needed for native USB
// set up the LCD’s number of columns and rows
lcd.begin(16, 2);
menuOption = menu();
void loop()
if(menuOption == ‘1’) {
// Force Sensitive Resistor 0.5” – Test Code
// Read FSR resistance value. try also fsr.getResistance()
// For more information see Sparkfun website –
// Note, the default Vcc and external resistor values for FSR calculations are 5V ang 3300Okm, if you are not
// using these default valuse in your circuit go to FSR.cpp and change default values in FSR constructor
float fsrForce = fsr.getForce();
Serial.print(F(“Force: “)); Serial.print(fsrForce); Serial.println(F(” [g]”));
else if(menuOption == ‘2’)
// LCD 16×2 – Test Code
// Print a message to the LCD.
lcd.setCursor(0, 0);
lcd.print(“Circuito Rocks !”);
// Turn off the display:
// Turn on the display:
if (millis() – time0 > timeout)
menuOption = menu();
// Menu function for selecting the components to be tested
// Follow serial monitor for instrcutions
char menu()
Serial.println(F(“\nWhich component would you like to test?”));
Serial.println(F(“(1) Force Sensitive Resistor 0.5””));
Serial.println(F(“(2) LCD 16×2”));
Serial.println(F(“(menu) send anything else or press on board reset button\n”));
while (!Serial.available());
// Read data from serial monitor if received
while (Serial.available())
char c =;
if (isAlphaNumeric(c))
if(c == ‘1’)
Serial.println(F(“Now Testing Force Sensitive Resistor 0.5””));
else if(c == ‘2’)
Serial.println(F(“Now Testing LCD 16×2”));
Serial.println(F(“illegal input!”));
return 0;
time0 = millis();
return c;
Download Force sensor with Arduino code here.Force sensor code

About the Author


Hello! My Dear Friends. I am Subramanian. I am writing posts on androiderode about Electronics testing and equipments.

View All Articles