Library for reading out the LCM 101 sensor and also usable for S610 loadcells

Fork of LCM101 by Martijn Grootens

Committer:
megrootens
Date:
Wed Aug 24 13:08:37 2016 +0000
Revision:
0:116acb03eb85
"Library" for reading force values from LCM101 S-beam force sensor; (i.e. simply reading analog value and offsetting and scaling)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
megrootens 0:116acb03eb85 1 #ifndef _LCM101_H_
megrootens 0:116acb03eb85 2 #define _LCM101_H_
megrootens 0:116acb03eb85 3
megrootens 0:116acb03eb85 4 #include "mbed.h"
megrootens 0:116acb03eb85 5
megrootens 0:116acb03eb85 6 /**
megrootens 0:116acb03eb85 7 * Simple class to read out an LCM101 S-beam force sensor connected to an analog
megrootens 0:116acb03eb85 8 * input.
megrootens 0:116acb03eb85 9 */
megrootens 0:116acb03eb85 10 class Lcm101 {
megrootens 0:116acb03eb85 11 public:
megrootens 0:116acb03eb85 12
megrootens 0:116acb03eb85 13 /**
megrootens 0:116acb03eb85 14 * @param pin_a_in PinName of analog input
megrootens 0:116acb03eb85 15 * @param offset of analog value (calibration data)
megrootens 0:116acb03eb85 16 * @param factor multiplication factor for analog value (calibration data)
megrootens 0:116acb03eb85 17 */
megrootens 0:116acb03eb85 18 Lcm101(PinName pin_a_in, float offset, float factor) :
megrootens 0:116acb03eb85 19 analog_in_(pin_a_in),
megrootens 0:116acb03eb85 20 kOffset_(offset),
megrootens 0:116acb03eb85 21 kFactor_(factor)
megrootens 0:116acb03eb85 22 {
megrootens 0:116acb03eb85 23 }
megrootens 0:116acb03eb85 24
megrootens 0:116acb03eb85 25 /**
megrootens 0:116acb03eb85 26 * @return unscaled analog input value
megrootens 0:116acb03eb85 27 */
megrootens 0:116acb03eb85 28 float getForceRaw()
megrootens 0:116acb03eb85 29 {
megrootens 0:116acb03eb85 30 return analog_in_.read();
megrootens 0:116acb03eb85 31 }
megrootens 0:116acb03eb85 32
megrootens 0:116acb03eb85 33 /**
megrootens 0:116acb03eb85 34 * @return force value kOffset_ + kFactor_ * getForceRaw();
megrootens 0:116acb03eb85 35 */
megrootens 0:116acb03eb85 36 float getForce()
megrootens 0:116acb03eb85 37 {
megrootens 0:116acb03eb85 38 return kOffset_ + kFactor_ * getForceRaw();
megrootens 0:116acb03eb85 39 }
megrootens 0:116acb03eb85 40
megrootens 0:116acb03eb85 41 /**
megrootens 0:116acb03eb85 42 * @return ffset of analog value
megrootens 0:116acb03eb85 43 */
megrootens 0:116acb03eb85 44 float get_offset() { return kOffset_; }
megrootens 0:116acb03eb85 45
megrootens 0:116acb03eb85 46 /**
megrootens 0:116acb03eb85 47 * @return factor multiplication factor for analog value
megrootens 0:116acb03eb85 48 */
megrootens 0:116acb03eb85 49 float get_factor() { return kFactor_; }
megrootens 0:116acb03eb85 50
megrootens 0:116acb03eb85 51
megrootens 0:116acb03eb85 52 private:
megrootens 0:116acb03eb85 53 AnalogIn analog_in_;
megrootens 0:116acb03eb85 54
megrootens 0:116acb03eb85 55 const float kOffset_;
megrootens 0:116acb03eb85 56 const float kFactor_;
megrootens 0:116acb03eb85 57 };
megrootens 0:116acb03eb85 58
megrootens 0:116acb03eb85 59 #endif