Library to read rawdata from an FSR

Dependents:   K64F-RTOS-MQTT-Example

Fork of FSR by Chenkai Shao

Committer:
ram54288
Date:
Tue May 02 16:48:41 2017 +0000
Revision:
6:bf85a85d7808
Parent:
2:3a5f5cc5b35c
Changed the return types to *ptr

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cshao06 0:d24a38523990 1 #include "FSR.h"
cshao06 0:d24a38523990 2 #include "mbed.h"
cshao06 0:d24a38523990 3
cshao06 0:d24a38523990 4 FSR::FSR(PinName pin, float resistance) : _ain(pin), _r(resistance)
cshao06 0:d24a38523990 5 {
cshao06 0:d24a38523990 6 }
cshao06 0:d24a38523990 7
cshao06 0:d24a38523990 8 float FSR::readRaw()
cshao06 0:d24a38523990 9 {
cshao06 0:d24a38523990 10 float read = _ain;
cshao06 0:d24a38523990 11 return read;
cshao06 0:d24a38523990 12 }
cshao06 0:d24a38523990 13
ram54288 6:bf85a85d7808 14 float* FSR::readFSRResistance()
cshao06 0:d24a38523990 15 {
cshao06 0:d24a38523990 16 float read = _ain;
ram54288 6:bf85a85d7808 17 //float* obj=new float;
ram54288 6:bf85a85d7808 18 //obj=(_r * 1 / read - _r);
ram54288 6:bf85a85d7808 19 //return obj;
ram54288 6:bf85a85d7808 20 float t=(_r * 1 / read - _r);
ram54288 6:bf85a85d7808 21 return &t;
cshao06 0:d24a38523990 22 }
cshao06 0:d24a38523990 23
cshao06 0:d24a38523990 24 float FSR::readWeight()
cshao06 0:d24a38523990 25 {
cshao06 0:d24a38523990 26 float read = _ain;
cshao06 2:3a5f5cc5b35c 27 float rfsr = _r * 1 / read - _r;
cshao06 0:d24a38523990 28 float slope = (4 - 2) / (log10(6.2) - log10(0.25));
cshao06 0:d24a38523990 29 float a = log10(rfsr);
cshao06 0:d24a38523990 30 if (a < log10(6.2))
cshao06 0:d24a38523990 31 {
cshao06 0:d24a38523990 32 return pow(10, ((log10(6.2) - a) * slope + 2));
cshao06 0:d24a38523990 33 }
cshao06 0:d24a38523990 34 else
cshao06 0:d24a38523990 35 {
cshao06 0:d24a38523990 36 return 0;
cshao06 0:d24a38523990 37 }
cshao06 0:d24a38523990 38 }