//PROGRAMA PARA ESP32
//PROGRAMADOR: RafaelS.Melo
#include "HX711.h" //Bibliothek für HX711 Sensor
//Messdose
const int MESSDOSE_TARA_PIN = 15;
const int MESSDOSE_DOUT_PIN = 23;
const int MESSDOSE_SCK_PIN = 19;
const int MESSDOSE_GAIN = 128; //Folgende Verstärkungen sind möglich: 32, 64, 128
const float MESSDOSE_ANZ_MESSWERTE = 1; //Anzahl der Messwerte (wirkt als gleitender Mittelwert / Hochpass)
const float MESSDOSE_FAKTOR = 420; //Skalierung ADC Wert zu Kraft (ADC Wert / Kraft)
//Schalter, Potis etc.
bool button_TARA = 0;
//***** Weitere Initialisierung *****
HX711 Messdose; //Initialisiere Messdose
//***** Setup *****
void setup() {
// Serieller Port
Serial.begin(115200);
Serial.println("Initializing the scale");
// Messdose
Messdose.begin(MESSDOSE_DOUT_PIN, MESSDOSE_SCK_PIN); //Starte Messdose
pinMode(MESSDOSE_TARA_PIN, INPUT_PULLUP);
Messdose.set_gain(MESSDOSE_GAIN); //Verstärkung
Messdose.set_scale(MESSDOSE_FAKTOR); //Skalierung (konvertiert ADC Wert in Newton)
}
void loop() {
// Lese Status Schalter, Potis etc. ein
button_TARA = digitalRead(MESSDOSE_TARA_PIN);
// TARA
if (button_TARA == LOW) {Messdose.tare(10);}
Serial.print("Peso: ");
Serial.println(func_Messung(), 3); // Mit 3 Nachkommastellenfunc_Messung();
Serial.println(" kg ");
delay(1000);
//delay(10);
}
// **** func_Messung ****
// Diese Funktion liest die Lastzelle aus.
float func_Messung() {
// Definiere lokale Variablen
static float float_Messwert;
static unsigned long ulng_lastRead;
// Wenn mindestens 100 ms seit letzter Lesung Vergangen sind, lese den Wert ein.
if (millis() - ulng_lastRead >= 1000) {
ulng_lastRead = millis();
float_Messwert = Messdose.get_units(MESSDOSE_ANZ_MESSWERTE);
}
return float_Messwert;
}