#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <HX711.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Inisialisasi LCD
HX711 scale;
#define DOUT1 7 // Pin DT HX711
#define CLK1 6 // Pin SCK HX711
#define DOUT2 5 // Pin DT HX711
#define CLK2 4 // Pin SCK HX711
int pir1 = 5;
int pir2 = 4;
int statusPin = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
scale.begin(DOUT1, CLK1);
scale.begin(DOUT2, CLK2);
scale.set_scale();
pinMode(pir1, INPUT);
pinMode(pir2, INPUT);
lcd.init();
lcd.backlight();
}
void loop() {
// put your main code here, to run repeatedly:
scale.set_scale(); // Set ulang faktor kalibrasi jika diperlukan
float berat = scale.get_units(10) / 420.00; // Menghitung berat dalam satuan yang diinginkan (misalnya kg)
lcd.setCursor(7, 0);
lcd.print(berat, 2);
if (berat > 1) { // Jika berat lebih dari 1 satuan (misalnya kg)
digitalWrite(pir1, HIGH); // Mengaktifkan Buzzer (berbunyi)
digitalWrite(pir2, HIGH); // Mengaktifkan LED (menyala) (led menyala secara kedap-kedip)
delay(250); // Delay 250 ms
digitalWrite(pir1, LOW); //mematikan led (led menyala secara kedap-kedip)
delay(250); // Delay 250 ms
} else {
digitalWrite(pir1, LOW);
digitalWrite(pir2, LOW);
statusPin = digitalRead(pir1);
statusPin = digitalRead(pir2);
if (statusPin == HIGH);
lcd.print("berat");
}
lcd.println("kg");
Serial.print(berat);
Serial.print("kg");
delay(1000);
// Memberi jeda 1 detik sebelum mengulang loop
}