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