Librairie pouvant être utilisée avec le module HX711. Library which can be used with the HX711 component.

Dependents:   11B_DOGFEEDER 10B_Project_strian_guage_final Project_strian_guage_final 11A_ForcePlate_by_LoadCell ... more

Photo

/media/uploads/Volt72/hx711petit.jpeg

Schema

/media/uploads/Volt72/schemahx711module.jpg

Utilisation

Datasheet du composant : https://cdn.sparkfun.com/datasheets/Sensors/ForceFlex/hx711_english.pdf

Pour utiliser le module sous une tension de 3,3V, il faut préalablement modifier le pont de résistances R12, R13 en modifiant R13 par une résistance de 20kOhms.

Tel que le module est câblé, la fréquence d'échantillonnage maximale d'un capteur est de 10Hz.

Dans l'exemple ci-dessous les paramètres d'échelle et d'offset sont fixes. Les fonctions de réglages d'offset et d'échelle ne sont pas utilisés.

Code d'utilisation simple en utilisant seulement getValue()

#include "mbed.h"
#include "HX711.h"

Serial pc(USBTX,USBRX);         // Déclaration du port série USB

HX711 Balance(PTD0,PTD5);       // Déclaration de l'objet HX711

int main() 
{
    pc.printf("\nDebut Enregistrement\n");
    
    long valeur;
    long valeurTare;
    long float poids;
    
    valeurTare = Balance.getValue();                                           // On récupère la valeur de la Tare
    while (true) 
    {
        wait_ms(200);                                                       // Attente de 200 millisecondes
        valeur = Balance.getValue();                                        // On récupère la valeur du module
        poids = ((long float)valeur-(long float)valeurTare)/143200;         // Convertionde la valeur de l'ADC en grammes
        pc.printf("Valeur : %ld          Poids : %.3lf\n",valeur,poids);    // Affichage du poids
    }
    
    pc.printf("\nFin Enregistrement\n");
}

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?

UserRevisionLine numberNew 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