Source: https://mokxi.com/parts/fsr
Updated: 2026-11-10

Part

# Force-sensing resistor

A pad that is open until touched, then lower the harder it is pressed.

See every part

- 2 pins
- 3 settings
- In 2 projects
- In 1 lesson

Drawn live by the editor's own code, at the size you see it.

At a glance

## The Force-sensing resistor in brief

What it is, and every setting the properties panel gives it.

A force-sensing resistor is the Interlink FSR 402 and its half-inch twins: two films with a spacer, one printed with interleaved fingers and one with carbon ink that shorts them where pressed, so the resistance falls as the force rises. Its two legs, 1 and 2, have no polarity and need no supply; it goes in a divider. On an Uno, one leg to 5 V, the other to A0 with 10 k from A0 to GND,; on an ESP32, the same divider from 3.3 V into an ADC1 pin. Mokxi follows the datasheet’s log-log line, R = r100 x (100 g / F) ^ slope, with r100 10 k and slope 0.8 as properties: about 36 k at the 20 g actuation point, 10 k at 100 g, 1.6 k at a kilogram and 900 ohms at 2 kg. Below 20 g the films do not touch and the part is open, 10 megohms. The slider presses up to 2 kg. The classic mistake is wiring it with no divider resistor; the other is expecting grams, which is a load cell’s job. Hysteresis, creep under a steady load, temperature and part-to-part spread are not modeled.

Family

Sensors

Pins

2

r100

10000

slope

0.8

open

10000000

Pins

## 2 pins

Named as the editor names them, so a wire lands where you expect it.

Pin

What it does

1

One leg.

2

The other leg.

How to use it

## How to use a force-sensing resistor with an Arduino

An FSR has two legs and no polarity, and it only gives a reading inside a divider. In this circuit leg 1 goes to 5 V, leg 2 to A0, and a 10 k resistor runs from A0 to GND. Unpressed the pad is open and A0 sits near 0; press it and its resistance falls from about 36 k at 20 g to 10 k at 100 g and under 1 k at 2 kg, so the count climbs toward 1023.

The knock lock reads it the way an FSR is best read, as harder or softer rather than as grams: a reading over 100 is a knock, and the sketch counts a knock only on the change from not pressed to pressed. Press the button to lock, then drag the FSR’s slider up and down three times and the servo bolt opens. Leave out the 10 k and A0 floats; for real weights, use a load cell and an HX711.

Part pin

Board pin

1

5 V

2

A0, and 10 k to GND

On an ESP32, feed the divider from 3.3 V and read an ADC1 pin; the 12-bit reading runs to 4095 instead of 1023.

Hold the button

This is the simulator itself, running here. Click anything to open it in the editor.

Open this project in the editor Read the full tutorial

One knock per press, from the knock lock sketch

How it is modeled

## What is true about the Force-sensing resistor, here

In its help article’s own words: what the simulation gets right, and where it stops.

### Modeled

The datasheet's shape: open until the actuation force of about 20 g, then a straight
line on log-log paper, R = r100 x (100 g / F)^slope. That is about 36 k at 20 g, 10 k
at 100 g, 1.6 k at a kilogram and 900 ohms at 2 kg, the top of the range for this size.

The step at 20 g is the thing to notice. An FSR is not a load cell: it is a switch
that turns on at a light touch and then goes on getting better at being on. It says
"harder" and "softer" well and "how many grams" badly; for grams, use the HX711 and a
load cell.

### Not modeled

Hysteresis (a real one reads lower on the way up than on the way down), drift under a
steady load (it creeps down a few percent a minute), the size and shape of whatever is
pressing, and temperature. The resistance follows the slider at once. The datasheet
quotes a part-to-part repeatability of 6% at best; every pad here is the typical one.

From Force-sensing resistor, in full.

Projects

## See the Force-sensing resistor in a project

2 built-in projects use it. Each opens in the editor, already wired.

Lessons

## Where it turns up in a lesson

One lesson places it in its own circuit.

### Learn articles

1 lesson

- Arduino FSR: Force Sensor Wiring, Code, Readings

Boards

## The boards it is shown on

This board has a built-in project with the Force-sensing resistor in it.

- SparkFun Pro Micro

More parts

## The rest of the bench

Every one of these is drawn and simulated the same way.

Full-size breadboard

A real 0.1 inch grid with the rails and the center channel, 63 columns wide.

Jumper wires

Drag from any pin or hole to any other. Corners snap, and you can drag them.

Power

A supply rail at the voltage you choose.

Ground

The other end of every circuit.

LED

Lights when current flows. Five colors, and the brightness is what your eye would see.

Filament lamp

A tungsten bulb in a holder: an inrush when it is switched on cold, tens of milliseconds to warm up, and dim on half its voltage.

Resistor

Any value you like, with the color bands drawn to match.

ESP32-C3-DevKitM-1

A RISC-V board that runs your firmware at 160 MHz on the real memory map.

Pushbutton

A 12 mm tactile switch. Hold it while the simulation runs.

Raspberry Pi Pico

The RP2040 board on our own Cortex-M0+ core. Pick a program and press Run.

Raspberry Pi Pico W

Raspberry Pi Pico W (RP2040). The same board and the same pinout as a Pico, with the CYW43439 on it. The WiFi is simulated (no radio; real internet through the Cloud panel’s switch), and the on-board LED, which hangs off that chip rather than off GP25, is driven through the same path. Everything else is the Pico.

Raspberry Pi 4 Model B

Raspberry Pi 4 Model B: the 40-pin header, driven by main.py with RPi.GPIO or gpiozero.

See every part

## Wire up the Force-sensing resistor

Open the editor and push it into the breadboard. It is free, and it runs on your own machine.

Start building free Open the editor
