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");
}

HX711.h

Committer:
Volt72
Date:
2015-07-17
Revision:
2:5d57c2060e7b
Parent:
1:5a1ec06c8cc9

File content as of revision 2:5d57c2060e7b:

#include "mbed.h"

/** Librairie Composant HX711
 * 
 * La classe HX711 est utilisée avec le composant du même nom
 *  Lien Datasheet : http://www.dfrobot.com/image/data/SEN0160/hx711_english.pdf
 *  Convertisseur Analogique/Numérique 24 bits
 *
 *  Mesure expérimentale personnelle : 
 *  Erreur relative d'environ 500 points sur 16777216 soit environ 0.00003% d'erreurs (9 bits inutiles)
 *  Utilisé avec un capteur de poids 0-30kg, précision a +/- 2g près
 *
 *  CORVASIER ADRIEN
 *  INRA - St Gilles
 */

class HX711
{
public:
    /** Constructeur de l'objet HX711
    *
    * @param pin_din : Pin assigné à la broche DT de la carte HX711
    * @param pin_slk : Pin assigné à la broche d'horloge SCK de la carte HX711
    * @returns aucun
    */
    HX711(PinName pin_din, PinName pin_slk);
    /** Destructeur de l'objet HX711
    *
    * @param numero : Numéro que l'on souhaite assigné
    * @returns numero
    */
    virtual ~HX711();
    /** Fonction permettant de déclencher la convertion et de récupérer la valeur mesurée entre 0 et 2^24
    *
    * @param aucun
    * @returns long Valeur mesurée sur un entier de type long
    */
    long getValue();
    /** Fonction permettant de déclencher la convertion et de récupérer la valeur mesurée entre -2^23 et 2^23
    *
    * @param aucun
    * @returns long Valeur mesurée sur un entier de type long
    */
    long getSignedValue();
    /** Fonction permettant de déclencher la convertion d'une série de mesure et ensuite de moyenner
    *
    * @param unsigned char Nombres de mesures à moyenner
    * @returns long Valeur mesurée et moyennée sur un entier de type long
    */
    long averageValue(unsigned char times = 32);
    /** Fonction permettant de régler l'offset pour la convertion en grammmes
    *
    * @param long Offset de décalage
    * @returns aucun
    */
    void setOffset(long offset);
    /** Fonction permettant de régler l'échelle pour la convertion en grammmes
    *
    * @param long Echelle de convertion
    * @returns aucun
    */
    void setScale(float scale);
    /** Fonction permettant de récupérer la mesure directement en grammes
    *
    * @param aucun
    * @returns int Grammes mesurés
    */
    int getGram();

private:                        // Déclaration des propriétés de l'objet
    DigitalIn _pin_dout;        // Broche de donnée
    DigitalOut _pin_slk;        // Broche d'horloge
    long _offset;               // Offset pour la convertion en grammes
    float _scale;               // Echelle pour la convertion en grammes
};