ACM

Dependencies:   mbed HX711

Revision:
0:61d69de5d788
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Feb 28 02:28:33 2019 +0000
@@ -0,0 +1,51 @@
+#include "mbed.h"
+#include "HX711.h"
+ 
+DigitalOut gpo(D0);
+//DigitalOut led(LED_BLUE);
+DigitalOut led(LED1);
+
+HX711 scale(p6,p7);
+ 
+AnalogIn scaleRaw(A3);
+Serial pc(USBTX, USBRX);    // USB Serial Terminal
+float calibration_factor = 1000; //-7050 worked for my 440lb max scale setup
+int averageSamples = 100;
+ 
+int main(void)
+{
+    pc.printf("Starting Scale");
+    pc.printf("HX711 calibration sketch");
+    pc.printf("Remove all weight from scale");
+    pc.printf("After readings begin, place known weight on scale");
+    pc.printf("Press + or a to increase calibration factor");
+    pc.printf("Press - or z to decrease calibration factor");
+    
+      
+    scale.setScale(0);
+    scale.tare(); //Reset the scale to 0
+    
+    long zero_factor = scale.averageValue(averageSamples); //Get a baseline reading
+    pc.printf("Zero factor: %.4f\n" , zero_factor); //This can be used to remove the need to tare the scale. Useful in permanent scale projects.
+    
+    while (true) {
+        scale.setScale(calibration_factor); //Adjust to this calibration factor
+        float weight = scale.getGram();
+        //float raw = scaleRaw.read();
+        pc.printf("Reading: %5.3ef\n", weight);
+        //pc.printf("Raw Value: %.7f\n", raw);
+        pc.printf(" calibration_factor: %5.3e\n", calibration_factor);
+ 
+ 
+       if(pc.readable()) {
+            char temp = pc.getc();
+            if(temp == '+' || temp == 'a')
+               calibration_factor += 10;
+            else if(temp == '-' || temp == 'z')
+                calibration_factor -= 10;
+            }
+        gpo = !gpo; // toggle pin
+        led = !led; // toggle led
+        wait(0.2f);
+    }
+}
\ No newline at end of file