#include <LiquidCrystal_I2C.h>
#include "HX711.h"
LiquidCrystal_I2C lcd(0x27, 20, 4);
#define calibration_factor_pet 420
#define calibration_factor_sup 420
#define calibration_factor_bc 420
#define calibration_factor_tin 420
#define LOADCELL_DOUT_PIN1 A0
#define LOADCELL_SCK_PIN1 A1
#define LOADCELL_DOUT_PIN2 A2
#define LOADCELL_SCK_PIN2 A3
#define LOADCELL_DOUT_PIN3 A4
#define LOADCELL_SCK_PIN3 A5
#define LOADCELL_DOUT_PIN4 A6
#define LOADCELL_SCK_PIN4 A7
#define relay_pet 3
#define relay_sup 4
#define relay_bc 6
#define relay_tin 7
HX711 scale_pet;
HX711 scale_sup;
HX711 scale_bc;
HX711 scale_tin;
float pet;
float sup;
float bc;
float tin;
void setup() {
Serial.begin(9600);
Serial.println("HX711 scale demo");
lcd.init();
lcd.backlight();
lcd.setCursor(0,1);
lcd.print("HX711 scale demo");
scale_pet.begin(LOADCELL_DOUT_PIN1, LOADCELL_SCK_PIN1);
scale_sup.begin(LOADCELL_DOUT_PIN2, LOADCELL_SCK_PIN2);
scale_bc.begin(LOADCELL_DOUT_PIN3, LOADCELL_SCK_PIN3);
scale_tin.begin(LOADCELL_DOUT_PIN4, LOADCELL_SCK_PIN4);
scale_pet.set_scale(calibration_factor_pet);
scale_sup.set_scale(calibration_factor_sup);
scale_bc.set_scale(calibration_factor_bc);
scale_tin.set_scale(calibration_factor_tin);
delay(2000);
lcd.clear();
}
void loop() {
pet = scale_pet.get_units();
sup = scale_sup.get_units();
bc = scale_bc.get_units();
tin = scale_tin.get_units();
Serial.print("Weight: ");
Serial.print(pet);
Serial.print(" ");
Serial.print("Weight: ");
Serial.print(sup);
Serial.print(" ");
Serial.print("Weight: ");
Serial.print(bc);
Serial.print(" ");
Serial.print("Weight: ");
Serial.println(tin);
lcd.setCursor(0,0);
lcd.print("Weight: ");
lcd.print(pet);
lcd.setCursor(0,1);
lcd.print("Weight: ");
lcd.print(sup);
lcd.setCursor(0,2);
lcd.print("Weight: ");
lcd.print(bc);
lcd.setCursor(0,3);
lcd.print("Weight: ");
lcd.print(tin);
}