Skip to main content

Using a Membrane Potentiometer (SoftPot)

What is a ForceMembrane Sensor?Potentiometer?

TheA ForceMembrane SensorPotentiometer sensesis a type of position sensor that measures displacement or angle by detecting changes in electrical resistance. It consists of a flexible membrane with resistive and conductive layers that slide against each other when pressure is applied. This alters the resistance valueand dependingprovides onan howoutput muchvoltage itproportional has pressed. It can sense evento the slightestposition.

touch,

linear softpot

therefore

circular softpot

you
    can
  1. use it as a touch sensor as well. The difference between thisThin and CapacitiveFlexible: SensorMade isfrom thatpolymer films, they are compact and adaptable.
  2. Contact-Based Operation: A wiper or finger presses the object you touched doesn't needmembrane to beregister conductiveposition.
  3. as
  4. itLinear isor sensingRotary force.

    Versions
    :

    It is cheap and easy to use. It provides accurate readingsAvailable for physicallinear pressuredisplacement butor itrotational cannotmeasurement.

  5. be
  6. usedDurability: forNo measuringmechanical weight.wear Youlike cantraditional putpotentiometers itwith underneathsliding mostcontacts.
  7. materials,
  8. e.g.Application: painting,Touch-sensitive shoescontrols
  9. etc, and it is easy to hide.

Wiring

Wiring up the sensor is simple, the sensor is unpolarized so it's doesn't matter which pin to 5V or GND.

  1. PowerPin1 (the one endon the side of the thinner strip) to 5V)5V
  2. GroundPin2 (onemiddle endpin) to A0 & via 10k resistor to GND
  3. Pin3 (the one with 10Ka resistor)
  4. small
  5. Signal (GND sidearrow) to A0)GND

forcecircuit.pngsoftpotCircuit.png

Getting started

This example turns on the built-in LED when touched lightly.

int sensorPinSOFT_POT_PIN = A0; 
int sensorValue; 

//sensor value range: 0-1023
//200 is light touch 
//500 is medium touch
//800 is hard touch 
int limit = 200; 

void setup() 
{
  Serial.begin(9600);
  pinMode(13,SOFT_POT_PIN, OUTPUT)INPUT);
}

void loop() 
{
  sensorValueint softPotPosition = analogRead(sensorPin)SOFT_POT_PIN);
  Serial.print("Force Level: ")softPotPosition); 
  Serial.println(sensorValue);
 
 if (sensorValue > limit) {
 digitalWrite(13, HIGH); 
 }
 else {
 digitalWrite(13, LOW); 
 }
 
 delay(100)500);
}