TKK_E32231242/firmware/calibrate_loadcell/calibrate_loadcell.ino

62 lines
1.1 KiB
C++

#include "HX711.h"
// Pin disesuaikan dengan ESP32 Anda di impact_monitor.ino
#define DT_PIN 32
#define SCK_PIN 33
HX711 scale;
// Silakan sesuaikan nilai ini untuk load cell 50kg saat melakukan kalibrasi
float calibration_factor = 103.8;
float threshold = 2.0;
unsigned long emptyStartTime = 0;
bool isEmpty = false;
void setup() {
Serial.begin(115200);
delay(1000);
scale.begin(DT_PIN, SCK_PIN);
Serial.println("Jangan ada beban...");
delay(3000);
scale.set_scale(calibration_factor);
scale.tare();
Serial.println("Timbangan siap!");
}
void loop() {
float berat = scale.get_units(20);
// === DETEKSI KONDISI KOSONG ===
if (abs(berat) < threshold) {
if (!isEmpty) {
// baru masuk kondisi kosong
emptyStartTime = millis();
isEmpty = true;
}
// kalau sudah kosong selama 2 detik → tare
if (millis() - emptyStartTime > 2000) {
scale.tare();
berat = 0;
}
} else {
// ada beban → reset status kosong
isEmpty = false;
}
float berat_kg = berat / 1000.0;
Serial.print("Berat: ");
Serial.print(berat_kg, 1);
Serial.println(" kg");
delay(300);
}