#include <Servo.h>
#include "HX711.h"
// Pin untuk servo
const int servo1Pin = 2;
const int servo2Pin = 3;
const int servo3Pin = 4;
const int servo4Pin = 5;
const int servo5Pin = 6;
const int servo6Pin = 7;
const int servo7Pin = 8;
const int servo8Pin = 9;
// Pin untuk load cell
const int LOADCELL_DOUT_PIN = 10;
const int LOADCELL_SCK_PIN = 11;
// Inisialisasi objek servo
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;
Servo servo6;
Servo servo7;
Servo servo8;
// Inisialisasi objek HX711
HX711 scale;
void setup() {
// Inisialisasi servo
servo1.attach(servo1Pin);
servo2.attach(servo2Pin);
servo3.attach(servo3Pin);
servo4.attach(servo4Pin);
servo5.attach(servo5Pin);
servo6.attach(servo6Pin);
servo7.attach(servo7Pin);
servo8.attach(servo8Pin);
// Inisialisasi load cell
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
scale.set_scale(); // Set scale factor (sesuaikan dengan kalibrasi)
scale.tare(); // Reset the scale to 0
// Buka servo 1 selama 2 detik
servo1.write(90); // Anggap 90 derajat adalah posisi terbuka
delay(2000);
servo1.write(0); // Kembali ke posisi tertutup
// Mulai menimbang berat
while (true) {
float weight = scale.get_units(10); // Ambil rata-rata dari 10 pembacaan
Serial.print("Berat: ");
Serial.println(weight);
// Cek berat dan buka servo yang sesuai
if (weight >= 100 && weight <= 200) {
servo3.write(90); // Buka servo 3
servo2.write(90); // Buka servo 2
} else if (weight >= 201 && weight <= 300) {
servo4.write(90); // Buka servo 4
servo2.write(90); // Buka servo 2
} else if (weight >= 301 && weight <= 400) {
servo5.write(90); // Buka servo 5
servo2.write(90); // Buka servo 2
} else if (weight >= 401 && weight <= 500) {
servo6.write(90); // Buka servo 6
servo2.write(90); // Buka servo 2
} else if (weight >= 501 && weight <= 600) {
servo7.write(90); // Buka servo 7
servo2.write(90); // Buka servo 2
} else if (weight >= 601 && weight <= 700) {
servo8.write(90); // Buka servo 8
servo2.write(90); // Buka servo 2
} else {
// Jika tidak ada berat yang sesuai, tutup semua servo
servo3.write(0);
servo4.write(0);
servo5.write(0);
servo6.write(0);
servo7.write(0);
servo8.write(0);
}
delay(1000); // Delay sebelum pembacaan berikutnya
}
}
void loop() {
// Tidak ada yang dilakukan di loop
}