SparkFun: SoftPot Variable Potentiometer

 Overview: 2 Wiring:   1, which header are the pins attached to? Code:     2 git/Compiles with make: 2 Demo:     2 Total:    9 Comments: Much better. Thanks...

Overview
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.''

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. The value will be printed once every second. Software AIN3, header P9 pin 37 (hardware AIN2), is being used as the input. This sample code can be downloaded at this git repository

/** demonstrates usage of the SoftPot variable potentiometer
 * prints percent value once every second
 * Author: Christopher Good


 * 1) include 
 * 2) include 

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"); fflush(stdout); exit(1); }	while(1){ //will run forever rewind(fp); //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 sleep(1); //will update once every second }		//close file pointer fclose(fp); return 0; }