Basic class for reading SPTE 10 bar 0-5V analog pressure sensor made by Festo

Dependents:   heros_leg_readout_torque_addition heros_leg_readout_torque_addition_V3 DROPSAWTestRigCode_V4

Committer:
cnckiwi31
Date:
Fri Oct 12 12:10:26 2018 +0000
Revision:
1:189d6f2b0612
Parent:
0:642482fd9da0
Child:
2:f31829b587b4
current on 12-10-2018

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cnckiwi31 0:642482fd9da0 1 #ifndef _SPTEPSensor_H_
cnckiwi31 1:189d6f2b0612 2 #define _SPTEPSensor_H_
cnckiwi31 0:642482fd9da0 3
cnckiwi31 0:642482fd9da0 4 #include "mbed.h"
cnckiwi31 0:642482fd9da0 5 /**
cnckiwi31 0:642482fd9da0 6 * Reading and nulling the SPTE pressure sensor made by festo (analog input)
cnckiwi31 0:642482fd9da0 7 */
cnckiwi31 0:642482fd9da0 8
cnckiwi31 0:642482fd9da0 9 class SPTEPressureSensor {
cnckiwi31 0:642482fd9da0 10 public:
cnckiwi31 0:642482fd9da0 11
cnckiwi31 0:642482fd9da0 12 /**
cnckiwi31 0:642482fd9da0 13 * @param pin_a_in PinName of analog input
cnckiwi31 0:642482fd9da0 14 * @param offset of analog value (calibration data)
cnckiwi31 0:642482fd9da0 15 * @param factor multiplication factor for analog value (calibration data)
cnckiwi31 0:642482fd9da0 16 */
cnckiwi31 0:642482fd9da0 17 SPTEPressureSensor(PinName pin_a_in, float offset, float factor) :
cnckiwi31 0:642482fd9da0 18 analog_in_(pin_a_in),
cnckiwi31 0:642482fd9da0 19 kOffset_(offset),
cnckiwi31 0:642482fd9da0 20 kFactor_(factor)
cnckiwi31 0:642482fd9da0 21 {
cnckiwi31 0:642482fd9da0 22 }
cnckiwi31 0:642482fd9da0 23
cnckiwi31 0:642482fd9da0 24 /**
cnckiwi31 0:642482fd9da0 25 * @return unscaled analog input value
cnckiwi31 0:642482fd9da0 26 */
cnckiwi31 0:642482fd9da0 27 float getPressureRaw()
cnckiwi31 0:642482fd9da0 28 {
cnckiwi31 0:642482fd9da0 29 return analog_in_.read();
cnckiwi31 0:642482fd9da0 30 }
cnckiwi31 0:642482fd9da0 31
cnckiwi31 0:642482fd9da0 32 /**
cnckiwi31 0:642482fd9da0 33 * @return force value kOffset_ + kFactor_ * getPressureRaw();
cnckiwi31 0:642482fd9da0 34 */
cnckiwi31 0:642482fd9da0 35 float getPressure()
cnckiwi31 0:642482fd9da0 36 {
cnckiwi31 0:642482fd9da0 37 return kOffset_ + kFactor_ * getPressureRaw();
cnckiwi31 0:642482fd9da0 38 }
cnckiwi31 0:642482fd9da0 39
cnckiwi31 0:642482fd9da0 40 /**
cnckiwi31 0:642482fd9da0 41 * sets pressure scaling offset so that current output is pressure zero
cnckiwi31 0:642482fd9da0 42 */
cnckiwi31 0:642482fd9da0 43 void nullPressure()
cnckiwi31 0:642482fd9da0 44 {
cnckiwi31 0:642482fd9da0 45 kOffset_ = kOffset_ - getPressure();
cnckiwi31 0:642482fd9da0 46 return;
cnckiwi31 0:642482fd9da0 47 }
cnckiwi31 0:642482fd9da0 48
cnckiwi31 0:642482fd9da0 49 /**
cnckiwi31 0:642482fd9da0 50 * @return ffset of analog value
cnckiwi31 0:642482fd9da0 51 */
cnckiwi31 0:642482fd9da0 52 float get_offset() { return kOffset_; }
cnckiwi31 0:642482fd9da0 53
cnckiwi31 0:642482fd9da0 54 /**
cnckiwi31 0:642482fd9da0 55 * @return factor multiplication factor for analog value
cnckiwi31 0:642482fd9da0 56 */
cnckiwi31 0:642482fd9da0 57 float get_factor() { return kFactor_; }
cnckiwi31 0:642482fd9da0 58
cnckiwi31 0:642482fd9da0 59
cnckiwi31 0:642482fd9da0 60 private:
cnckiwi31 0:642482fd9da0 61 AnalogIn analog_in_;
cnckiwi31 0:642482fd9da0 62
cnckiwi31 0:642482fd9da0 63 float kOffset_;
cnckiwi31 0:642482fd9da0 64 const float kFactor_;
cnckiwi31 0:642482fd9da0 65 };
cnckiwi31 0:642482fd9da0 66
cnckiwi31 0:642482fd9da0 67 #endif