Accueil > ARDUINO > Capteurs > Arduino & Amplificateur HX711 SPARKFUN pour capteur d’effort (avec pont (...)

Arduino & Amplificateur HX711 SPARKFUN pour capteur d’effort (avec pont de Wheatstone)

mardi 3 mars 2020, par thebault

Caractéristiques

JPEG - 42.9 ko

Cet amplificateur de différence permet de récupérer les faibles variations de tension issue d’un capteur fonctionnant sur le principe du pont de Wheastone(pour un capteur d’effort dans notre exemple)

Les broches :

Broche fonction Broche fonction
RED à brancher au capteur VDD Alimentation du HX711
BLK à brancher au capteur VCC Alimentation du pont de Wheastone
WHT à brancher au capteur DAT données
GRN à brancher au capteur CLK horloge
YLW à brancher au capteur GND Masse

Les branchements

JPEG - 446.4 ko

Remarque 1 : Les broches Vcc et Vdd sont toutes les 2 reliées à 5V dans le cas d’un carte Arduino fonctionnant en +5V. Si on utilise une carte fonctionnant en 3,3V, il faut relier VDD à +3,3V et Vcc à +5V
Ramrque 2 : le fil jaune n’est présent que sur certains capteurs. Il permet d’améliorer l’immunité au bruit.

Le programme Arduino

Nous allons utiliser la bibliothèque HX711 Arduino Library disponible depuis le gestionnaire de bibliothèque de l’IDE Arduino (Outils -> Gérer les bibliothèques)
https://github.com/bogde/HX711

Les fonctions de la bibliothèque :

instructions rôle
HX711 capteur crée une instance capteur de l’objet de type HX711
capteur.begin(broche DAT , broche CLK, gain) OU capteur.begin(broche DAT , broche CLK) initialise le capteur en définissant les numéros de broches sur lesquelles sont reliées DAT et CLK. Si le gain de l’amplificateur est omis, il est fixé à 128 par défaut
read() retourne une mesure "brut" (= code décimal de la mesure)
read_average(10) retourne la moyenne de 10 mesures "bruts" (= code décimal de la mesure)

Le programme suivant effectue une mesure toutes les secondes.

  1. #include "HX711.h"
  2.  
  3. HX711 capteur;
  4. int DAT = 3;
  5. int CLK = 2;
  6. long valeur;
  7.  
  8. void setup() {
  9. capteur.begin(DAT,CLK);
  10. Serial.begin(9600);
  11. Serial.println("HX711");
  12. }
  13.  
  14. void loop() {
  15. valeur = capteur.read_average(10);
  16. Serial.print("Valeur mesurée : ");
  17. Serial.println(valeur);
  18. delay(1000);
  19. }

Télécharger

Si on ouvre le moniteur série, on obtient le code numérique en sortie du capteur.
On peut maintenant appliquer une tare de façon à ce que sans charge (poids ou force) le capteur soit à zéro.

instructions rôle
capteur.tare() permet de tarer le capteur. Il doit être en position fixe, sans effort exercé dessus
capteur.get_value(10) permet de retirer la valeur de la tare lors des mesures (=offset). On obtient donc le code numérique de la mesure moins le code numérique de la tare
  1. #include "HX711.h"
  2.  
  3. HX711 capteur;
  4. int DAT = 3;
  5. int CLK = 2;
  6. long valeur;
  7.  
  8. void setup() {
  9. capteur.begin(DAT, CLK);
  10. Serial.begin(9600);
  11. while (!Serial) {
  12. }
  13. Serial.println("HX711");
  14. // tarage du capteur
  15. Serial.println("Tarage du capteur");
  16. Serial.println("Le capteur doit être fixé et ne pas être touché ou déplacé");
  17. capteur.tare();
  18. }
  19.  
  20. void loop() {
  21. valeur = capteur.get_value(10);
  22. Serial.print("Valeur mesurée (avec tare) : ");
  23. Serial.println(valeur);
  24. delay(1000);
  25. }

Télécharger

SPIP | | Plan du site | Suivre la vie du site RSS 2.0
Habillage visuel © digitalnature sous Licence GPL