- Erforderliche Komponenten zum Erstellen einer Arduino-Gewichtsskala:
- Wägezelle und HX711 Gewichtssensormodul:
- Schaltungserklärung:
- Arbeitserklärung:
- Arduino Waage Code:
Heute werden wir eine Arduino-Wight-Maschine bauen, indem wir Wägezelle und HX711-Gewichtssensor mit Arduino verbinden. Wir haben in vielen Geschäften Kraftmaschinen gesehen, in denen die Maschine das Gewicht anzeigt, indem sie einen Gegenstand auf die Wägebrücke legt. Hier bauen wir also dieselbe Waage mit Arduino- und Wägezellen mit einer Kapazität von bis zu 40 kg. Diese Grenze kann durch Verwendung der Wägezelle mit höherer Kapazität weiter erhöht werden.
Die Hauptkomponente, die zum Aufbau dieser Arduino-Waage benötigt wird, ist ein Sensor, der das Gewicht in ein äquivalentes elektrisches Signal umwandeln kann. Dieser Sensor wird als Wägezelle bezeichnet. In diesem Projekt werden wir diese Wägezelle als Arduino-Gewichtssensor verwenden. Wir haben auch in wenigen anderen Projekten dieselbe Wägezelle verwendet wie die tragbare Arduino Retail-Waage, die Himbeer-Pi-Waage usw. Sie können sie auch bei Interesse überprüfen.
Erforderliche Komponenten zum Erstellen einer Arduino-Gewichtsskala:
- Arduino Uno
- Wägezelle (40 kg)
- HX711 Wägezellenverstärkermodul
- 16x2 LCD
- Kabel anschließen
- USB-Kabel
- Steckbrett
- Mutternschrauben, Rahmen und Basis
Wägezelle und HX711 Gewichtssensormodul:
Die Wägezelle ist ein Wandler, der Kraft oder Druck in elektrische Leistung umwandelt. Die Größe dieser elektrischen Leistung ist direkt proportional zur ausgeübten Kraft. Wägezellen haben einen Dehnungsmessstreifen, der sich verformt, wenn Druck auf sie ausgeübt wird. Und dann erzeugt der Dehnungsmessstreifen bei Verformung ein elektrisches Signal, wenn sich sein effektiver Widerstand bei Verformung ändert. Eine Wägezelle besteht normalerweise aus vier Dehnungsmessstreifen in einer Wheatstone-Brückenkonfiguration. Wägezelle gibt es in verschiedenen Bereichen wie 5 kg, 10 kg, 100 kg und mehr. Hier haben wir Wägezelle verwendet, die bis zu 40 kg wiegen kann.
Jetzt sind die von der Wägezelle erzeugten elektrischen Signale in wenigen Millivolt, so dass sie durch einen Verstärker weiter verstärkt werden müssen, und daher kommt der HX711-Wägesensor ins Spiel. Das HX711-Wägesensormodul verfügt über einen HX711-Chip, einen hochpräzisen 24-A / D-Wandler (Analog-Digital-Wandler). Der HX711 verfügt über zwei analoge Eingangskanäle. Durch Programmieren dieser Kanäle können wir eine Verstärkung von bis zu 128 erzielen. Das HX711-Modul verstärkt also die niedrige elektrische Leistung von Wägezellen, und dann wird dieses verstärkte und digital konvertierte Signal in das Arduino eingespeist, um das Gewicht abzuleiten.
Die Wägezelle ist über vier Drähte mit dem Wägezellenverstärker HX711 verbunden. Diese vier Drähte sind Rot, Schwarz, Weiß und Grün / Blau. Die Farben der Drähte können von Modul zu Modul leicht variieren. Unterhalb der Verbindungsdetails und des Diagramms:
- Der ROTE Draht ist mit E + verbunden
- SCHWARZER Draht ist mit E- verbunden
- WHITE Wire ist an A- angeschlossen.
- GRÜNER Draht ist mit A + verbunden
Fixieren der Wägezelle mit Plattform und Basis:
Dieser Schritt ist optional und Sie können die Gewichte ohne Plattform direkt auf die Wägezelle legen und sie einfach festklemmen, ohne sie mit einer Basis zu befestigen. Es ist jedoch besser, eine Plattform anzubringen, um die großen Dinge darauf zu platzieren und auf einer Basis zu befestigen damit es zum Stillstand kommt. Hier müssen wir also einen Rahmen oder eine Plattform erstellen, um die Dinge für die Gewichtsmessung zu platzieren. Eine Basis ist auch erforderlich, um die Wägezelle mit Schrauben und Muttern darüber zu befestigen. Hier haben wir Hartkarton für den Rahmen verwendet, um Dinge darüber zu platzieren, und ein Holzbrett als Basis. Stellen Sie nun die Verbindungen wie im Schaltplan gezeigt her und Sie können loslegen.
Schaltungserklärung:
Die Anschlüsse für dieses Projekt sind einfach und das Schema ist unten angegeben. Die 16 x 2 LCD-Pins RS, EN, d4, d5, d6 und d7 sind mit den Pin-Nummern 8, 9, 10, 11, 12 bzw. 13 von Arduino verbunden. Die DT- und SCK-Pins des HX711-Moduls sind direkt mit den Arduino-Pins A0 und A1 verbunden. Wägezellenverbindungen mit dem HX711-Modul wurden bereits früher erläutert und sind auch im folgenden Schaltplan dargestellt.
Arbeitserklärung:
Das Arbeitsprinzip dieses Arduino Weight Measurement-Projekts ist einfach. Bevor wir auf Details eingehen, müssen wir zuerst dieses System kalibrieren, um das richtige Gewicht zu messen. Wenn der Benutzer es einschaltet, beginnt das System automatisch mit der Kalibrierung. Und wenn der Benutzer es manuell kalibrieren möchte, drücken Sie den Druckknopf. Wir haben eine Funktion void kalibrieren () für Kalibrierungszwecke erstellt. Überprüfen Sie den folgenden Code.
Warten Sie zur Kalibrierung auf die LCD-Anzeige, um 100 Gramm über die Wägezelle zu geben, wie in der folgenden Abbildung gezeigt. Wenn auf dem LCD „100 g“ angezeigt wird, legen Sie das Gewicht von 100 g über die Wägezelle und warten Sie. Nach einigen Sekunden ist der Kalibrierungsvorgang abgeschlossen. Nach der Kalibrierung kann der Benutzer ein beliebiges Gewicht (max. 40 kg) über die Wägezelle legen und den Wert über das LCD in Gramm abrufen.
In diesem Projekt haben wir Arduino verwendet, um den gesamten Prozess zu steuern. Die Wägezelle erfasst das Gewicht und liefert eine elektrische analoge Spannung an das Lastverstärkermodul HX711. HX711 ist ein 24-Bit-ADC, der den Wägezellenausgang verstärkt und digital konvertiert. Dann wird dieser verstärkte Wert dem Arduino zugeführt. Jetzt berechnet Arduino die Ausgabe von HX711 und wandelt diese in Gewichtswerte in Gramm um und zeigt sie auf dem LCD an. Ein Druckknopf dient zur Kalibrierung des Systems. Wir haben ein Arduino-Programm für den gesamten Prozess geschrieben. Überprüfen Sie den Code und das Demo-Video am Ende dieses Tutorials.
Arduino Waage Code:
Der Programmierteil dieses Projekts ist für Anfänger etwas komplex. In diesem Projekt haben wir keine Bibliothek für die Verbindung des HX711-Lastsensors mit Arduino verwendet. Wir haben gerade das Datenblatt von HX711 und die Anwendungshinweise befolgt. Obwohl für diesen Zweck einige Bibliotheken vorhanden sind, müssen Sie diese Bibliothek nur einschließen, und Sie können das Gewicht mit einer Codezeile ermitteln.
Zunächst haben wir eine Header-Datei für LCD eingefügt und die Pins dafür definiert. Und auch für Druckknopf. Dann wurden einige Variablen zu Berechnungszwecken deklariert.
#einschließen
Danach haben wir die folgende Funktion zum Lesen von Daten aus dem HX711-Modul erstellt und dessen Ausgabe zurückgegeben.
unsigned long readCount (void) {unsigned long Count; vorzeichenloses Zeichen i; PinMode (DT, OUTPUT); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Anzahl = 0; PinMode (DT, INPUT); while (digitalRead (DT)); für (i = 0; i <24; i ++) {digitalWrite (SCK, HIGH); Count = Count << 1; digitalWrite (SCK, LOW); if (digitalRead (DT)) Count ++; } digitalWrite (SCK, HIGH); Count = Count ^ 0x800000; digitalWrite (SCK, LOW); return (Count); }}
Danach haben wir LCD initialisiert und geben Anweisungen zu den Eingangs- und Ausgangspins in void setup ().
void setup () {Serial.begin (9600); PinMode (SCK, OUTPUT); pinMode (sw, INPUT_PULLUP); lcd.begin (16, 2); lcd.print ("Gewicht"); lcd.setCursor (0,1); lcd.print ("Messung"); Verzögerung (1000); lcd.clear (); kalibrieren(); }}
Als nächstes haben wir in der Funktion void loop () Daten aus dem HX711-Modul gelesen und diese Daten in Gewicht (Gramm) konvertiert und an das LCD gesendet.
void loop () {count = readCount (); int w = (((Zählprobe) / val) -2 * ((Zählprobe) / val)); Serial.print ("weight:"); Serial.print ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("Gewicht"); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); if (digitalRead (sw) == 0) {val = 0; Probe = 0; w = 0; count = 0; kalibrieren(); }}
Zuvor haben wir eine Kalibrierungsfunktion erstellt, in der wir das System kalibriert haben, indem wir das Gewicht von 100 g über die Wägezelle gelegt haben.
void kalibrieren () {lcd.clear (); lcd.print ("Kalibrieren…"); lcd.setCursor (0,1); lcd.print ("Bitte warten…"); für (int i = 0; i <100; i ++) {count = readCount (); Probe + = Anzahl; Serial.println (Anzahl); }……………….
Hier haben wir also die grundlegende Schnittstelle zwischen Wägezelle und HX11-Gewichtssensor mit Arduino gelernt, um die Gewichte zu messen. In unseren Text-Tutorials werden wir einige Anwendungen erstellen, die auf Gewichtsmessungen basieren, wie z. B. Smart Container, Automatic Gate usw.