Scientific task box V1
Dependents: Scientific_RTOS Scientific_RTOS
HX711.cpp@4:d9c5d93963a8, 2019-09-05 (annotated)
- Committer:
- Alessio_Zaino
- Date:
- Thu Sep 05 20:55:56 2019 +0000
- Revision:
- 4:d9c5d93963a8
- Parent:
- 0:01deb85101c9
final;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Alessio_Zaino | 0:01deb85101c9 | 1 | #include "HX711.h" |
Alessio_Zaino | 0:01deb85101c9 | 2 | |
Alessio_Zaino | 0:01deb85101c9 | 3 | HX711::HX711(PinName pin_dout, PinName pin_slk) :_pin_dout(pin_dout), _pin_slk(pin_slk) |
Alessio_Zaino | 0:01deb85101c9 | 4 | { |
Alessio_Zaino | 0:01deb85101c9 | 5 | _pin_slk = 1; |
Alessio_Zaino | 0:01deb85101c9 | 6 | wait_ms(100); |
Alessio_Zaino | 0:01deb85101c9 | 7 | _pin_slk = 0; |
Alessio_Zaino | 0:01deb85101c9 | 8 | |
Alessio_Zaino | 0:01deb85101c9 | 9 | averageValue(); |
Alessio_Zaino | 0:01deb85101c9 | 10 | // this->setOffset(averageValue()); |
Alessio_Zaino | 0:01deb85101c9 | 11 | this->setScale(1); |
Alessio_Zaino | 0:01deb85101c9 | 12 | } |
Alessio_Zaino | 0:01deb85101c9 | 13 | |
Alessio_Zaino | 0:01deb85101c9 | 14 | HX711::~HX711() |
Alessio_Zaino | 0:01deb85101c9 | 15 | { |
Alessio_Zaino | 0:01deb85101c9 | 16 | |
Alessio_Zaino | 0:01deb85101c9 | 17 | } |
Alessio_Zaino | 0:01deb85101c9 | 18 | |
Alessio_Zaino | 0:01deb85101c9 | 19 | long HX711::averageValue(unsigned char times) |
Alessio_Zaino | 0:01deb85101c9 | 20 | { |
Alessio_Zaino | 0:01deb85101c9 | 21 | long sum = 0; |
Alessio_Zaino | 0:01deb85101c9 | 22 | for (unsigned char i = 0; i < times; i++) |
Alessio_Zaino | 0:01deb85101c9 | 23 | { |
Alessio_Zaino | 0:01deb85101c9 | 24 | sum += getValue(); |
Alessio_Zaino | 0:01deb85101c9 | 25 | } |
Alessio_Zaino | 0:01deb85101c9 | 26 | |
Alessio_Zaino | 0:01deb85101c9 | 27 | return sum / times; |
Alessio_Zaino | 0:01deb85101c9 | 28 | } |
Alessio_Zaino | 0:01deb85101c9 | 29 | |
Alessio_Zaino | 0:01deb85101c9 | 30 | long HX711::getValue() |
Alessio_Zaino | 0:01deb85101c9 | 31 | { |
Alessio_Zaino | 0:01deb85101c9 | 32 | long valeur = 0; |
Alessio_Zaino | 0:01deb85101c9 | 33 | |
Alessio_Zaino | 0:01deb85101c9 | 34 | while (_pin_dout) |
Alessio_Zaino | 0:01deb85101c9 | 35 | ; |
Alessio_Zaino | 0:01deb85101c9 | 36 | |
Alessio_Zaino | 0:01deb85101c9 | 37 | for (int i=0;i<24;i++) |
Alessio_Zaino | 0:01deb85101c9 | 38 | { |
Alessio_Zaino | 0:01deb85101c9 | 39 | _pin_slk = 1; |
Alessio_Zaino | 0:01deb85101c9 | 40 | valeur=valeur<<1; |
Alessio_Zaino | 0:01deb85101c9 | 41 | _pin_slk = 0; |
Alessio_Zaino | 0:01deb85101c9 | 42 | if(_pin_dout) valeur++; |
Alessio_Zaino | 0:01deb85101c9 | 43 | } |
Alessio_Zaino | 0:01deb85101c9 | 44 | |
Alessio_Zaino | 0:01deb85101c9 | 45 | _pin_slk = 1; |
Alessio_Zaino | 0:01deb85101c9 | 46 | _pin_slk = 0; |
Alessio_Zaino | 0:01deb85101c9 | 47 | |
Alessio_Zaino | 0:01deb85101c9 | 48 | valeur=valeur^0x800000; |
Alessio_Zaino | 0:01deb85101c9 | 49 | |
Alessio_Zaino | 0:01deb85101c9 | 50 | return valeur; |
Alessio_Zaino | 0:01deb85101c9 | 51 | } |
Alessio_Zaino | 0:01deb85101c9 | 52 | |
Alessio_Zaino | 0:01deb85101c9 | 53 | long HX711::getSignedValue() |
Alessio_Zaino | 0:01deb85101c9 | 54 | { |
Alessio_Zaino | 0:01deb85101c9 | 55 | return (getValue()-0x7FFFFF); |
Alessio_Zaino | 0:01deb85101c9 | 56 | } |
Alessio_Zaino | 0:01deb85101c9 | 57 | |
Alessio_Zaino | 0:01deb85101c9 | 58 | void HX711::setTare(long offset) |
Alessio_Zaino | 0:01deb85101c9 | 59 | { |
Alessio_Zaino | 0:01deb85101c9 | 60 | _offset = offset; |
Alessio_Zaino | 0:01deb85101c9 | 61 | } |
Alessio_Zaino | 0:01deb85101c9 | 62 | |
Alessio_Zaino | 0:01deb85101c9 | 63 | void HX711::setScale(float scale) |
Alessio_Zaino | 0:01deb85101c9 | 64 | { |
Alessio_Zaino | 0:01deb85101c9 | 65 | _scale = scale; |
Alessio_Zaino | 0:01deb85101c9 | 66 | } |
Alessio_Zaino | 0:01deb85101c9 | 67 | |
Alessio_Zaino | 0:01deb85101c9 | 68 | int HX711::getGram() |
Alessio_Zaino | 0:01deb85101c9 | 69 | { |
Alessio_Zaino | 0:01deb85101c9 | 70 | long val = (getValue() - _offset); |
Alessio_Zaino | 0:01deb85101c9 | 71 | return (int)((val/_scale)*1000); |
Alessio_Zaino | 0:01deb85101c9 | 72 | } |