Verwenden eines DMS-Balkens mit Arduino
Ein Dehnungsmessstreifen ermöglicht das Wiegen eines Objekts. Dieses kurze Tutorial zeigt, wie man mit dem Arduino Uno Board damit umgeht.
Das Beispiel verwendet die folgenden Elemente:
Verbindung
Das Modul wird direkt vom Arduino mit Strom versorgt, sodass wir keine externe Stromquelle benötigen. Die Stifte werden gemäß der folgenden Tabelle angebracht:
Verstärkerstift | Arduino-Stift |
---|---|
VCC | 5 V |
DAT | 3 |
CLK | 2 |
Masse | Masse |
Befestigen Sie auf der anderen Seite des Verstärkermoduls den DMS-Balken entsprechend den Farben der Adern.
- Rot rot
- SCHWARZ - schwarz
- WHT - weiß
- GRN - grün
Anschlussplan von Strahl, Verstärker und Arduino Uno.
Service
Zunächst sollte die Bibliothek zur Arduino-Umgebung hinzugefügt werden (Sketch -> Include Library -> Add .ZIP Library ...).
Das Beispiel verwendet die Programme aus der beigefügten Bibliothek. Führen Sie zuerst das Kalibrierungsprogramm SparkFun_HX711_Calibration aus (Datei -> Beispiele -> HX711 -> SparkFun_HX711_Calibration). Dank dessen können wir den Koeffizienten für den verwendeten Dehnungsmessstreifen bestimmen.
Wir starten das System ohne Belastung des Balkens. Dann legen wir einen Gegenstand mit bekanntem Gewicht hinein. Stellen Sie nun mit den Tasten „+“ und „-“ (bzw. „a“ und „z“) den Messwert so ein, dass er mit unserer bekannten Masse übereinstimmt, z.
Screenshot vom Serial Port Monitor.
Unten verwendetes Programm (basierend auf dem aus der Bibliothek)
#include "HX711.h" #define DOUT 3 // Arduino Pin 3 und Sensor-DAT-Ausgang #define CLK 2 // Arduino Pin 2 und Sensor-CLK-Ausgang HX711-Skala (DOUT, CLK); Schwimmerkalibrierungsfaktor = -7050; // Kalibrierungsfaktor void setup () { Serial.begin (9600); Serial.println ("HX711 - Kalibrierungsprogramm"); Serial.println ("Ladung vom Balken entfernen"); Serial.println ("Legen Sie nach dem Start des Lesens die bekannte Masse auf den Balken"); Serial.println ("Drücken Sie + oder um den Kalibrierungsfaktor zu erhöhen"); Serial.println ("Drücken Sie - oder um den Kalibrierungsfaktor zu erhöhen"); scale.set_scale (); scale.tare (); // Zurücksetzen der Skala auf 0 long zero_factor = scale.read_average (); // Lesen Sie die Grundlagen Serial.print ("Nullfaktor:"); // Kann verwendet werden, um die Notwendigkeit einer Waagentarierung zu beseitigen. Nützlich für Projekte mit festem Maßstab Serial.println (zero_factor); } Leere Schleife () { scale.set_scale (Kalibrierungsfaktor); // Ausrichtung nach Kalibrierfaktor Serial.print ("Lesen:"); Serial.print (scale.get_units (), 1); Serial.print ("kg"); // Wir können Kilogramm oder Pfund frei wählen, da zwischen ihnen ein linearer Zusammenhang besteht Serial.print ("Calibration_factor: "); Serial.print (Kalibrierfaktor); Serial.println (); if (Serial.available ()) {char temp = Serial.read (); // Abrufen des eingegebenen Werts und Ändern des Kalibrierungsfaktors if (temp == '+ '|| temp ==' a ') kalibrierungsfaktor + = 10; sonst if (temp ==' - '|| temp ==' z ') kalibrierungsfaktor - = 10;}}
Dann sollte der gelesene Wert im Programm SparkFun_HX711_Example verwendet werden (Datei -> Beispiele -> HX711 -> SparkFun_HX711_Example). Wir werden ein polonisiertes Programm verwenden:
#include "HX711.h" #define Calibration_factor -3350.0 // Wert aus dem Kalibrierprogramm lesen #define DOUT 3 // Arduino Pin 3 und Sensor-DAT-Ausgang #define CLK 2 // Arduino Pin 2 und Sensor-CLK-Ausgang HX711-Skala (DOUT, CLK); void setup () { Serial.begin (9600); Serial.println ("HX711 Scale-Demo"); scale.set_scale (Kalibrierungsfaktor); // Stellen Sie die Kalibrierung ein scale.tare (); // Setzen Sie den Zeiger auf den Anfang zurück Serial.println ("Liest:"); } Leere Schleife () { Serial.print ("Lesen:"); Serial.print (scale.get_units (), 1); //scale.get_units () gibt die Float-Variable zurück Serial.print ("kg"); // Wir können Kilogramm oder Pfund frei wählen, aber bei einer Änderung ändert sich auch der Kalibrierfaktor Serial.println (); }
Jetzt können wir beliebige Gegenstände wiegen. Das Ergebnis der Arbeit des Programms wird auf dem Bildschirm unten angezeigt:
Screenshot vom Serial Port Monitor.