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

Fork of LCM101 by Martijn Grootens

Revision:
1:493c1de4a28d
Parent:
0:116acb03eb85
Child:
2:77cffacfd89e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lcm101.h	Thu Aug 25 14:34:28 2016 +0000
@@ -0,0 +1,59 @@
+#ifndef _LCM101_H_
+#define _LCM101_H_
+
+#include "mbed.h"
+
+/**
+ * Simple class to read out an LCM101 S-beam force sensor connected to an analog
+ * input.
+ */
+class Lcm101 {
+public:
+
+    /**
+     * @param pin_a_in PinName of analog input
+     * @param offset of analog value (calibration data)
+     * @param factor multiplication factor for analog value (calibration data)
+     */
+    Lcm101(PinName pin_a_in, float offset, float factor) :
+        analog_in_(pin_a_in),
+        kOffset_(offset),
+        kFactor_(factor)
+    {
+    }
+
+    /**
+     * @return unscaled analog input value
+     */
+    float getForceRaw() 
+    {
+        return analog_in_.read();
+    }
+
+    /**
+     * @return force value kOffset_ + kFactor_ * getForceRaw();
+     */
+    float getForce() 
+    {
+        return kOffset_ + kFactor_ * getForceRaw();
+    }
+    
+    /**
+     * @return ffset of analog value
+     */
+    float get_offset() { return kOffset_; }
+    
+    /**
+     * @return factor multiplication factor for analog value
+     */
+    float get_factor() { return kFactor_; }
+
+
+private:
+    AnalogIn analog_in_;
+    
+    const float kOffset_;
+    const float kFactor_;
+};
+
+#endif
\ No newline at end of file