#include <Wire.h> // Library untuk komunikasi I2C
#include <LiquidCrystal_I2C.h> // Library untuk mengontrol layar LCD I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // Inisialisasi objek LCD dengan alamat I2C dan ukuran 16x2
const int loadCellPin = A0; // Pin analog untuk sensor load cell
const int greenLedPin = 6; // Pin untuk LED hijau
const int yellowLedPin = 7; // Pin untuk LED kuning
const int redLedPin = 8; // Pin untuk LED merah
void setup() {
lcd.init(); // Inisialisasi layar LCD
lcd.backlight(); // Aktifkan pencahayaan layar
lcd.setCursor(0, 0);
lcd.print("Berat:");
lcd.setCursor(0, 1);
lcd.print("Initializing...");
pinMode(greenLedPin, OUTPUT);
pinMode(yellowLedPin, OUTPUT);
pinMode(redLedPin, OUTPUT);
delay(2000); // Delay untuk stabilisasi
}
void loop() {
// Baca data dari sensor load cell
int weight = analogRead(loadCellPin);
// Konversi nilai analog ke berat dalam kg (misalnya, nilai 0-1023 menjadi 0-5 kg)
float kg = map(weight, 0, 1023, 0, 5);
// Tampilkan berat pada layar LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Berat:");
lcd.setCursor(0, 1);
lcd.print(kg);
lcd.print(" kg");
// Kontrol LED sesuai dengan berat yang terdeteksi
if (kg < 1.0) {
digitalWrite(greenLedPin, HIGH);
digitalWrite(yellowLedPin, LOW);
digitalWrite(redLedPin, LOW);
} else if (kg >= 1.0 && kg < 2.0) {
digitalWrite(greenLedPin, LOW);
digitalWrite(yellowLedPin, HIGH);
digitalWrite(redLedPin, LOW);
} else {
digitalWrite(greenLedPin, LOW);
digitalWrite(yellowLedPin, LOW);
digitalWrite(redLedPin, HIGH);
}
delay(1000); // Delay untuk stabilitas tampilan
}