jun takahashi
/
loadcell
ACM
main.cpp
- Committer:
- j8813
- Date:
- 2019-02-28
- Revision:
- 0:61d69de5d788
File content as of revision 0:61d69de5d788:
#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); } }