Balance Arduino avec cellule de charge de 5 kg et amplificateur HX711

Cet Instructable décrit comment fabriquer une petite balance en utilisant des pièces disponibles sur étagère facilement disponibles.

Les matériaux nécessaires:

1. Arduino - cette conception utilise un Arduino Uno standard, d'autres versions ou clones Arduino devraient également fonctionner

2. HX711 sur la carte de dérivation - Cette micropuce est spécialement conçue pour amplifier les signaux des cellules de charge et les signaler à un autre microcontrôleur. Les cellules de charge se connectent à cette carte, et cette carte indique à l'Arduino ce que les cellules de charge mesurent.

3. Capteur de charge de 5 kg - Les capteurs de pesage sont des pièces métalliques de forme spéciale sur lesquelles sont collées des jauges de contrainte. Les jauges de contrainte sont des résistances qui modifient leur résistance lorsqu'elles sont pliées. Lorsque la pièce métallique se plie, la résistance de la cellule de charge change (le HX711 mesure précisément ce petit changement de résistance). Vous pouvez acheter le HX711 et la cellule de charge ici: //www.amazon.com/Degraw-Load-Cell-HX711-Combo/dp/B075317R45/

Si vous achetez le kit, veuillez laisser un commentaire! C'est vraiment utile pour les futurs acheteurs.

4. Surface de montage plate robuste (x2) - un morceau rigide de bois dur ou de métal est idéal.

5. Fils de différentes couleurs pour connecter toutes les pièces

6. Alimentation pour Arduino

Étape 1: monter la cellule de charge

Nous allons d'abord monter la cellule de charge. Votre monture sera unique, mais voici les directives que vous devez suivre:

1. La cellule de pesée en aluminium doit avoir 4 trous taraudés et une étiquette indiquant le sens de la force. Montez le côté sans étiquette sur la surface fixe et montez le côté avec l'étiquette sur la surface mobile. La flèche sur le côté étiqueté doit pointer vers le bas dans la direction où la plate-forme se déplacera lorsqu'une charge est appliquée.

2. La plaque de montage et la plaque mobile doivent être aussi rigides que possible

3. Assurez-vous de placer une certaine forme d'entretoises rigides entre les plaques de montage et la cellule de charge. Les entretoises ou les rondelles fonctionnent bien. Le but est que toute force appliquée à la plaque mobile provoque la flexion et la torsion de la cellule de charge. Sans entretoises, la charge serait transférée directement de la plaque mobile à la plaque fixe sans affecter la cellule de charge.

Étape 2: Câblez les cellules de charge et le HX711

Voir le schéma de câblage pour savoir comment connecter les cellules de charge, HX711 et Arduino.

Sur les cellules de pesage en aluminium, plusieurs jauges de contrainte sont déjà câblées ensemble pour un pont de Wheatstone. Il vous suffit de connecter les fils à la carte HX711 dans le bon sens.

Étape 3: ajouter la bibliothèque HX711 à votre IDE Arduino

La bibliothèque HX711 est disponible ici: //github.com/bogde/HX711

Consultez ce lien sur le site Web Arduino pour obtenir des instructions sur la façon d'ajouter la bibliothèque à votre IDE Arduino: //www.arduino.cc/en/Guide/Libraries

Étape 4: calibrer et peser!

Sparkfun a d'excellents programmes Arduino pour faire fonctionner la balance. Les versions les plus récentes sont disponibles sur GitHub et réimprimées ci-dessous: //github.com/sparkfun/HX711-Load-Cell-Amplifier

