jun takahashi
/
loadcell_2
ACM experimental
main.cpp
- Committer:
- j8813
- Date:
- 2019-02-28
- Revision:
- 1:87271433b068
- Parent:
- 0:6f1fa439a9bf
File content as of revision 1:87271433b068:
#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 = 1.000; //-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(" %5.3e\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); } }