#include <LiquidCrystal_I2C.h>
#include <HX711.h>
#include <Wire.h>
#include <ESP32Servo.h>
int ledPin = 16;
int buzzerPin = 5;
const int LdCell_D_PIN = 13;
const int LdCell_SCK_PIN = 18;
const int servoPin = 2; // Pin servo yang digunakan
HX711 scale;
LiquidCrystal_I2C lcd(0x27, 20, 4);
Servo myservo;
void setup() {
Serial.begin(57600);
scale.begin(LdCell_D_PIN, LdCell_SCK_PIN);
scale.set_scale(5);
scale.tare();
lcd.init();
lcd.backlight();
pinMode(ledPin, OUTPUT); // Set LED pin as output
myservo.attach(15); // Menghubungkan servo pada pin yang ditentukan
}
void loop() {
float berat = scale.read();
long reading = scale.get_units(3);
float kg = float(reading) / 84;
lcd.setCursor(0, 0);
lcd.print("---> BERAT <---");
lcd.setCursor(2, 1);
lcd.print("Berat: " + String(kg, 2) + "kg");
lcd.println(" kg ");
if (berat >= 50) {
tone(buzzerPin, 700);
digitalWrite(ledPin, HIGH); // Turn on the LED
myservo.write(90); // Menggerakkan servo ke posisi tengah (90 derajat)
delay(1000);
noTone(buzzerPin);
digitalWrite(ledPin, LOW); // Turn off the LED
myservo.write(90); // Menggerakkan servo ke posisi maksimum (90 derajat)
}
else {
digitalWrite(ledPin, LOW); // Turn off the LED
myservo.write(0); // Menggerakkan servo ke posisi awal (0 derajat)
}
delay(1000);
}