Worked on firmware
This commit is contained in:
32
lib/scale/MockScale.h
Normal file
32
lib/scale/MockScale.h
Normal file
@@ -0,0 +1,32 @@
|
||||
#include <cstdint>
|
||||
|
||||
|
||||
class MockScale
|
||||
{
|
||||
public:
|
||||
MockScale( uint16_t valueMin=0, uint16_t valueMax=50)
|
||||
: valueMin_(valueMin), valueMax_(valueMax), currentValue_(valueMin), direction(1)
|
||||
{}
|
||||
|
||||
bool measure(uint16_t & measurementOut) {
|
||||
currentValue_ += direction;
|
||||
if ( currentValue_ >= valueMax_)
|
||||
direction = -1;
|
||||
else if ( currentValue_ <= valueMin_ )
|
||||
direction = +1;
|
||||
|
||||
measurementOut = currentValue_;
|
||||
return true;
|
||||
}
|
||||
|
||||
void begin(uint32_t , uint32_t ) {
|
||||
};
|
||||
|
||||
void tare(uint32_t ) {
|
||||
}
|
||||
private:
|
||||
uint16_t valueMin_;
|
||||
uint16_t valueMax_;
|
||||
uint16_t currentValue_;
|
||||
int direction;
|
||||
};
|
||||
30
lib/scale/Scale.h
Normal file
30
lib/scale/Scale.h
Normal file
@@ -0,0 +1,30 @@
|
||||
#include "HX711.h"
|
||||
#include <cstdint>
|
||||
|
||||
|
||||
template<int DIVIDER=128>
|
||||
class Scale
|
||||
{
|
||||
public:
|
||||
bool measure(uint16_t & measurementOut) {
|
||||
if (hx711_.is_ready())
|
||||
{
|
||||
uint32_t value = hx711_.get_value(MEASUREMENT_AVG_COUNT);
|
||||
measurementOut = (int16_t)(value / DIVIDER);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
void begin(uint32_t pinDOUT, uint32_t pinSCK) {
|
||||
hx711_.begin(pinDOUT, pinSCK);
|
||||
};
|
||||
|
||||
void tare(uint32_t numMeasurementsToAverage=50) {
|
||||
hx711_.tare(numMeasurementsToAverage);
|
||||
}
|
||||
|
||||
private:
|
||||
HX711 hx711_;
|
||||
};
|
||||
Reference in New Issue
Block a user