SparkFun: SoftPot Variable Potentiometer
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.
Contents |
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. Software AIN3, header P9 pin 37 (hardware AIN2), 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");
fflush(stdout);
exit(1);
}
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
//close file pointer
fclose(fp);
return 0;
}