jun takahashi
/
loadcell
ACM
Diff: main.cpp
- 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