Inhaltsverzeichnis:
- Schritt 1: Verwendete Ressourcen
- Schritt 2: Demonstration
- Schritt 3: Wägezellen
- Schritt 4: Wägezellen und Dehnungsmessstreifen
- Schritt 5: Wheatstone-Brücke
- Schritt 6: Verstärkung
- Schritt 7: Amplifikation (Schema)
- Schritt 8: Erfassung von Daten für die Kalibrierung
- Schritt 9: Erhalten der Funktionsbeziehung zwischen der gemessenen Masse und dem Wert des erhaltenen ADC
- Schritt 10: Quellcode
- Schritt 11: Starten und Messen
- Schritt 12: Dateien
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Haben Sie schon einmal darüber nachgedacht, eine digitale Waage mit einem ESP32 und einem Sensor (bekannt als Wägezelle) zu montieren? Heute zeige ich Ihnen, wie dies durch einen Prozess geht, der auch andere Labortests ermöglicht, wie unter anderem die Ermittlung der Kraft, die ein Motor auf einen Punkt ausübt.
Anschließend werde ich einige Konzepte im Zusammenhang mit der Verwendung von Wägezellen demonstrieren, Zellendaten erfassen, um eine Beispielwaage zu bauen, und auf andere mögliche Anwendungen von Wägezellen hinweisen.
Schritt 1: Verwendete Ressourcen
• Heltec Lora 32 WLAN-ESP
• Wägezelle (0 bis 50 Newton, mit einer Waage)
• 1 Potentiometer von 100k (besser, wenn Sie ein Multivolt-Trimmpotentiometer zur Feineinstellung verwenden)
• 1 Ampere Op LM358
• 2 1M5 Widerstände
• 2 10k Widerstände
• 1 4k7-Widerstand
• Drähte
• Ein Protoboard
• Ein USB-Kabel für ESP
• Eine Waage, ein Behälter mit graduiertem Volumen oder eine andere Kalibriermethode.
Schritt 2: Demonstration
Schritt 3: Wägezellen
• Sie sind Kraftaufnehmer.
• Sie können verschiedene Methoden anwenden, um die aufgebrachte Kraft in eine proportionale Größe umzuwandeln, die als Maß verwendet werden kann. Zu den gebräuchlichsten gehören diejenigen, die Plattenextensometer, den piezoelektrischen Effekt, Hydraulik, vibrierende Saiten usw. verwenden.
• Sie können auch nach der Messform (Zug oder Druck) klassifiziert werden
Schritt 4: Wägezellen und Dehnungsmessstreifen
• Plattenextensometer sind Folien (normalerweise Kunststoff) mit einem gedruckten Draht, deren Widerstand sich mit ihrer Größenänderung ändern kann.
• Seine Konstruktion zielt hauptsächlich darauf ab, eine mechanische Verformung in eine Variation einer elektrischen Größe (Widerstand) umzuwandeln. Dies erfolgt vorzugsweise in einer einzigen Richtung, so dass eine Bauteilbewertung durchgeführt werden kann. Hierfür ist die Kombination mehrerer Dehnungsaufnehmer üblich
• Bei richtiger Befestigung an einem Körper entspricht seine Verformung der des Körpers. Somit variiert sein Widerstand mit der Verformung des Körpers, die wiederum mit der Verformungskraft zusammenhängt.
• Sie werden auch als Dehnungsmessstreifen bezeichnet.
• Wenn sie durch eine Zugkraft gedehnt werden, verlängern und verengen sich die Litzen, was den Widerstand erhöht.
• Beim Zusammendrücken durch eine Druckkraft verkürzen und weiten sich die Drähte, wodurch der Widerstand verringert wird.
Schritt 5: Wheatstone-Brücke
• Für eine genauere Messung und um eine effizientere Erkennung von Widerstandsschwankungen in einer Wägezelle zu ermöglichen, ist der Dehnungsmessstreifen in eine Wheatstone-Brücke eingebaut.
• In dieser Konfiguration können wir die Widerstandsänderung durch die Brückenunsymmetrie bestimmen.
• Wenn R1 = Rx und R2 = R3 sind, sind die Spannungsteiler gleich und die Spannungen Vc und Vb sind auch gleich, wobei die Brücke im Gleichgewicht ist. Das heißt, Vbc = 0 V;
• Wenn Rx nicht R1 ist, ist die Brücke unsymmetrisch und die Spannung Vbc ist ungleich Null.
• Es ist möglich zu zeigen, wie diese Abweichung auftreten sollte, aber hier führen wir eine direkte Kalibrierung durch, indem wir den im ADC gelesenen Wert auf eine an der Wägezelle aufgebrachte Masse beziehen.
Schritt 6: Verstärkung
• Selbst wenn die Wheatstone-Brücke verwendet wird, um das Ablesen effizienter zu machen, erzeugen die Mikroverformungen im Metall der Wägezelle kleine Spannungsschwankungen zwischen Vbc.
• Um diese Situation zu lösen, verwenden wir zwei Verstärkungsstufen. Eine, um die Differenz zu bestimmen, und eine andere, um den erhaltenen Wert mit dem ADC des ESP abzugleichen.
Schritt 7: Amplifikation (Schema)
• Die Verstärkung des Subtraktionsschritts wird durch R6 / R5 gegeben und ist gleich R7 / R8.
• Die Verstärkung des nicht-invertierenden Endschritts ist gegeben durch Pot / R10
Schritt 8: Erfassung von Daten für die Kalibrierung
• Nach dem Zusammenbau stellen wir die endgültige Verstärkung so ein, dass der Wert der größten gemessenen Masse nahe am Maximalwert des ADC liegt. In diesem Fall betrug die Ausgangsspannung für 2 kg in der Zelle etwa 3 V3.
• Als nächstes variieren wir die aufgebrachte Masse (bekannt durch eine Waage und für jeden Wert) und ordnen einen LEITUR des ADC zu, um die nächste Tabelle zu erhalten.
Schritt 9: Erhalten der Funktionsbeziehung zwischen der gemessenen Masse und dem Wert des erhaltenen ADC
Wir verwenden die PolySolve-Software, um ein Polynom zu erhalten, das die Beziehung zwischen der Masse und dem Wert des ADC darstellt.
Schritt 10: Quellcode
Quellcode - #Enthält
Nachdem wir nun wissen, wie wir die Messungen erhalten und die Beziehung zwischen dem ADC und der aufgebrachten Masse kennen, können wir mit dem eigentlichen Schreiben der Software fortfahren.
// Bibliotecas para utilização do display oLED#include // Notwendige Apenas für Arduino 1.6.5 und anterior #include "SSD1306.h" // oder mesmo que #include "SSD1306Wire.h"
Quellcode - #Defines
//Os pinos do OLED estão conectados ao ESP32 pelos seguintes GPIOs://OLED_SDA -- GPIO4 //OLED_SCL -- GPIO15 //OLED_RST -- GPIO16 #define SDA 4 #define SCL 15 #define RST 16 //RST deve ser ajustado por software
Quelle - Globale Variablen und Konstanten
SSD1306-Anzeige (0x3c, SDA, SCL, RST); //Instanciando e ajustando os pinos do objeto "display" const int amostras = 10000; // número de amostras coletadas para a media const int pin = 13; //pino de leitura
Quellcode - Einrichtung ()
Void setup () {pinMode (pin, INPUT); // Pino de leitura analógica Serial.begin (115200); // iniciando eine serielle // Inicia o display.init(); display.flipScreenVertically(); //Vira a tela verticalmente }
Quellcode - Schleife ()
Void Schleife () { float medidas = 0.0; // variável para manipular als medidas float massa = 0.0; //variável para armazenar o valor da massa //inicia a coleta de amostras do ADC for (int i = 0; i
Quellcode - Funktion calculaMassa ()
//função para cálculo da massa obtida pela regressão//usando oPolySolve float calculaMassa (float medida) { return -6.798357840659e+01 + 3.885671618930e-01 * medida + 3.684944732070e-04 * medida * medida + -3.7-4810 * Medida * Medida * Medida + 1.796252359323e-10 * Medida * Medida * Medida * Medida + -3.995722708150e-14 * Medida * Medida * Medida * Medida * Medida + 3.284692453344e-18 * Medida * Medida * Medida * Medida * Medida * medida; }
Schritt 11: Starten und Messen
Schritt 12: Dateien
Laden Sie die Dateien herunter
INO