#include <HX711.h>
const int HX711_DOUT_PIN = 2; // Ändere die Pin-Nummer entsprechend deiner Verkabelung
const int HX711_SCK_PIN = 3; // Ändere die Pin-Nummer entsprechend deiner Verkabelung
const int BUTTON_PIN = 4; // Ändere die Pin-Nummer für deinen Knopf
const int LED_PIN = 5; // Pin für eine Status-LED
HX711 scale; // HX711 Objekt erstellen
bool scaleInitialized = false; // Flag, um zu überprüfen, ob die Waage initialisiert wurde
void setup() {
Serial.begin(9600); // Serielle Kommunikation starten
pinMode(BUTTON_PIN, INPUT_PULLUP); // Knopf-Pin als Eingang mit Pull-up-Widerstand konfigurieren
pinMode(LED_PIN, OUTPUT); // LED-Pin als Ausgang konfigurieren
scale.begin(HX711_DOUT_PIN, HX711_SCK_PIN); // HX711 Initialisierung
}
void loop() {
// Prüfe, ob der Knopf gedrückt wird
if (digitalRead(BUTTON_PIN) == LOW) {
if (!scaleInitialized) {
// Wenn die Waage nicht initialisiert ist, aktiviere sie
scale.set_scale(1072.73); // Kalibrierungsfaktor für den Bereich von 0 kg bis 10 kg (Beispielwert, anpassen)
scale.tare(); // Tare-Funktion zum Nullstellen der Waage
scaleInitialized = true;
digitalWrite(LED_PIN, HIGH); // Status-LED einschalten
Serial.println("Waage aktiviert.");
} else {
// Wenn die Waage bereits aktiviert ist, deaktiviere sie
scaleInitialized = false;
digitalWrite(LED_PIN, LOW); // Status-LED ausschalten
Serial.println("Waage deaktiviert.");
}
// Warte kurz, um mehrere Tastendrücke zu verhindern
delay(500);
}
// Wenn die Waage aktiv ist, liest sie das Gewicht
if (scaleInitialized) {
float aktuellesGewicht = scale.get_units(10)*5.102040816326531; // Durchschnitt über 10 Messungen für Stabilität
Serial.print("Aktuelles Gewicht: ");
Serial.print(aktuellesGewicht);
Serial.println(" kg");
}
}