Michael Ohayon
/
HX711
Jauge de contraintes en parallèles
HX711.h@2:5d57c2060e7b, 2015-07-17 (annotated)
- Committer:
- Volt72
- Date:
- Fri Jul 17 13:51:10 2015 +0000
- Revision:
- 2:5d57c2060e7b
- Parent:
- 1:5a1ec06c8cc9
Version 3.0 Ajout fonction getSignedValue() afin de r?cup?rer la valeur sign?e de l'ADC
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Volt72 | 0:aa9794dcf489 | 1 | #include "mbed.h" |
Volt72 | 0:aa9794dcf489 | 2 | |
Volt72 | 0:aa9794dcf489 | 3 | /** Librairie Composant HX711 |
Volt72 | 0:aa9794dcf489 | 4 | * |
Volt72 | 0:aa9794dcf489 | 5 | * La classe HX711 est utilisée avec le composant du même nom |
Volt72 | 0:aa9794dcf489 | 6 | * Lien Datasheet : http://www.dfrobot.com/image/data/SEN0160/hx711_english.pdf |
Volt72 | 0:aa9794dcf489 | 7 | * Convertisseur Analogique/Numérique 24 bits |
Volt72 | 0:aa9794dcf489 | 8 | * |
Volt72 | 0:aa9794dcf489 | 9 | * Mesure expérimentale personnelle : |
Volt72 | 0:aa9794dcf489 | 10 | * Erreur relative d'environ 500 points sur 16777216 soit environ 0.00003% d'erreurs (9 bits inutiles) |
Volt72 | 0:aa9794dcf489 | 11 | * Utilisé avec un capteur de poids 0-30kg, précision a +/- 2g près |
Volt72 | 0:aa9794dcf489 | 12 | * |
Volt72 | 0:aa9794dcf489 | 13 | * CORVASIER ADRIEN |
Volt72 | 0:aa9794dcf489 | 14 | * INRA - St Gilles |
Volt72 | 0:aa9794dcf489 | 15 | */ |
Volt72 | 0:aa9794dcf489 | 16 | |
Volt72 | 0:aa9794dcf489 | 17 | class HX711 |
Volt72 | 0:aa9794dcf489 | 18 | { |
Volt72 | 0:aa9794dcf489 | 19 | public: |
Volt72 | 0:aa9794dcf489 | 20 | /** Constructeur de l'objet HX711 |
Volt72 | 0:aa9794dcf489 | 21 | * |
Volt72 | 0:aa9794dcf489 | 22 | * @param pin_din : Pin assigné à la broche DT de la carte HX711 |
Volt72 | 0:aa9794dcf489 | 23 | * @param pin_slk : Pin assigné à la broche d'horloge SCK de la carte HX711 |
Volt72 | 0:aa9794dcf489 | 24 | * @returns aucun |
Volt72 | 0:aa9794dcf489 | 25 | */ |
Volt72 | 0:aa9794dcf489 | 26 | HX711(PinName pin_din, PinName pin_slk); |
Volt72 | 0:aa9794dcf489 | 27 | /** Destructeur de l'objet HX711 |
Volt72 | 0:aa9794dcf489 | 28 | * |
Volt72 | 0:aa9794dcf489 | 29 | * @param numero : Numéro que l'on souhaite assigné |
Volt72 | 0:aa9794dcf489 | 30 | * @returns numero |
Volt72 | 0:aa9794dcf489 | 31 | */ |
Volt72 | 0:aa9794dcf489 | 32 | virtual ~HX711(); |
Volt72 | 2:5d57c2060e7b | 33 | /** Fonction permettant de déclencher la convertion et de récupérer la valeur mesurée entre 0 et 2^24 |
Volt72 | 0:aa9794dcf489 | 34 | * |
Volt72 | 0:aa9794dcf489 | 35 | * @param aucun |
Volt72 | 0:aa9794dcf489 | 36 | * @returns long Valeur mesurée sur un entier de type long |
Volt72 | 0:aa9794dcf489 | 37 | */ |
Volt72 | 0:aa9794dcf489 | 38 | long getValue(); |
Volt72 | 2:5d57c2060e7b | 39 | /** Fonction permettant de déclencher la convertion et de récupérer la valeur mesurée entre -2^23 et 2^23 |
Volt72 | 2:5d57c2060e7b | 40 | * |
Volt72 | 2:5d57c2060e7b | 41 | * @param aucun |
Volt72 | 2:5d57c2060e7b | 42 | * @returns long Valeur mesurée sur un entier de type long |
Volt72 | 2:5d57c2060e7b | 43 | */ |
Volt72 | 2:5d57c2060e7b | 44 | long getSignedValue(); |
Volt72 | 0:aa9794dcf489 | 45 | /** Fonction permettant de déclencher la convertion d'une série de mesure et ensuite de moyenner |
Volt72 | 0:aa9794dcf489 | 46 | * |
Volt72 | 0:aa9794dcf489 | 47 | * @param unsigned char Nombres de mesures à moyenner |
Volt72 | 0:aa9794dcf489 | 48 | * @returns long Valeur mesurée et moyennée sur un entier de type long |
Volt72 | 0:aa9794dcf489 | 49 | */ |
Volt72 | 0:aa9794dcf489 | 50 | long averageValue(unsigned char times = 32); |
Volt72 | 0:aa9794dcf489 | 51 | /** Fonction permettant de régler l'offset pour la convertion en grammmes |
Volt72 | 0:aa9794dcf489 | 52 | * |
Volt72 | 0:aa9794dcf489 | 53 | * @param long Offset de décalage |
Volt72 | 0:aa9794dcf489 | 54 | * @returns aucun |
Volt72 | 0:aa9794dcf489 | 55 | */ |
Volt72 | 0:aa9794dcf489 | 56 | void setOffset(long offset); |
Volt72 | 0:aa9794dcf489 | 57 | /** Fonction permettant de régler l'échelle pour la convertion en grammmes |
Volt72 | 0:aa9794dcf489 | 58 | * |
Volt72 | 0:aa9794dcf489 | 59 | * @param long Echelle de convertion |
Volt72 | 0:aa9794dcf489 | 60 | * @returns aucun |
Volt72 | 0:aa9794dcf489 | 61 | */ |
Volt72 | 0:aa9794dcf489 | 62 | void setScale(float scale); |
Volt72 | 0:aa9794dcf489 | 63 | /** Fonction permettant de récupérer la mesure directement en grammes |
Volt72 | 0:aa9794dcf489 | 64 | * |
Volt72 | 0:aa9794dcf489 | 65 | * @param aucun |
Volt72 | 1:5a1ec06c8cc9 | 66 | * @returns int Grammes mesurés |
Volt72 | 0:aa9794dcf489 | 67 | */ |
Volt72 | 1:5a1ec06c8cc9 | 68 | int getGram(); |
Volt72 | 0:aa9794dcf489 | 69 | |
Volt72 | 0:aa9794dcf489 | 70 | private: // Déclaration des propriétés de l'objet |
Volt72 | 0:aa9794dcf489 | 71 | DigitalIn _pin_dout; // Broche de donnée |
Volt72 | 0:aa9794dcf489 | 72 | DigitalOut _pin_slk; // Broche d'horloge |
Volt72 | 0:aa9794dcf489 | 73 | long _offset; // Offset pour la convertion en grammes |
Volt72 | 0:aa9794dcf489 | 74 | float _scale; // Echelle pour la convertion en grammes |
Volt72 | 0:aa9794dcf489 | 75 | }; |
Volt72 | 0:aa9794dcf489 | 76 |