#include "HX711.h"
#define DOUT 3
#define CLK 2
#include <LiquidCrystal_I2C.h>
HX711 scale;
float calibration_factor = -4000;
float knownZero = 0.0;
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
#define trigPin 12
#define echoPin 11
void setup() {
Serial.begin(9600);
scale.begin(DOUT, CLK);
scale.set_scale(calibration_factor);
knownZero = scale.get_units();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
float weight = scale.get_units();
float beban;
weight -= knownZero;
beban = weight * -9.54;
long duration, distance,sum;
lcd.init();
lcd.backlight();
// Print something
lcd.setCursor(2, 0);
lcd.print("Weight :");
lcd.print(beban);
lcd.print("\nKg");
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(2);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
Serial.print(distance);
sum = (200 - distance);
Serial.println(" cm");
lcd.backlight ( );
lcd.setCursor(4,1);
lcd.print("High ");
lcd.print(sum);
lcd.print(" cm");
delay(500);
}