SparkFun: SoftPot Variable Potentiometer

Revision as of 09:18, 16 October 2012 by Chris.good (Talk | contribs) (Overview: added picture)

Jump to: navigation, search

Overview:  1, show a picture
Wiring:   1, give specific example.  Suggest which pin to connect to AIN.  Which header are you using?  P8, P9?
Code:     1, make the code loop and continually display the value.
git/Compiles with make: 0, put in git
Demo:     0
Total:    3
Comments:  More details are needed.  Please supply and I'll regrade.


The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site: These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.

SoftPot on breadboard hooked to power and signal line

Inputs and Outputs

The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.

Bone Usage

Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.

Sample C Code

This code will give a simple readout of the current position the SoftPot is being touched. AIN3, pin 37, is being used as the input.

/** Demonstrates simple usage of the SoftPot variable potentiometer

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv, char **envp)
	FILE *fp;
	char buf[64];
	//open file
	fp = fopen("/sys/devices/platform/omap/tsc/ain3", "r");
	if(fp == NULL){
		printf("error with opening analog in file\n");
	//read value
	fgets(buf, 64, fp);
	//format for printing
	printf("The SoftPot was touched at %d%\n", 101*atoi(buf)/4095); //101 for 0-100
	//close file pointer
	return 0;