#include <HX711.h> // Library Load Cell
#include <Wire.h> // Library komunikasi I2C
#include <LiquidCrystal_I2C.h> // Library LCD I2C
// Inisialisasi Load Cell
#define DT A1 // Pin data HX711
#define SCK A0 // Pin clock HX711
HX711 scale;
// Inisialisasi LDR
#define LDR_PIN A2
// Inisialisasi LCD 16x2 (Alamat 0x27, ukuran 16x2)
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
// Setup HX711 (Load Cell)
scale.begin(DT, SCK);
scale.set_scale(2280.f); // Sesuaikan dengan kalibrasi load cell
scale.tare(); // Nol-kan skala awal
// Setup LDR
pinMode(LDR_PIN, INPUT);
// Setup LCD
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Loading...");
delay(2000);
lcd.clear();
}
void loop() {
// Membaca berat dari Load Cell
float weight = scale.get_units(10); // Ambil rata-rata 10 pembacaan
Serial.print("Berat: ");
Serial.print(weight, 2);
Serial.println(" gram");
// Membaca intensitas cahaya dari LDR
int ldrValue = analogRead(LDR_PIN);
Serial.print("Cahaya (LDR): ");
Serial.println(ldrValue); // Nilai 0-1023 (semakin tinggi, semakin terang)
// Tampilkan di LCD
lcd.setCursor(0, 0);
lcd.print("Berat: ");
lcd.print(weight, 1);
lcd.print(" g ");
lcd.setCursor(0, 1);
lcd.print("LDR: ");
lcd.print(ldrValue);
lcd.print(" ");
delay(500); // Tunggu 500ms sebelum membaca ulang
}