#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "HX711.h"
// Definisikan pin HX711
#define LOADCELL_DOUT_PIN 25 // Menggunakan GPIO 25
#define LOADCELL_SCK_PIN 26 // Menggunakan GPIO 26
// Inisialisasi objek HX711
HX711 scale;
// Inisialisasi objek LCD (alamat I2C, 16 karakter, 2 baris)
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// Inisialisasi serial monitor
Serial.begin(115200);
// Inisialisasi komunikasi I2C dengan pin default
Wire.begin(); // Tambahkan ini jika ingin menegaskan penggunaan I2C
// Inisialisasi LCD
lcd.begin(16, 2); // Menggunakan 16 kolom dan 2 baris
lcd.backlight();
// Inisialisasi HX711
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
scale.set_scale(420); // Sesuaikan dengan nilai skala yang kamu kalibrasi
scale.tare(); // Mengatur nilai awal ke 0
lcd.setCursor(0, 0);
lcd.print("Timbangan Ready");
}
void loop() {
// Membaca berat
float weight = scale.get_units(10); // Membaca rata-rata 10 kali
// Menampilkan berat di serial monitor
Serial.print("Weight: ");
Serial.print(weight);
Serial.println(" kg");
// Menampilkan berat di LCD
lcd.setCursor(0, 1);
lcd.print("Berat: ");
lcd.print(weight);
lcd.print(" kg "); // Tambahkan spasi untuk menghapus sisa karakter
delay(1000); // Delay 1 detik sebelum pembacaan berikutnya
}