Dans cet article, nous mesurons la masse d'un objet au moyen d'une balance branchée à un module HX711 et à un Arduino Uno.
Matériel
Je me suis procuré un kit constitué d'une cellule de charge, d'un module HX711 (convertisseur analogique/numérique à 24 bits spécialement conçu pour traiter le signal d'une cellule de charge), de deux plaques circulaires en acrylique et de la quincaillerie nécessaire pour assembler le tout.
Si vous préférez, il est facile d'acheter uniquement la cellule de charge et le module HX711.
Principe de fonctionnement
La cellule de charge (load cell), ou capteur de force, est un morceau de métal sur lequel on a collé quatre jauges de contrainte (ou jauges de déformations): il s'agit de résistances qui varient lorsque la cellule de charge se déforme. Ces quatre jauges sont branchées de façon à former un pont de Wheatstone. Le module HX711 amplifie la très faible variation de signal engendrée par la très subtile déformation de la cellule de charge, et la convertit en un signal numérique qui pourra ensuite être traité par un microcontrôleur.
Assemblage
Chacun des disques en acrylique est fixé à un côté de la cellule de charge, de façon à former un profil qui ressemble un peu à un "S":
Sur la cellule de charge, une flèche indique le sens de la déflexion: cette flèche pointera vers le bas pendant l'utilisation de la balance.
Une fois l'assemblage terminé, un des disques en acrylique forme la base de la balance, alors que l'autre constitue son plateau.
Connexion de la cellule de charge au module HX711
Le module HX711 comporte 6 connecteurs servant à brancher la cellule de charge (E+, E-, A-, A+, B-, B+), et quatre connecteurs servant à l'alimentation et à la communication avec un microcontrôleur (GND, DT, SCK, VCC).
La cellule de charge est branchée au module HX711 de la façon suivante:
- Fil rouge: E+
- Fil noir: E-
- Fil blanc: A-
- Fil vert: A+
E+ et E- sont des sorties (signal d'excitation du pont de Wheatstone), alors que A+ et A- sont des entrées.
Connexion du module HX711 à l'Arduino
Le module HX711 est branché à l'Arduino Uno de cette façon:
- GND du HX711: GND de l'Arduino
- DT du HX711: broche 2 de l'Arduino (données numériques)
- SCK du HX711: broche 3 de l'Arduino (signal d'horloge)
- VCC du HX711: sortie 5 V de l'Arduino
Installation de la bibliothèque HX711
Le gestionnaire de bibliothèques présente plusieurs bibliothèques spécialement conçues pour faciliter l'utilisation du HX711. J'ai choisi celle qui a été mise au point par Bogdgan Necula, qui est également compatible avec l'ESP8266, l'ESP32 et le STM32.
Pour vérifier le fonctionnement correct de votre balance, vous pouvez utiliser le sketch "HX711_basic_example" qui est fourni avec la bibliothèque.
Ce sketch affiche dans le moniteur série les données brutes issues du HX711. N'espérez pas obtenir une valeur déjà calibrée en kilogrammes, mais si la valeur affichée augmente lorsque vous augmentez la masse sur le plateau, tout va bien!
Calibration et utilisation de la balance
Le sketch ci-dessous affiche la masse en grammes, à la condition d'avoir trouvé le bon paramètre de calibration.
-
-
Pour calibrer la balance, il faut modifier la ligne 34 pour que set_scale soit utilisé sans paramètres:
balance.set_scale();
On exécute le sketch pendant que le plateau de la balance est vide et, une fois la balance en fonction, on place sur le plateau une masse dont on connaît la valeur.
Dans mon cas, la valeur 76486 s'affichait lorsqu'une masse de 200 g était placée sur le plateau.
76486 divisé par 200 donne 382, et j'ai donc ajouté le paramètre "382" à la méthode set_scale (ligne 34):
balance.set_scale(382);
Voici les résultats obtenus après calibration, lorsque le plateau est vide, puis lorsque j'y place 200 grammes, 400 grammes et 600 grammes:
À lire également