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