Michael Ohayon
/
HX711
Jauge de contraintes en parallèles
Diff: HX711.cpp
- Revision:
- 0:aa9794dcf489
- Child:
- 1:5a1ec06c8cc9
diff -r 000000000000 -r aa9794dcf489 HX711.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HX711.cpp Tue Jun 02 15:38:54 2015 +0000 @@ -0,0 +1,67 @@ +#include "HX711.h" + +HX711::HX711(PinName pin_dout, PinName pin_slk) :_pin_dout(pin_dout), _pin_slk(pin_slk) +{ + _pin_slk = 1; + wait_ms(100); + _pin_slk = 0; + + averageValue(); + this->setOffset(averageValue()); + this->setScale(1); +} + +HX711::~HX711() +{ + +} + +long HX711::averageValue(unsigned char times) +{ + long sum = 0; + for (unsigned char i = 0; i < times; i++) + { + sum += getValue(); + } + + return sum / times; +} + +long HX711::getValue() +{ + long valeur = 0; + + while (_pin_dout) + ; + + for (int i=0;i<24;i++) + { + _pin_slk = 1; + valeur=valeur<<1; + _pin_slk = 0; + if(_pin_dout) valeur++; + } + + _pin_slk = 1; + _pin_slk = 0; + + valeur=valeur^0x800000; + + return valeur; +} + +void HX711::setOffset(long offset) +{ + _offset = offset; +} + +void HX711::setScale(float scale) +{ + _scale = scale; +} + +float HX711::getGram() +{ + long val = (averageValue() - _offset); + return (float) val / _scale; +} \ No newline at end of file