Force sensing potentiomers (FSPs) can sense the movement of your finger along a strip of conductive rubber. They're often used as touch strips or touch wheels like the early iPod click wheel. They sense force pressing down on the sensor, like a force-sensing resistor (FSR). The difference is that, in addition to detecting force, an FSP can dectect position on one axis. They act like a mechanical potentiometer, but with no mechanics.
Like an FSR, a force-sensing potentiometer is made up of a substrate of conductive rubber that changes its resistance with force. Electrically, they are a network of three resistors, as shown in Figure 1. Resistors R1 and R2 form a voltage divider. As you slide your finger along the FSP, R1 gets larger as R2 gets smaller, just like a regular potentiometer. R3 detects the force applied to the FSP.
Figure 1. Schematic diagram of a Force Sensing Potentiometer
The normal mode of use for a sensor like this is that you measure to see if there's any force applied to the sensor, meaning that someone's touching it, then you measure the position. Doing this is a bit more complex than just reading a regular potentiometer, because you have to separate the force sensing resistor from the voltage divider, reading each in turn. Here is an integration guide from Ohmite, who make three models of this type of sensor, the FSP01CE, FSP02CE, and FSP03CE. These are available from Digikey and Mouser among other retailers. The first two are linear and the third is round. The integration guide explains how to use them with a microcontroller.
Marc Graham has made an Arduino library for these models and has written a usage guide. The examples in this directory are for use with that library. It's not in the Arduino IDE Library Manager, so you will need to download the library and click the Sketch menu, then Include LIbrary..., Add .ZIP library, select the .zip file you downloaded, and include it that way. Then you can use the examples in this directory.
As of this writing, these examples have been tested only on the Arduino SAMD boards: the Nano 33 IoT, MKR boards and other SAMD derivatives. The library appears not to compile for the AVR or ARM 32-bit boards as of 27 July 2021.
Figure 2 shows the FSP01CE FSP model connected to an Arduino Nano 33 IoT for use with the library. This circuit will work with the FSP01CE sketch. It will also work with the FSP02CE. The pins are connected as described in Table 1 below. In addition to the pins as described here, a 22 kilohm resistor connects pin A2 to pin A3.
With the rubberized side of the sensor facing up, and the connector facing to your right, pin 1 is the bottom pin. The Nano's pins are numbered in a U pattern from top left (physical pin 1) to bottom right (physical pin 15), then from bottom right (physical pin 16) to top right (physical pin 30).
Figure 2. Breadboard diagram of a Force Sensing Potentiometer connected to an Arduino Nano 33 IoT
Table 1. Pin connections for FSP01CE to Nano 33 IoT
FSP01/02CE physical pin number | Function | Nano physical pin number | Nano pin function |
---|---|---|---|
1 | Wiper | 6 | A2 |
2 | V1 | 5 | A1 |
3 | V2 | 4 | A0 |
Figure 3 shows the FSP03CE FSP model connected to an Arduino Nano 33 IoT for use with the library. This is a round sensor, and sliding a finger across it produces position values from 0 to 360. This circuit will work with the FSP03CE sketch. The pins are connected as described in Table 2 below. In addition to the pins as described here, a 22 kilohm resistor connects pin A3 to pin A4.
With the rubberized side of the sensor facing up, and the connector facing to your right, pin 1 is the top pin. The Nano's pins are numbered in a U pattern as described above.
Figure 3. Breadboard diagram of a Force Sensing Potentiometer connected to an Arduino Nano 33 IoT
Table 2. Pin connections for FSP03CE to Nano 33 IoT
FSP03CE physical pin number | Function | Nano physical pin number | Nano pin function |
---|---|---|---|
1 | D240 | 4 | A0 |
2 | D0 | 5 | A1 |
3 | D120 | 6 | A2 |
4 | Wiper | 7 | A3 |