#include "HX711.h"
const int pinDOUT = 2; // Data pin for HX711
const int pinSCK = 4; // Clock pin for HX711
HX711 scale;
void setup() {
Serial.begin(115200);
scale.begin(pinDOUT, pinSCK);
Serial.println("Initializing scale...");
// Wait for the scale to be ready
unsigned long timeout = millis() + 5000; // 5-second timeout
while (!scale.is_ready()) {
Serial.println("Waiting for HX711 to be ready...");
delay(500);
if (millis() > timeout) {
Serial.println("Error: HX711 not ready. Check wiring and connections.");
while (1); // Halt the program
}
}
scale.set_scale(1.0); // Set a default calibration factor
scale.tare(); // Reset the scale
Serial.println("Scale initialized!");
}
void loop() {
if (scale.is_ready()) {
float weight = scale.get_units(10); // Average of 10 readings
Serial.print("Weight: ");
Serial.print(weight, 2);
Serial.println(" kg");
} else {
Serial.println("Error: HX711 not ready. Check connections.");
}
delay(1000);
}