Waage Software Klassen

Zurück


PlatformIO Initialisierung und main.cpp.
Programmiert wurde in CPP. Visual Studio Code als Entwicklungsumgebung. Eigentlich wollte ich die Programmierung mit MicroPython durchführen, jedoch für den ADC-HX711 gibt es keine Bibliothek für meinen speziellen Fall. Ich brauche die Waage zum Mischen von Epoxidharz und eine gute schlanke Tara Funktion ist notwendig.

In Zeile 18 und 19 der nachfolgenden Initialisierungsdatei sind zwei Bibliotheken aufgeführt. Die Bibliothek für den HX711 findest du hier und die OLED-Display-Bibliothek ist hier.

Auskommentierte Zeile 20 der PlatformIO-Initialisierungsdatei! Ich haben an einigen Stellen gelesen, dass der ESP32-Prozessor aufgrund der HX711-Frequenz verlangsamt werden muss. Ich bin mir nicht sicher, ob das wirklich nötig ist oder nicht. Ich habe mit und ohne Verlangsamung experimentiert und in beiden Szenarien hat alles gut funktioniert.


Waage Platform Ini Waage main.cpp


main.cpp, das Hauptprogramm.
In Zeile 19 erfolgt die Initialisierung der Waage. Zeile 27 repräsentiert die kontinuierliche Abarbeitung der Zustände. In diesem Zusammenhang siehe auch Waage.cpp Zeile 30 und Zeile 165 weiter unten in diesem Kapitel.


Waage Software Oled Display -1- Waage Software Oled Display -2- Waage Software Oled Display -3- Waage Software Oled Display -4- Waage Software Oled Display -5- Waage Software Oled Display -6-


display.cpp und display.h.
Auf dem Heltec-Wifi-Kit 32-Mikrokontroller ist bereits ein OLED-Display verbaut. Wird die Klasse U8X8_SSD1306_128X64_NONAME_SW_I2C nur mit dem I2C-Bus (sda, sck) instanziiert funktioniert das Display nicht, es muss der Reset-Pin 16 (nur dieser Pin) ebenfalls eingebunden werden. Siehe Zeile 18.

Waage Software EEPROM -1- Waage Software EEPROM -2- Waage Software EEPROM -3-


eeprom.cpp und eeprom.h.
Einmalig muss die Waage mit einem Referenzgewicht kalibriert werden. Der ermittelte Kalibrieroffset wird in einen nichtflüchtigen Speicher EEPROM geschrieben.

Waage Software HX711 -1- Waage Software HX711 -2- Waage Software HX711 -3- Waage Software HX711 -4- Waage Software HX711 -5- Waage Software HX711 -6- Waage Software HX711 -7- Waage Software HX711 -8- Waage Software HX711 -9-


waage.cpp und waage.h.
Zeile 33 bis 36: Initialisierung Display, Board-LED und zwei Drucktaster.
Zeile 37 (128 – 135): Lesen des Kalibrieroffsets aus dem EEPROM. Waage auf Null setzen.
Zeile 53-63: Methode Lesen der Drucktasten.
Zeile 68 – 107: Methode Kalibrieren.
Zeile 140 – 160: Methode Gewicht messen. Auffrischung Display nur wenn der neue gelesene Wert sich mit dem vorherigen Wert unterscheidet.
Zeile 165 – 266: Methode Schrittsteuerung in Abhängigkeit der Drucktaster. Erfolgt keine Betätigung der Tasten läuft das Programm im kontinuierlichen Messzyklus.

Wie bereits weiter oben erwähnt nutze ich die Bibliothek von Bogdan Necula. Diese Library stellt alle Methoden für den HX711-Betrieb zur Verfügung:
double read_average(byte times) // (average = durchschnittlich)
double get_value(byte times)
float get_units(byte times)
void tare(byte times)
float get_scale()
void set_offset(long offset)
long get_offset()
void power_down()
void power_up()
Zur Kalibrierung noch einige Hinweise:
(1) Aufruf set_scale()ohne Parameter.
(2) Aufruf tare()ohne Parameter.
(3) Lege dein bekanntes Gewicht auf die Waage und rufe get_units(10) auf.
(4) Teile das Ergebnis von Schritt (3) durch dein bekanntes Gewicht.
(5) Übergebe das Ergebnis an set_scale().





Zurück