100 lines
2.1 KiB
C++
100 lines
2.1 KiB
C++
//
|
|
// FILE: HX_calibration.ino
|
|
// AUTHOR: Rob Tillaart
|
|
// PURPOSE: HX711 calibration finder for offset and scale
|
|
// URL: https://github.com/RobTillaart/HX711
|
|
|
|
|
|
#include "HX711.h"
|
|
#include "CalibConsts.hpp"
|
|
|
|
HX711 myScale;
|
|
|
|
// adjust pins if needed.
|
|
uint8_t dataPin = 4;
|
|
uint8_t clockPin = 5;
|
|
|
|
|
|
void setup()
|
|
{
|
|
Serial.begin(115200);
|
|
Serial.println();
|
|
Serial.println(__FILE__);
|
|
Serial.print("HX711_LIB_VERSION: ");
|
|
Serial.println(HX711_LIB_VERSION);
|
|
Serial.println();
|
|
|
|
myScale.begin(dataPin, clockPin);
|
|
myScale.set_offset(OFFSET1);
|
|
myScale.set_scale(SCALE1);
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
Serial.println(myScale.get_units());
|
|
// calibrate();
|
|
}
|
|
|
|
|
|
|
|
void calibrate()
|
|
{
|
|
Serial.println("\n\nCALIBRATION\n===========");
|
|
Serial.println("remove all weight from the loadcell");
|
|
// flush Serial input
|
|
while (Serial.available()) Serial.read();
|
|
|
|
Serial.println("and enter any message into serial.\n");
|
|
while (Serial.available() == 0);
|
|
|
|
Serial.println("Determine zero weight offset");
|
|
// average 20 measurements.
|
|
myScale.tare(20);
|
|
int32_t offset = myScale.get_offset();
|
|
|
|
Serial.print("OFFSET: ");
|
|
Serial.println(offset);
|
|
Serial.println();
|
|
|
|
|
|
Serial.println("place a weight on the loadcell");
|
|
// flush Serial input
|
|
while (Serial.available()) Serial.read();
|
|
|
|
Serial.println("enter the weight in (whole) grams and enter 'e'");
|
|
int16_t weight = 0;
|
|
bool neg = false;
|
|
while (Serial.peek() != 'e')
|
|
{
|
|
if (Serial.available())
|
|
{
|
|
char ch = Serial.read();
|
|
if (isdigit(ch))
|
|
{
|
|
weight *= 10;
|
|
weight = weight + (ch - '0');
|
|
}
|
|
else if (ch == '-') neg = true;
|
|
}
|
|
}
|
|
if (neg) weight *= -1;
|
|
Serial.print("WEIGHT: ");
|
|
Serial.println(weight);
|
|
myScale.calibrate_scale(weight, 20);
|
|
float scale = myScale.get_scale();
|
|
|
|
Serial.print("SCALE: ");
|
|
Serial.println(scale, 6);
|
|
|
|
Serial.print("\nuse scale.set_offset(");
|
|
Serial.print(offset);
|
|
Serial.print("); and scale.set_scale(");
|
|
Serial.print(scale, 6);
|
|
Serial.print(");\n");
|
|
Serial.println("in the setup of your project");
|
|
|
|
Serial.println("\n\n");
|
|
}
|
|
|
|
|
|
// -- END OF FILE --
|