Load cell amplifier interface

Dependents:   mbed_oled

Files at this revision

API Documentation at this revision

Comitter:
jimconner
Date:
Tue Mar 31 17:42:18 2015 +0000
Commit message:
Mostly workingish code... the numbers change appropriately when I put weight on the load cell.

Changed in this revision

hx711.cpp Show annotated file Show diff for this revision Revisions of this file
hx711.h Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r d47fb3d4b918 hx711.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hx711.cpp	Tue Mar 31 17:42:18 2015 +0000
@@ -0,0 +1,48 @@
+/* mbed library for HX711 Load Cell Amplifier/24-bit A/D converter
+ * Copyright (c) 2015 Jim Conner
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+ 
+#include "hx711.h"
+#include "mbed.h"
+
+//#define BPP         16                  // Bits per pixel    
+
+// Constructor         
+HX711::HX711(PinName clk, PinName addo) : clk(clk), addo(addo) 
+{
+
+    
+}
+
+// Destructor
+HX711::~HX711(void) {}
+
+
+// Reading data from the converter
+long HX711::readData(void)
+{
+  unsigned char i;
+  unsigned long Count;
+  clk=0;
+  Count=0;
+  while(addo);
+  for (i=0;i<24;i++) {
+      clk=1;
+      Count=Count<<1;
+      clk=0;
+      if(addo) Count++;
+  }
+  clk=1;
+  Count=Count ^0x800000;
+  clk=0;
+  return(Count);
+}
+
diff -r 000000000000 -r d47fb3d4b918 hx711.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hx711.h	Tue Mar 31 17:42:18 2015 +0000
@@ -0,0 +1,48 @@
+/* mbed library for HX711 Load Cell Amplifier/24-bit A/D converter
+ * Copyright (c) 2015 Jim Conner
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+ 
+/** Some stuff to make the load cell work.
+ */ 
+ 
+#include "mbed.h"
+ 
+#ifndef HX711_H
+#define HX711_H
+
+/* some definitiions go in here                                                */
+//#define Black           0x0000      /*   0,   0,   0 */
+
+// Load Cell control class
+ class HX711 
+ {
+ public:
+
+  /** Create an HX711 object connected to Clock and Data pins
+   *
+   * @param clk pin connected to clock line of HX711 board
+   * @param addo pin connected to data line of HX711 board
+   */ 
+  HX711(PinName clk, PinName addo);
+  ~HX711();
+    
+  /** Read data from the HX711 interface
+   * @return reading from ADC as an int.
+   */    
+  long readData(void);
+     
+private:
+  DigitalOut clk; 
+  DigitalIn addo;  
+
+};
+
+#endif