La première étape du logiciel consiste à déterminer les facteurs d'étalonnage de la balance. Pour ce faire, exécutez ce code:

 / * Exemple d'utilisation de la carte de dérivation SparkFun HX711 avec une échelle Par: Nathan Seidle SparkFun Electronics Date: 19 novembre 2014 Licence: Ce code est du domaine public mais vous m'achetez une bière si vous l'utilisez et nous nous rencontrerons un jour (licence Beerware). Ceci est le croquis d'étalonnage. Utilisez-le pour déterminer le facteur d'étalonnage utilisé par l'exemple principal. Il génère également le facteur zéro utile pour les projets qui ont une masse permanente sur l'échelle entre les cycles d'alimentation. Configurez votre balance et démarrez l'esquisse SANS poids sur la balance Une fois les lectures affichées, placez le poids sur la balance Appuyez sur +/- ou a / z pour ajuster le facteur d'étalonnage jusqu'à ce que les lectures de sortie correspondent au poids connu Utilisez ce facteur d'étalonnage sur l'esquisse d'exemple Cet exemple suppose des livres (lbs). Si vous préférez les kilogrammes, changez le Serial.print ("lbs"); ligne en kg. Le facteur d'étalonnage sera significativement différent mais il sera lié linéairement aux livres (1 livre = 0, 453592 kg). Votre facteur d'étalonnage peut être très positif ou très négatif. Tout dépend de la configuration de votre système de balance et de la direction dans laquelle les capteurs dévient de l'état zéro Cet exemple de code utilise l'excellente bibliothèque de bogde: "// github.com/bogde/HX711" La bibliothèque de bogde est publiée sous une broche Arduino GNU GENERAL PUBLIC LICENSE 2 -> HX711 CLK 3 -> DOUT 5V -> VCC GND -> GND La plupart des broches de l'Arduino Uno seront compatibles avec DOUT / CLK. La carte HX711 peut être alimentée de 2, 7 V à 5 V, donc l'alimentation Arduino 5 V devrait être correcte. * / #inclut "HX711.h" #define DOUT 3 #define CLK 2 HX711; float calibration_factor = -7050; // - 7050 a fonctionné pour ma configuration d'échelle maximale de 440 lb void setup () {Serial.begin (9600); Serial.println ("croquis d'étalonnage HX711"); Serial.println ("Supprimer tout le poids de la balance"); Serial.println ("Après le début des lectures, placez le poids connu sur la balance"); Serial.println ("Appuyez sur + ou sur a pour augmenter le facteur d'étalonnage"); Serial.println ("Appuyez sur - ou z pour diminuer le facteur d'étalonnage"); scale.begin (DOUT, CLK); scale.set_scale (); scale.tare (); // Réinitialise l'échelle à 0 long zero_factor = scale.read_average (); // Obtenez une ligne de base lisant Serial.print ("Zero factor:"); // Ceci peut être utilisé pour supprimer le besoin de tarer la balance. Utile dans les projets à échelle permanente. Serial.println (zero_factor); } void loop () {scale.set_scale (calibration_factor); // Ajuster à ce facteur d'étalonnage Serial.print ("Reading:"); Serial.print (scale.get_units (), 1); Serial.print ("lbs"); // Remplacez cela par kg et réajustez le facteur d'étalonnage si vous suivez les unités SI comme une personne sensée Serial.print ("calibration_factor:"); Serial.print (calibration_factor); Serial.println (); if (Serial.available ())} 

Après avoir calibré la balance, vous pouvez exécuter cet exemple de programme, puis le pirater à vos propres fins:

 / * Exemple d'utilisation de la carte de dérivation SparkFun HX711 avec une échelle Par: Nathan Seidle SparkFun Electronics Date: 19 novembre 2014 Licence: Ce code est du domaine public mais vous m'achetez une bière si vous l'utilisez et nous nous rencontrerons un jour (licence Beerware). Cet exemple illustre la sortie de base de l'échelle. Voir l'esquisse d'étalonnage pour obtenir le facteur d'étalonnage pour votre configuration de cellule de charge spécifique. Cet exemple de code utilise l'excellente bibliothèque de bogde: "// github.com/bogde/HX711" La bibliothèque de bogde est publiée sous une licence GNU GENERAL PUBLIC LICENSE Le HX711 fait bien une chose: lire les cellules de charge. La carte de dérivation est compatible avec n'importe quelle cellule de charge à pont de pierre de blé qui devrait permettre à un utilisateur de tout mesurer, de quelques grammes à des dizaines de tonnes. Broche Arduino 2 -> HX711 CLK 3 -> DAT 5V -> VCC GND -> GND La carte HX711 peut être alimentée de 2, 7 V à 5 V afin que la puissance de l'Arduino 5 V soit correcte. * / #include "HX711.h" #define calibration_factor -7050.0 // Cette valeur est obtenue en utilisant l'esquisse SparkFun_HX711_Calibration #define DOUT 3 #define CLK 2 HX711; void setup () {Serial.begin (9600); Serial.println ("démo à l'échelle HX711"); scale.begin (DOUT, CLK); scale.set_scale (calibration_factor); // Cette valeur est obtenue en utilisant l'esquisse SparkFun_HX711_Calibration scale.tare (); // En supposant qu'il n'y a pas de poids sur la balance au démarrage, réinitialisez la balance à 0 Serial.println ("Readings:"); } void loop () {Serial.print ("Reading:"); Serial.print (scale.get_units (), 1); //scale.get_units () renvoie un float Serial.print ("lbs"); // Vous pouvez changer cela en kg mais vous devrez refactoriser le calibration_factor Serial.println (); } 

Articles Connexes